# Splashify Pro — Complete User Documentation
> This is the full-text version of the Splashify Pro user documentation.
> Generated for AI consumption. Source: https://docs.splashifypro.com
> Generated at: 2026-05-11T17:06:18.438Z
> Total pages: 156
---
========================================================================
## Splashify Pro Documentation
URL: https://docs.splashifypro.com/
========================================================================
# Splashify Pro Documentation
Welcome to the official documentation for **Splashify Pro** — your all-in-one WhatsApp Business messaging platform. Send broadcasts, automate conversations with AI chatbots, manage contacts, run calling campaigns, and track everything from a single dashboard.
## Platform Overview
| Feature | Description |
|---------|-------------|
| **Messaging** | Real-time WhatsApp conversations with your customers |
| **Broadcasts** | Send bulk WhatsApp & RCS campaigns to targeted segments |
| **AI Agents** | Automate replies with GPT-powered Chat AI Agents |
| **Chatbot Flows** | Build no-code workflow bots with a visual flow builder |
| **Calling** | WhatsApp Business voice calls with recordings |
| **Contacts** | Full CRM with segments, tags, and custom attributes |
| **Templates** | Manage Meta-approved message templates |
| **Analytics** | Track message volume, costs, and campaign performance |
## Quick Links
- [**Get Started →**](/getting-started) — Create your account and connect WhatsApp
- [**WhatsApp Setup →**](/whatsapp-setup) — Connect your WABA and verify your business
- [**Send a Broadcast →**](/broadcasts) — Reach thousands of contacts in one click
- [**Build a Chatbot →**](/ai-agents) — Automate your customer conversations
- [**API & Developer →**](/settings/developer) — Integrate Splashify Pro into your own apps
## App URL
Access your dashboard at:
```
https://app.splashifypro.com
```
## Support
- **Email:** support@splashifypro.in
- **WhatsApp:** Message us directly from the [Support](/support) section in your dashboard
========================================================================
## Getting Started
URL: https://docs.splashifypro.com/getting-started
========================================================================
# Getting Started
Get your Splashify Pro account up and running in minutes. This section covers account creation, login, and an orientation to the dashboard.
## What You'll Need
- A valid business email address
- A WhatsApp Business phone number (for connecting WhatsApp)
- A Meta Business account (required to connect WABA)
## Steps at a Glance
1. **[Sign Up](/getting-started/signup)** — Create your account with email and OTP verification
2. **[Log In](/getting-started/login)** — Secure login with optional 2FA
3. **[Dashboard](/getting-started/dashboard)** — Understand the dashboard layout and setup checklist
4. **[Connect WhatsApp](/whatsapp-setup)** — Link your WhatsApp Business Account
## Platform URLs
| Portal | URL |
|--------|-----|
| App Dashboard | `https://app.splashifypro.com` |
| API Base URL | `https://apis.splashifypro.com/api/v1/` |
> **Tip:** Splashify Pro works best on desktop Chrome or Edge. Mobile support is available but some features (like the flow builder) are optimized for desktop.
========================================================================
## Dashboard
URL: https://docs.splashifypro.com/getting-started/dashboard
========================================================================
# Dashboard
Your dashboard is the central hub for your Splashify Pro account. It shows your setup status, key metrics, and quick-access actions.
## Dashboard Sections
### Setup Checklist
When you first sign up, the dashboard shows a **Setup Checklist** with the steps needed to get fully operational:
| Step | Description |
|------|-------------|
| **Connect WhatsApp** | Link your WhatsApp Business Account (WABA) |
| **Add Wallet Balance** | Recharge your wallet to send messages |
| **Complete KYC** | Verify your business identity |
| **Apply for OBA** | Apply for Official Business Account (green tick) |
| **Set Up Billing** | Add your GSTIN for invoice generation |
Each step shows as ✅ complete or ⏳ pending. Click any step to navigate to the relevant settings page.
### Wallet Balance
The top bar shows your current **wallet balance**. Click it to:
- View transaction history
- Recharge your wallet via Zoho Payments
> Wallet balance is deducted per message sent based on your plan's pricing.
### Announcement Banner
If there are any active system announcements (maintenance, new features, incidents), they appear as a cycling banner at the top of the dashboard.
## Sidebar Navigation
| Section | What it Does |
|---------|-------------|
| **Dashboard** | Setup status and overview |
| **Messages** | Real-time conversation inbox |
| **Contacts** | CRM — manage contacts, segments, tags |
| **Broadcasts** | Create and manage bulk campaigns |
| **AI Agents** | Chat AI Agents and Workflow Bots |
| **Templates** | WhatsApp & RCS message templates |
| **Flows** | WhatsApp Flows management |
| **Calling** | WhatsApp Business Calling |
| **Analytics** | Message stats and expense tracking |
| **Track Expenses** | Billing log and cost breakdown |
| **Wallet** | Balance and transactions |
| **Support** | Create and track support tickets |
| **Settings** | All account, team, and integration settings |
## Notifications
The bell icon in the top bar shows unread activity notifications. Click to view recent events such as:
- New incoming messages
- Broadcast completion
- Low wallet balance alert
- KYC status updates
## Low Balance Alert
When your wallet balance falls below a threshold, a **Low Balance Dialog** pops up prompting you to recharge before messages are blocked.
========================================================================
## Login & 2FA
URL: https://docs.splashifypro.com/getting-started/login
========================================================================
# Login & 2FA
## Standard Login
1. Go to [https://app.splashifypro.com/auth/login](https://app.splashifypro.com/auth/login)
2. Enter your **email address** and **password**
3. Click **Sign In**
If you have **Two-Factor Authentication (2FA)** enabled, you'll be prompted for a verification code before accessing the dashboard.
## Two-Factor Authentication (2FA)
2FA adds an extra layer of security. When enabled, every login requires a one-time code sent to your registered email or WhatsApp.
### 2FA Verification Steps
1. After entering your password, the 2FA screen appears
2. Check your **email** or **WhatsApp** for the 6-digit code
3. Enter the code and click **Verify**
> **2FA codes expire after 10 minutes.** Request a new code if needed.
## Team Member Login
Team members added by the account owner log in with a **password set via invitation email**.
1. Click the link in your invitation email
2. Set your password on the `/auth/set-team-password` page
3. Log in at the standard login page with your email and new password
## Forgot Password
1. Click **Forgot Password** on the login page
2. Enter your registered email address
3. Check your inbox for a password reset link
4. Click the link and set a new password
The reset link is valid for **30 minutes**.
## Session Management
- Sessions last **3 months** — you stay logged in unless you explicitly sign out
- A maximum of **5 concurrent devices** can be active at once
- If you log in on a 6th device, you'll be shown a list of active sessions to revoke one
### View Active Devices
Go to **Settings → Devices** to:
- See all active sessions (device, IP address, last seen)
- Identify which session is the current device
- Remotely log out any device
> Logging out a device takes effect immediately — that session is instantly invalidated.
## Troubleshooting
| Issue | Fix |
|-------|-----|
| Wrong password | Use **Forgot Password** to reset |
| 2FA code not received | Check spam/junk; request a new code |
| Account locked | Contact support@splashifypro.in |
| Device limit reached | Revoke an old session from the device list shown at login |
========================================================================
## Sign Up
URL: https://docs.splashifypro.com/getting-started/signup
========================================================================
# Sign Up
Create your Splashify Pro account in under 2 minutes.
## Step 1: Go to the Sign Up Page
Navigate to [https://app.splashifypro.com/auth/signup](https://app.splashifypro.com/auth/signup)
## Step 2: Enter Your Details
Fill in the registration form:
| Field | Description |
|-------|-------------|
| **Full Name** | Your name or business contact name |
| **Email Address** | Your business email — used for login and notifications |
| **Phone Number** | Mobile number with country code (e.g. `+91 9876543210`) |
| **Password** | Minimum 8 characters |
| **Organization Name** | Your company or brand name |
| **Country** | Select your country from the dropdown |
## Step 3: Verify Your Email (OTP)
After submitting the form, you'll be redirected to the **OTP Verification** screen.
1. Check your inbox for an email from `noreply@splashifypro.com`
2. Enter the **6-digit OTP** in the verification field
3. Click **Verify**
> **OTP expires in 10 minutes.** Click **Resend OTP** if you don't receive it within 60 seconds.
## Step 4: You're In!
After successful verification, you'll land on your **Dashboard** with a setup checklist.
The first thing you'll want to do is [connect your WhatsApp Business Account](/whatsapp-setup/connect-waba).
## Already Have an Account?
[Log in here →](/getting-started/login)
## Troubleshooting
| Issue | Fix |
|-------|-----|
| OTP not received | Check spam/junk folder; click Resend OTP |
| Email already registered | Use the [Login](/getting-started/login) page or reset your password |
| OTP invalid | OTPs expire after 10 minutes — request a new one |
========================================================================
## WhatsApp Setup
URL: https://docs.splashifypro.com/whatsapp-setup
========================================================================
# WhatsApp Setup
To send and receive WhatsApp messages through Splashify Pro, you need to connect a **WhatsApp Business Account (WABA)** and register a phone number.
## Setup Flow
```
Meta Business Account
↓
Connect WABA (Embedded Signup)
↓
Register Phone Number
↓
Complete KYC (Business Verification)
↓
Start Messaging ✓
```
## Prerequisites
Before you start, make sure you have:
- A **Meta Business Account** — [create one at business.facebook.com](https://business.facebook.com)
- A **phone number** that is NOT already registered on WhatsApp personal or WhatsApp Business App
- A valid **business website** or Facebook Page
- Business address and category details
> **Important:** You cannot use a phone number that is currently active on the WhatsApp mobile app. You must first delete or deregister that number from the app.
## Quick Setup Checklist
| Step | Action | Status |
|------|--------|--------|
| 1 | Connect WABA via Meta Embedded Signup | Required |
| 2 | Register your phone number | Required |
| 3 | Submit KYC documents | Required |
| 4 | Apply for Official Business Account (OBA) | Optional |
========================================================================
## Connect WhatsApp (WABA)
URL: https://docs.splashifypro.com/whatsapp-setup/connect-waba
========================================================================
# Connect WhatsApp (WABA)
Splashify Pro uses **Meta Embedded Signup** to connect your WhatsApp Business Account (WABA) securely without sharing your Meta credentials.
## Step 1: Open the Setup Wizard
1. Go to your **Dashboard**
2. Click **Connect WhatsApp** in the setup checklist, or navigate to **Settings → Channels**
3. Click **Connect WhatsApp Business Account**
## Step 2: Start Meta Embedded Signup
A **Meta popup window** will open. Follow the steps inside it:
1. **Log in with Facebook** — Use the Facebook account connected to your Meta Business Manager
2. **Select or Create a Business Portfolio** — Choose your existing Meta Business Account or create a new one
3. **Create or Select a WABA** — Either pick an existing WhatsApp Business Account or create a new one
4. **Select or Create a Phone Number** — Choose a phone number to register
5. **Verify the Phone Number** — Enter the OTP sent via SMS or voice call to that number
6. **Complete Signup** — Click Finish to return to Splashify Pro
## Step 3: Wait for Connection
After the popup closes, Splashify Pro automatically:
- Receives your WABA ID and Phone Number ID from Meta
- Creates your WhatsApp channel in the system
- Registers the webhook for receiving messages
This usually takes **10–30 seconds**. Your dashboard will refresh and show your WABA as **Connected**.
## WABA Status Indicators
| Status | Meaning |
|--------|---------|
| 🟢 **Connected** | WABA is active, messages can be sent/received |
| 🟡 **Pending** | Waiting for Meta approval |
| 🔴 **Restricted** | Account has messaging restrictions from Meta |
| ⚪ **Not Connected** | No WABA linked yet |
## Troubleshooting
| Issue | Fix |
|-------|-----|
| Popup blocked | Allow popups from `app.splashifypro.com` in browser settings |
| Phone number already used | Deregister the number from WhatsApp app first |
| Business not verified | Complete Meta Business Verification at business.facebook.com |
| Signup failed | Ensure you have admin access to the Meta Business Account |
## Next Step
After connecting your WABA, [register your phone number →](/whatsapp-setup/phone-registration)
========================================================================
## Business Verification (KYC)
URL: https://docs.splashifypro.com/whatsapp-setup/kyc
========================================================================
# Business Verification (KYC)
KYC (Know Your Customer) verification unlocks higher messaging tiers and is required for sending broadcasts to large audiences.
## Why KYC is Required
| Without KYC | With KYC |
|-------------|----------|
| Limited to 250 conversations/day | Starts at 1,000 conversations/day |
| Can only message users who messaged first | Can send outbound template messages |
| No broadcast campaigns | Full broadcast access |
## Step 1: Navigate to KYC
1. Go to **Dashboard**
2. Click **Complete KYC** in the setup checklist
3. Or navigate to **Settings → Account Details → KYC**
## Step 2: Submit Business Documents
Fill out the KYC form with the following information:
### Business Details
| Field | Description |
|-------|-------------|
| **Legal Business Name** | Exact name as registered (must match government records) |
| **Business Type** | Sole Proprietor, Private Limited, LLP, etc. |
| **GSTIN** | Your GST Identification Number (for Indian businesses) |
| **Business Address** | Registered office address with PIN code |
| **Business Category** | Industry category (e.g. E-Commerce, Healthcare, Education) |
| **Website URL** | Your business website |
### Required Documents
| Document | Accepted Formats |
|----------|-----------------|
| **Business Registration Certificate** | PDF, JPG, PNG (max 5MB) |
| **GST Certificate** | PDF, JPG, PNG (max 5MB) |
| **Proof of Address** | Utility bill or bank statement |
| **Authorized Signatory ID** | Aadhaar, PAN, Passport |
## Step 3: Submit for Review
Click **Submit KYC**. Our team reviews submissions within **1–3 business days**.
## KYC Status
| Status | Meaning |
|--------|---------|
| **Not Submitted** | KYC form not yet filled |
| **Pending** | Under review by Splashify Pro team |
| **Approved** ✅ | Verified — higher limits unlocked |
| **Rejected** ❌ | Resubmission required (reason provided) |
> You'll receive an email notification when your KYC status changes.
## After KYC Approval
Once approved:
- Messaging limits increase automatically
- You become eligible to [apply for Official Business Account](/whatsapp-setup/oba)
- Broadcast campaigns to large segments are unlocked
========================================================================
## Official Business Account (OBA)
URL: https://docs.splashifypro.com/whatsapp-setup/oba
========================================================================
# Official Business Account (OBA)
An **Official Business Account** (OBA) gives your business the green tick ✅ badge on WhatsApp, increasing trust and improving message open rates.
## What is OBA?
The OBA badge appears next to your business name in customer chats. It signals that Meta has verified your business as legitimate and notable.
**Benefits:**
- Green checkmark next to your display name
- Higher customer trust and engagement
- Eligibility for higher message tier limits
- Better deliverability on broadcast campaigns
## Requirements
Before applying, ensure:
1. ✅ WABA is connected and phone number registered
2. ✅ KYC is approved
3. ✅ Business has an active online presence (website, social media)
4. ✅ Business meets Meta's notability criteria
> **Note:** OBA is granted by Meta, not Splashify Pro. Approval is at Meta's discretion and typically takes **5–15 business days**.
## How to Apply
1. Go to **Dashboard**
2. Click **Apply for OBA** in the setup checklist
3. Complete the OBA application form:
- Confirm your business name and category
- Provide business website URL
- Optionally link your Facebook Page
4. Click **Submit Application**
Splashify Pro submits the application to Meta on your behalf.
## Application Status
| Status | Meaning |
|--------|---------|
| **Not Applied** | Application not submitted |
| **Submitted** | Application sent to Meta, awaiting review |
| **Approved** 🟢 | Green tick active on your WABA |
| **Rejected** | Application denied — review Meta's feedback and reapply after 30 days |
## Tips for Approval
- Ensure your business name on WABA matches your official business name
- Have an active, professional website (no landing page builders)
- Active presence on social media and Google My Business helps
- Avoid generic or ambiguous business names
========================================================================
## Register Phone Number
URL: https://docs.splashifypro.com/whatsapp-setup/phone-registration
========================================================================
# Register Phone Number
After connecting your WABA, you need to formally register your phone number with the WhatsApp Business Platform to enable two-way messaging.
## Step 1: Go to Phone Registration
1. Navigate to **Dashboard** or **Settings → Channels**
2. Click **Register Phone Number** next to your connected WABA
## Step 2: Choose Verification Method
Select how you want to receive the verification PIN:
- **SMS** — A 6-digit PIN sent via text message
- **Voice Call** — A voice call reads out the PIN
> **Note:** If your number is a VoIP or landline, choose **Voice Call**.
## Step 3: Enter the PIN
Enter the 6-digit PIN you receive and click **Verify & Register**.
## Step 4: Confirm Registration
Once verified, your phone number status changes to **Registered**. You can now:
- Send and receive WhatsApp messages
- Use approved message templates
- Create broadcast campaigns
## Phone Number Requirements
| Requirement | Details |
|-------------|---------|
| Not on WhatsApp App | Number must be deregistered from the consumer WhatsApp app |
| Can receive SMS/calls | The number must be able to receive SMS or voice calls |
| Country code | Must include full international country code |
## Display Name
When registering, your WABA's **display name** is shown to customers. This name:
- Is set during the Meta Embedded Signup
- Must match your business name
- Can be changed later in Meta Business Settings (subject to approval)
## Troubleshooting
| Issue | Fix |
|-------|-----|
| PIN not received | Check if the number can receive SMS; try voice call |
| Registration failed | Ensure the number is not active on WhatsApp app |
| Number already registered | Contact support to transfer the number |
## Next Step
[Complete KYC (Business Verification) →](/whatsapp-setup/kyc)
========================================================================
## Messaging
URL: https://docs.splashifypro.com/messaging
========================================================================
# Messaging
The **Messages** page is your real-time inbox for all WhatsApp conversations. View, reply, assign, and resolve conversations from one unified interface.
## Navigate to Messages
Click **Messages** in the left sidebar, or go to:
```
https://app.splashifypro.com/messages
```
## Inbox Layout
The Messages page has three panels:
| Panel | Description |
|-------|-------------|
| **Conversation List** (left) | All conversations, filterable by status and assignee |
| **Message Thread** (center) | The active conversation with full chat history |
| **Contact Details** (right) | Contact info, tags, notes, and activity log |
## Conversation Statuses
| Status | Meaning |
|--------|---------|
| **Open** | Active conversation, needs attention |
| **Resolved** | Conversation marked as done |
| **All** | Shows all conversations |
## Real-Time Updates
Conversations update in real-time via WebSocket. New incoming messages appear instantly without needing to refresh the page. A notification badge shows unread message counts.
## Key Features
- **Infinite scroll** — Load older messages as you scroll up
- **Media support** — View images, videos, documents, and audio directly in the thread
- **Voice messages** — Play audio directly in the browser
- **Template messages** — Send approved WhatsApp templates from the message input
- **Interactive messages** — View button replies and list selections
- **Optimistic UI** — Messages appear immediately after sending, even before server confirmation
========================================================================
## Assign & Resolve
URL: https://docs.splashifypro.com/messaging/assign-resolve
========================================================================
# Assign & Resolve
## Assigning a Conversation
Assign conversations to specific team members to route customer queries to the right person.
1. Open a conversation
2. Click the **Assign** button in the conversation header (top right)
3. Select a team member from the dropdown
4. The conversation is now assigned and the agent is notified
> When a conversation is assigned to a human agent, the AI chatbot automatically **pauses** and does not send automated replies — the human takes over.
### Unassigning
To unassign, click the assignee's name and select **Unassign**. This hands the conversation back to automated handling.
## Resolving a Conversation
Mark a conversation as resolved when the customer query is complete.
1. Click **Resolve** (✓) in the conversation header
2. The conversation moves to the **Resolved** tab
3. If the customer replies again, the conversation automatically **reopens** as Open
## Auto-Resolve
Configure conversations to auto-resolve after inactivity:
1. Go to **Settings → Live Chat**
2. Enable **Auto-Resolve**
3. Set the inactivity period (e.g. 24 hours, 48 hours)
Conversations that have no new messages for the configured period will automatically be resolved.
## Off-Hours Handling
You can configure what happens when customers message outside your working hours:
1. Go to **Settings → Live Chat**
2. Set **Working Hours** (Mon–Sat, 9AM–6PM, etc.)
3. Set an **Off-Hours Message** (e.g. "We're closed right now. We'll reply tomorrow morning.")
4. Toggle **Auto-Resolve outside working hours** if needed
## Welcome Message
Send a welcome message automatically when a new conversation starts:
1. Go to **Settings → Live Chat**
2. Enable **Welcome Message**
3. Write your welcome text
4. Save
The welcome message is sent once per new contact when they first message you.
========================================================================
## Conversations
URL: https://docs.splashifypro.com/messaging/conversations
========================================================================
# Conversations
## Conversation List
The left panel shows all your WhatsApp conversations. Each conversation card shows:
- **Contact name** (or phone number if unnamed)
- **Last message preview**
- **Time** of last message
- **Assignee** (team member or unassigned)
- **Unread badge** for unread messages
## Filtering Conversations
Use the filter bar above the conversation list to narrow down results:
| Filter | Description |
|--------|-------------|
| **Status** | Open, Resolved, or All |
| **Assigned to Me** | Only show conversations assigned to you |
| **Unassigned** | Conversations not assigned to any team member |
| **Search** | Search by contact name or phone number |
## Opening a Conversation
Click any conversation card to open it in the center panel. The message thread loads the last 50 messages and supports scrolling back to older messages.
## Message Thread
Inside a conversation, messages are displayed chronologically:
- **Inbound messages** (from customers) appear on the **left**
- **Outbound messages** (from your team) appear on the **right**
- Message **delivery status** icons: Sent ✓, Delivered ✓✓, Read 🔵✓✓
- **Timestamp** shown on each message
### Message Types Supported
| Type | Description |
|------|-------------|
| Text | Plain text messages |
| Image | JPEG, PNG images with caption |
| Video | MP4 videos with caption |
| Document | PDF, DOCX, and other files |
| Audio | Voice messages with inline player |
| Location | GPS coordinates shown on map link |
| Contacts | vCard contacts |
| Interactive (Buttons) | Quick reply and CTA buttons |
| Interactive (List) | List picker messages |
| Template | Approved WhatsApp template messages |
## Contact Details Panel
The right panel shows details about the selected conversation's contact:
- **Name, phone, email**
- **Tags** — add/remove tags to segment contacts
- **Custom attributes** — any custom contact fields you've defined
- **Assigned agent** — who is handling this conversation
- **Activity log** — history of actions taken on this contact
- **Call button** — initiate a WhatsApp call directly
========================================================================
## Live Chat Settings
URL: https://docs.splashifypro.com/messaging/live-chat
========================================================================
# Live Chat Settings
Configure how Splashify Pro handles conversations automatically.
Navigate to **Settings → Live Chat**.
## Welcome Message
An automatic message sent when a customer starts a new conversation.
| Setting | Description |
|---------|-------------|
| **Enable** | Toggle welcome message on/off |
| **Message Text** | The text sent to new customers |
## Off-Hours Message
Sent automatically when a customer messages outside your working hours.
| Setting | Description |
|---------|-------------|
| **Enable** | Toggle off-hours reply on/off |
| **Message Text** | E.g. "Thanks for reaching out! Our team is available Mon–Sat 9AM–6PM IST." |
## Working Hours
Define when your team is available:
1. Select each day of the week
2. Set **From** and **To** time for each active day
3. Choose your **timezone**
4. Save
Outside these hours, the off-hours message is triggered automatically.
## Auto-Resolve
Automatically resolve conversations after a period of inactivity.
| Setting | Description |
|---------|-------------|
| **Enable** | Toggle auto-resolve on/off |
| **Inactivity Period** | Time without reply before auto-resolving (e.g. 24h, 48h, 7 days) |
> **Tip:** Use auto-resolve with welcome messages so resolved conversations restart cleanly when customers message again.
========================================================================
## Sending Messages
URL: https://docs.splashifypro.com/messaging/send-messages
========================================================================
# Sending Messages
## Message Input Bar
The message input bar is at the bottom of the conversation thread.
### Send a Text Message
1. Click in the message input field
2. Type your message
3. Press **Enter** or click the **Send** button
### Send Media
Click the **attachment icon (📎)** to attach:
| Type | Max Size | Formats |
|------|----------|---------|
| Image | 5 MB | JPEG, PNG, WebP |
| Video | 16 MB | MP4, 3GP |
| Document | 100 MB | PDF, DOCX, XLSX, etc. |
| Audio | 16 MB | MP3, OGG, AMR |
Add an optional caption for images and videos.
### Send a Template Message
Templates are pre-approved messages you can send outside the **24-hour customer service window**.
1. Click the **template icon (📄)** in the message bar
2. Search or browse approved templates
3. Fill in any variable placeholders (e.g. `{{customer_name}}`, `{{order_id}}`)
4. Click **Send**
> **When to use templates:** WhatsApp only allows free-form messages within 24 hours of the customer's last message. After 24 hours, you must use an approved template.
### Send a Canned Message
Canned messages are pre-saved reply shortcuts.
1. Type `/` in the message input to open the canned message picker
2. Search by keyword
3. Select a canned message to insert it instantly
Manage your canned messages at **Settings → Canned Messages**.
## Message Status
| Icon | Status |
|------|--------|
| ⏳ | Sending |
| ✓ | Sent (reached WhatsApp servers) |
| ✓✓ | Delivered (reached the recipient's device) |
| 🔵 ✓✓ | Read (recipient opened the message) |
| ❌ | Failed — check error details |
## 24-Hour Messaging Window
WhatsApp's policy:
- **Within 24 hours** of the customer's last message: send any message type freely
- **After 24 hours**: only approved **template messages** can be sent
The conversation thread shows a banner when the 24-hour window has passed.
========================================================================
## Contacts
URL: https://docs.splashifypro.com/contacts
========================================================================
# Contacts
The **Contacts** section is your customer CRM. Store, organize, and segment your contacts to power targeted broadcasts and personalized conversations.
## Navigate to Contacts
Click **Contacts** in the left sidebar, or go to:
```
https://app.splashifypro.com/contacts
```
## What You Can Do
| Feature | Description |
|---------|-------------|
| **Add contacts** | Manually create contacts one by one |
| **Import contacts** | Bulk upload from CSV |
| **Edit & delete** | Update or remove contact records |
| **Tag contacts** | Apply labels for categorization |
| **Create segments** | Build filtered lists for targeted broadcasts |
| **Custom attributes** | Add extra fields (e.g. "Order ID", "City") |
| **Block/Unblock** | Prevent or restore messaging for a contact |
## Contact Fields
Each contact record contains:
| Field | Description |
|-------|-------------|
| **Name** | Full name |
| **Phone** | WhatsApp number with country code |
| **Email** | Optional email address |
| **Tags** | Labels applied to this contact |
| **Custom Columns** | Any custom attributes you've created |
| **Created At** | When the contact was added |
| **Last Activity** | Timestamp of last interaction |
========================================================================
## Custom Attributes
URL: https://docs.splashifypro.com/contacts/attributes
========================================================================
# Custom Attributes
**Custom Attributes** (also called contact columns) let you store extra data fields on contacts beyond the defaults — for example, "Order ID", "City", "Plan Type", "Subscription Date".
## Manage Custom Attributes
1. Go to **Settings → Attributes**
2. View existing custom attributes
3. Click **+ Add Attribute** to create a new field
### Attribute Settings
| Field | Options |
|-------|---------|
| **Name** | Display name (e.g. "City") |
| **Key** | API key (auto-generated from name, e.g. `city`) |
| **Type** | Text, Number, Date, Boolean |
## Supported Attribute Types
| Type | Example Values |
|------|---------------|
| **Text** | "Mumbai", "Premium", "Order #123" |
| **Number** | `1500`, `99.99` |
| **Date** | `2024-01-15` |
| **Boolean** | `true` / `false` |
## Set Attribute Values
### On a Contact
1. Open a contact
2. Scroll to the **Custom Attributes** section
3. Click the field and enter the value
4. It saves automatically
### Via CSV Import
Include columns matching your attribute keys:
```csv
name,phone,city,plan_type
John Doe,+919876543210,Mumbai,Pro
```
### Via Chatbot Flow
The **Update Column** node in the flow builder can set attribute values based on user input during a chatbot conversation.
## Using Attributes in Segments
Filter contacts by custom attributes when creating segments:
- **Condition:** `city → equals → Mumbai`
- **Condition:** `plan_type → equals → Pro`
## Using Attributes in Templates
Reference attributes in message templates with `{{variable_name}}` syntax. During broadcast creation, map each variable to a contact attribute.
========================================================================
## Import Contacts
URL: https://docs.splashifypro.com/contacts/import
========================================================================
# Import Contacts
Import thousands of contacts at once using a CSV file.
## Step 1: Prepare Your CSV
Your CSV must have at minimum a **phone** column. Recommended columns:
```csv
name,phone,email,city,tag
John Doe,+919876543210,john@example.com,Mumbai,vip
Jane Smith,+918765432109,jane@example.com,Delhi,
```
### Column Rules
| Column | Required | Notes |
|--------|----------|-------|
| `phone` | ✅ Yes | Include country code (e.g. `+91`) |
| `name` | Optional | Falls back to phone if blank |
| `email` | Optional | Must be valid email format |
| Any other column | Optional | Treated as custom attribute |
> **Phone format:** Include the `+` and country code. Numbers without country code may fail to match existing contacts.
## Step 2: Open Import Dialog
1. Go to **Contacts**
2. Click **Import Contacts**
3. Click **Choose File** and select your CSV
## Step 3: Review and Import
The import is automatic:
- **New contacts** are created
- **Existing contacts** (matched by phone) are updated
- **Invalid rows** (bad phone format, missing required field) are skipped
- **Previously deleted contacts** are restored if they match by phone
## Step 4: View Results
After the import completes, a summary appears:
| Metric | Description |
|--------|-------------|
| **Created** | New contacts added |
| **Updated** | Existing contacts updated |
| **Skipped** | Invalid or duplicate entries |
| **Failed** | Rows that couldn't be processed |
## Tips
- Always include country codes in phone numbers
- Use UTF-8 encoding for your CSV (especially for non-English names)
- Maximum recommended import size: **50,000 rows** per file
- Headers are case-insensitive (`Phone`, `phone`, `PHONE` all work)
========================================================================
## Manage Contacts
URL: https://docs.splashifypro.com/contacts/manage-contacts
========================================================================
# Manage Contacts
## Add a Contact Manually
1. Go to **Contacts**
2. Click **+ Add Contact**
3. Fill in the form:
- **Name** (required)
- **Phone Number** (required — include country code, e.g. `+919876543210`)
- **Email** (optional)
- Any **custom attributes** you've configured
4. Click **Save**
## Edit a Contact
1. Click on any contact row to open the contact detail
2. Click **Edit**
3. Update the fields
4. Click **Save**
## Delete a Contact
1. Click on a contact row
2. Click the **Delete** button (trash icon)
3. Confirm deletion
> Deleting a contact removes them from all segments but does **not** delete their message history.
## Search & Filter
Use the search bar at the top of the Contacts page to find contacts by:
- Name
- Phone number
- Email
## Block / Unblock
Blocking prevents any outbound messages (including broadcasts) from reaching a contact.
1. Open a contact
2. Click **Block Contact**
3. Confirm
To unblock, open the same contact and click **Unblock**.
## Opt-Out Management
If a contact replies with opt-out keywords (e.g. "STOP", "Unsubscribe"), they are automatically flagged.
Manage opt-outs at **Settings → Opt Management**.
========================================================================
## Segments
URL: https://docs.splashifypro.com/contacts/segments
========================================================================
# Segments
**Segments** are dynamic filtered lists of contacts based on conditions. Use segments as broadcast audiences to target the right customers.
## Navigate to Segments
Go to **Settings → Segments**, or access segments during broadcast creation.
## Create a Segment
1. Go to **Settings → Segments**
2. Click **+ Create Segment**
3. Enter a **segment name** (e.g. "Mumbai VIP Customers")
4. Add **filter conditions** using the condition builder:
### Filter Conditions
| Field Type | Available Operators |
|------------|-------------------|
| Contact name | contains, equals, starts with |
| Phone number | contains, equals |
| Tag | has tag, does not have tag |
| Custom attribute | equals, contains, greater than, less than |
| Created date | before, after, between |
### Combining Conditions
- **AND** — Contact must match all conditions
- **OR** — Contact must match at least one condition
**Example:** `Tag = "premium"` AND `City = "Mumbai"` → Only premium contacts from Mumbai
## View Segment Contacts
1. Open a segment
2. Click **Preview Contacts** to see the matching contacts
3. The **contact count** updates automatically as contacts are added/removed
## Edit a Segment
1. Open the segment
2. Click **Edit**
3. Modify the conditions
4. Save — the segment updates immediately
## Delete a Segment
1. Open the segment
2. Click **Delete Segment**
3. Confirm
> Deleting a segment does not delete the contacts in it.
## Using Segments in Broadcasts
When creating a broadcast:
1. Go to the **Audience** step
2. Select **Segment** as the source
3. Choose your segment
4. The recipient count is estimated based on current segment members
Segments are evaluated at **broadcast send time**, so contacts added after scheduling will be included.
========================================================================
## Tags
URL: https://docs.splashifypro.com/contacts/tags
========================================================================
# Tags
Tags are simple labels you can apply to contacts to categorize them (e.g. "VIP", "Lead", "Churned", "New Customer").
## Manage Tags
1. Go to **Settings → Tags**
2. View all existing tags
3. Click **+ Add Tag** to create a new tag
4. Click the edit icon to rename a tag
5. Click the delete icon to remove a tag
> Deleting a tag removes it from all contacts that have it.
## Apply Tags to Contacts
### From the Conversation View
1. Open a conversation
2. In the **Contact Details** panel on the right
3. Find the **Tags** section
4. Click **+ Add Tag** and select or type a tag name
### From the Contact List
1. Go to **Contacts**
2. Click on a contact
3. Open the **Tags** section
4. Add or remove tags
### Via CSV Import
Include a `tag` column in your CSV. Multiple tags can be separated by a pipe `|`:
```csv
name,phone,tag
John Doe,+919876543210,vip|premium
```
## Using Tags in Segments
Create segments filtered by tags:
1. **Condition:** `Tag → has tag → "VIP"`
2. Result: All contacts tagged as VIP
## Common Tag Examples
| Tag | Use Case |
|-----|----------|
| `lead` | New potential customer |
| `customer` | Existing paying customer |
| `vip` | High-value customer |
| `churned` | Customer who stopped buying |
| `support` | Has open support request |
| `do-not-disturb` | Do not send broadcasts |
========================================================================
## Broadcasts
URL: https://docs.splashifypro.com/broadcasts
========================================================================
# Broadcasts
**Broadcasts** let you send a single message to thousands of contacts at once — using WhatsApp templates or RCS messages.
## Navigate to Broadcasts
Click **Broadcasts** in the left sidebar, or go to:
```
https://app.splashifypro.com/broadcasts
```
## Broadcast Types
| Type | Channel | Best For |
|------|---------|---------|
| **WhatsApp Broadcast** | WhatsApp Business API | Transactional alerts, promotions, updates |
| **RCS Broadcast** | RCS (Rich Communication Services) | Rich media campaigns with buttons |
## Broadcast Statuses
| Status | Meaning |
|--------|---------|
| **Draft** | Created but not yet sent |
| **Scheduled** | Set to send at a future time |
| **Processing** | Currently being sent |
| **Completed** | All messages dispatched |
| **Failed** | Sending encountered errors |
| **Cancelled** | Manually stopped before completion |
## Broadcasts List
The Broadcasts page shows all your campaigns with:
- Campaign name and channel
- Status badge
- Recipient count
- Sent / Failed / Pending counts
- Created date
- Actions: View Report, Cancel (if in progress)
## Before You Broadcast
Make sure you have:
1. ✅ An approved **message template** (for WhatsApp)
2. ✅ Sufficient **wallet balance**
3. ✅ A **segment** or contact list to target
========================================================================
## Broadcast Reports
URL: https://docs.splashifypro.com/broadcasts/broadcast-reports
========================================================================
# Broadcast Reports
After a broadcast is sent, view detailed delivery analytics in the **Broadcast Report**.
## Access a Report
1. Go to **Broadcasts**
2. Find your completed broadcast
3. Click **View Report** or click the broadcast name
## Report Overview
The top of the report shows summary cards:
| Metric | Description |
|--------|-------------|
| **Total Recipients** | Number of contacts targeted |
| **Sent** | Messages dispatched from your WABA |
| **Delivered** | Messages confirmed delivered to device |
| **Read** | Messages opened by recipients |
| **Failed** | Messages that could not be delivered |
| **Pending** | Messages still in queue |
## Delivery Rate Calculation
```
Delivery Rate = (Delivered / Sent) × 100
Read Rate = (Read / Delivered) × 100
```
## Per-Contact Delivery Table
Scroll down to see each recipient's delivery status:
| Column | Description |
|--------|-------------|
| Contact Name | Recipient name |
| Phone | Phone number |
| Status | Sent / Delivered / Read / Failed |
| Timestamp | When the status was last updated |
| Error | Failure reason (if failed) |
## Common Failure Reasons
| Error | Cause |
|-------|-------|
| `User not on WhatsApp` | Number not registered on WhatsApp |
| `Number opted out` | Contact previously opted out |
| `Messaging limit reached` | WABA daily tier exceeded |
| `Template rejected` | Template was rejected by Meta after approval |
| `Invalid phone number` | Phone number format is incorrect |
## Failed Message Refunds
Failed messages are automatically refunded to your wallet. Refunds typically process within **24 hours**.
## Broadcast Creator
The report shows which team member created and sent the broadcast, so you can track campaign ownership.
## Export
Use the browser's print/save function to export the report. Native CSV export is coming soon.
========================================================================
## Create a Broadcast
URL: https://docs.splashifypro.com/broadcasts/create-broadcast
========================================================================
# Create a Broadcast
## Step 1: Start a New Broadcast
1. Go to **Broadcasts**
2. Click **+ New Broadcast**
3. Choose the channel: **WhatsApp** or **RCS**
---
## WhatsApp Broadcast
### Step 2: Select a Template
Browse your approved WhatsApp templates and select one.
- Filter by template category: **Marketing**, **Utility**, **Authentication**
- Preview the template on the right before selecting
- Only **approved** templates can be used for broadcasts
### Step 3: Choose Your Audience
Select who will receive this broadcast:
| Option | Description |
|--------|-------------|
| **Segment** | Target a saved segment (recommended) |
| **All Contacts** | Send to your entire contact list |
| **Upload CSV** | Import a one-time contact list just for this broadcast |
The recipient count is shown after selecting the audience.
### Step 4: Map Template Variables
If your template has variables (e.g. `{{1}}`, `{{customer_name}}`), map each one to a contact field:
| Variable | Map to |
|----------|--------|
| `{{1}}` | Contact Name |
| `{{2}}` | Custom Attribute: "Order ID" |
| `{{3}}` | Static value: "Mumbai" |
### Step 5: Schedule or Send Now
| Option | Description |
|--------|-------------|
| **Send Now** | Broadcast starts immediately after creation |
| **Schedule** | Pick a future date and time (your account timezone) |
### Step 6: Confirm and Launch
Review the summary:
- Template name
- Audience count
- Estimated cost (deducted from wallet)
- Send time
Click **Launch Broadcast** to confirm.
---
## Billing
Broadcast costs are deducted from your wallet per message:
- **Marketing template:** Higher per-message rate
- **Utility template:** Lower per-message rate
- Failed messages are automatically refunded
Check your balance before sending at **Wallet** in the sidebar.
---
## Cancel a Broadcast
To stop an in-progress broadcast:
1. Go to **Broadcasts**
2. Find the broadcast with status **Processing**
3. Click **Cancel**
4. Confirm
Messages already sent cannot be recalled. Only unsent messages are stopped.
========================================================================
## RCS Broadcasts
URL: https://docs.splashifypro.com/broadcasts/rcs-broadcast
========================================================================
# RCS Broadcasts
**RCS (Rich Communication Services)** is the next-generation SMS. RCS Broadcasts allow you to send rich, interactive messages — with images, carousels, and buttons — to contacts' native SMS apps on supported Android devices.
## RCS vs WhatsApp
| Feature | RCS | WhatsApp |
|---------|-----|---------|
| No app install needed | ✅ | ❌ |
| Delivered to SMS inbox | ✅ | ❌ |
| Supports Android only | ✅ | Both iOS & Android |
| Rich media (images, buttons) | ✅ | ✅ |
| Template approval required | ✅ | ✅ |
## Creating an RCS Broadcast
1. Go to **Broadcasts**
2. Click **+ New Broadcast**
3. Select **RCS** as the channel
### RCS Campaign Steps
**Step 1: Campaign Name**
Give your campaign a descriptive name for internal tracking.
**Step 2: Select RCS Template**
Choose from your approved RCS templates. Templates must be submitted and approved before use.
**Step 3: Choose Audience**
Same as WhatsApp — select a segment, all contacts, or upload a CSV.
**Step 4: Map Variables**
If your RCS template has variables, map them to contact fields.
**Step 5: Schedule or Send**
Choose to send immediately or schedule for a later time.
## RCS Templates
Create RCS templates at **Templates → RCS Templates**.
RCS templates support:
- Plain text messages
- Image messages
- Card messages (image + title + description + buttons)
- Carousel messages (multiple cards)
See [Templates](/templates) for how to create and submit RCS templates.
## Billing
RCS messages are charged per message sent based on your RCS plan. Rates are separate from WhatsApp pricing. Check your current RCS balance in **Wallet**.
## Delivery
- RCS delivers only to Android devices with RCS support enabled
- If RCS is not supported, the message may fallback to SMS (depending on carrier and your plan)
- Delivery reports are available in the broadcast report
## View RCS Broadcast Report
After the broadcast, click **View Report** on the broadcast row to see:
- Total sent
- Delivered count
- Failed count
- Per-contact delivery status
========================================================================
## WhatsApp Broadcasts
URL: https://docs.splashifypro.com/broadcasts/whatsapp-broadcast
========================================================================
# WhatsApp Broadcasts
WhatsApp Broadcasts use **Meta-approved message templates** to send messages to large audiences outside the 24-hour customer service window.
## How WhatsApp Broadcasts Work
1. You select an approved template
2. Splashify Pro sends each message individually from your WABA
3. Recipients receive messages in their WhatsApp as if sent from your number
4. Replies open a regular conversation in your inbox
> WhatsApp limits the number of messages you can send per day based on your messaging tier. Higher tiers are unlocked by completing KYC and maintaining good message quality.
## Messaging Tiers
| Tier | Conversations/Day |
|------|------------------|
| **Tier 1** | 1,000 |
| **Tier 2** | 10,000 |
| **Tier 3** | 100,000 |
| **Tier 4** | Unlimited |
Tier upgrades happen automatically when Meta's quality rating criteria are met.
## Template Categories
| Category | Use Case | Approval Time |
|----------|----------|--------------|
| **Marketing** | Promotions, offers, announcements | 24–48 hours |
| **Utility** | Order updates, OTP, transactional | Usually faster |
| **Authentication** | OTP for login/verification | Fastest |
## Message Quality Rating
Meta monitors message quality based on:
- **Read rate** — How many recipients open your messages
- **Block rate** — How many recipients block you after receiving messages
- **Opt-out rate** — How many recipients report or opt out
Poor quality can lower your tier or restrict your account. Always send relevant, expected messages.
## Rate Limits
Splashify Pro handles WABA rate limiting automatically:
- Messages are queued and sent at the optimal rate
- Large broadcasts are processed in batches
- No manual rate limiting required
## Template Variable Tips
| Tip | Details |
|-----|---------|
| Personalize with `{{name}}` | Higher open rates |
| Keep CTAs clear | One call-to-action works better than multiple |
| Test before sending | Use the preview feature on the template page |
========================================================================
## AI Agents & Chatbots
URL: https://docs.splashifypro.com/ai-agents
========================================================================
# AI Agents & Chatbots
Splashify Pro offers two types of automation agents:
## Agent Types
| Type | Description | Best For |
|------|-------------|---------|
| **Chat AI Agent** | GPT-powered agent that reads your instructions and responds intelligently | FAQ bots, support automation, lead qualification |
| **Workflow Bot** | Visual no-code flow builder with trigger-based conversation paths | Structured conversations, data collection, onboarding |
## Navigate to AI Agents
Click **AI Agents** in the left sidebar, or go to:
```
https://app.splashifypro.com/ai-agents
```
## How Automation Works
When a customer sends a message:
```
Incoming WhatsApp message
↓
Is a human agent assigned?
↓ No
Is there a default Workflow Bot?
↓ Yes → Run the bot flow
↓ No
Is there a Chat AI Agent?
↓ Yes → AI generates reply
↓ No
Message sits unhandled in inbox
```
When a **human agent** is assigned to a conversation, all automated replies pause — the human takes control.
## Setting a Default Agent
1. Go to **AI Agents**
2. Find your Workflow Bot
3. Click the **star icon ⭐** (Set as Default)
Only Workflow Bots can be set as default (Chat AI Agents handle specific conversations, not all inbound messages by default).
## AI Credits
AI Agent responses consume **AI credits**. Each reply uses a certain number of credits based on the length of the conversation.
- View your AI credit balance at **AI Credits** in the sidebar
- Recharge AI credits at **Settings → AI Credits**
- When credits run out, the AI agent stops responding and the conversation becomes available for human handling
========================================================================
## Chat AI Agent
URL: https://docs.splashifypro.com/ai-agents/chat-ai-agent
========================================================================
# Chat AI Agent
A **Chat AI Agent** uses GPT (large language model) to read your instructions and automatically respond to customer messages in a natural, human-like way.
## Create a Chat AI Agent
1. Go to **AI Agents**
2. Click **+ New Agent**
3. Select **Chat AI Agent**
4. Fill in the agent details:
### Agent Configuration
| Field | Description |
|-------|-------------|
| **Name** | Internal name (e.g. "Customer Support Bot") |
| **Instructions** | The system prompt — tell the AI who it is and how to behave |
| **Knowledge Base** | Add documents or text the AI should know about |
| **Tone** | Professional, Friendly, Formal |
| **Language** | Default language for responses |
### Writing Good Instructions
Your instructions define how the AI behaves. Example:
```
You are a customer support agent for Acme Store.
You help customers with:
- Order status inquiries
- Return and refund policies
- Product recommendations
Always be polite and professional. If you cannot answer
a question, say "Let me connect you with our team."
Do NOT make up information not in the knowledge base.
```
## Knowledge Base
Add documents for the AI to reference:
1. Open your Chat AI Agent
2. Click **Knowledge Base**
3. Add content via:
- **Plain text** — Paste FAQs, policies, product descriptions
- **URL** — The AI fetches and indexes the page
- **File upload** — PDF, DOCX support
The AI uses the knowledge base to answer questions accurately without hallucinating.
## Testing Your Agent
1. Open the agent
2. Use the **Test Chat** panel to simulate a conversation
3. Review the AI's responses
4. Adjust instructions if needed
## Assigning to a Conversation
You can manually assign a Chat AI Agent to a specific conversation:
1. Open the conversation in **Messages**
2. Click **Assign AI Agent** in the conversation header
3. Select your agent
## Deactivating / Archiving
1. Open the agent
2. Toggle **Status** to **Inactive**
Inactive agents do not process messages but their configuration is preserved.
## AI Credits Usage
Each AI-generated response consumes credits based on:
- Input tokens (conversation history + instructions)
- Output tokens (the response generated)
Monitor usage at **Settings → AI Credits**.
========================================================================
## Flow Builder
URL: https://docs.splashifypro.com/ai-agents/flow-builder
========================================================================
# Flow Builder
The **Flow Builder** is a visual drag-and-drop canvas where you connect nodes to build your chatbot conversation flow.
## Open the Flow Builder
1. Go to **AI Agents**
2. Click on a **Workflow Bot**
3. The flow builder opens automatically
## Canvas Controls
| Action | How |
|--------|-----|
| **Pan** | Click and drag on empty canvas |
| **Zoom** | Scroll wheel, or use +/− buttons |
| **Select node** | Click on a node |
| **Move node** | Click and drag a node |
| **Connect nodes** | Drag from an output handle to an input handle |
| **Delete connection** | Click the edge and press Delete |
| **Delete node** | Select node → press Delete or use the node menu |
## Node Palette
The left sidebar shows available node types. Click a node type to add it to the canvas.
### Node Categories
**Send Messages**
- Send Text
- Send Image
- Send Video
- Send Document
- Send Audio
- Send Button Message (interactive)
- Send List Message (interactive)
- Send Template Message
**Ask / Collect Input**
- Ask Question (text)
- Ask Number
- Ask Phone
- Ask Email
- Ask Date
- Ask URL
- Ask Media / File
- Ask Location
- Ask Choice (multiple choice buttons)
**Logic & Flow Control**
- Condition (if/else branching)
- Delay (wait before next step)
- AI Agent (hand off to another bot)
**Actions**
- HTTP Request (call an external API)
- Update Contact Column (set a custom attribute)
- Update Contact Tag (add/remove tag)
- AI Generate (generate dynamic text using AI)
- Assign Agent (assign conversation to team member)
- Resolve Conversation
## Building a Flow
### Step 1: Start with a Trigger
Every flow must start with an **On Message** trigger node. It's added automatically when you create a new bot.
### Step 2: Add Nodes
1. Click a node in the **Node Palette** (left sidebar)
2. It appears on the canvas
3. Drag it to position it
### Step 3: Connect Nodes
- Drag from the **output handle** (circle on the right/bottom of a node) to the **input handle** of the next node
- Conditional nodes have two outputs: **True** (yes path) and **False** (no path)
### Step 4: Configure Each Node
Click on a node to open its configuration panel on the right:
- Set the message text, media, or logic
- Map variable placeholders to contact attributes
- Configure conditions and operators
### Step 5: Test the Flow
Use the **Test** button to simulate the flow in a preview mode.
### Step 6: Save and Publish
- Click **Save** to save your progress as a draft
- Click **Publish** to make the bot live
## Variables
Variables let you store and reuse dynamic values throughout a flow.
### Storing User Input
When using Ask nodes, the user's answer is saved to a **variable**:
```
Ask Question: "What is your name?"
Save to variable: "customer_name"
```
Later nodes can reference `{{customer_name}}` in message text.
### Mapping to Contact Attributes
Use the **Update Contact Column** node to persist variables to the contact's profile in the database.
## Maya AI Flow Generator
Instead of building a flow from scratch, describe what you want in plain language and let **Maya AI** generate a complete, ready-to-run flow automatically.
### How it works
1. Open a Workflow Bot in the Flow Builder
2. Click the **Maya** button (top-right of the canvas toolbar)
3. Type a description of the flow you want — e.g. *"Ask for name, email, and service interest, then send a confirmation message"*
4. Select the **Mode**:
- **Replace** — clears the current canvas and builds the new flow from scratch
- **Append** — adds the generated nodes to the existing canvas
5. Click **Generate** — Maya will build the flow in seconds
6. Review the generated nodes; use the **Refine** input if you want to adjust specific parts
7. Click **Apply to Canvas** to insert the flow
### Cost
Each generation deducts **₹5** from your **Wallet**. The deduction happens only after the AI returns a valid flow — a failed call costs nothing.
### Supported node types (23)
Maya can generate flows using any of these node types:
| Category | Nodes |
|----------|-------|
| **Trigger** | On Message |
| **Send** | Send Text, Send Button, Send List, Send Media, Send Template |
| **Ask** | Ask Text, Ask Number, Ask Email, Ask Phone, Ask Choice |
| **Logic** | Condition, Delay, Jump to Flow |
| **AI** | AI Generate |
| **Actions** | HTTP Request, Set Variable, Update Tag, Update Column, Assign Conversation, Unassign Conversation, Resolve Conversation, Stop Chatbot |
### Tips for better results
- Be specific: *"Ask for the customer's name, then ask for their city, then send a text saying 'Thanks \{\{name\}\}, we'll contact you in \{\{city\}\} shortly'"*
- Mention branching: *"If the customer selects Premium, send the premium offer; otherwise send the standard offer"*
- Describe the goal: *"Lead capture flow for a real-estate business — collect name, budget, and preferred location"*
- Use **Refine** to tweak individual parts without regenerating the whole flow
## CTWA Ads Integration
When triggered from a Click-to-WhatsApp (CTWA) ad, the flow receives the ad's **Source ID**. Use the **On Message** trigger with "For Specific Ads" to build dedicated landing-style flows per ad campaign.
========================================================================
## Flow Node Reference
URL: https://docs.splashifypro.com/ai-agents/flow-nodes
========================================================================
# Flow Node Reference
## Trigger Nodes
### On Message Node
The entry point of every flow. Defines what messages activate the bot.
| Setting | Options |
|---------|---------|
| **Trigger Type** | Any Message / Specific Keywords / Any CTWA Ad / Specific CTWA Ads |
| **Keywords** | Comma-separated keywords (case-insensitive match) |
| **Source IDs** | CTWA ad source IDs for ad-specific triggers |
| **Behavior** | Normal / Only once per new contact / Only if resolved |
---
## Send Message Nodes
### Send Text
Sends a plain text WhatsApp message.
- Supports `{{variable_name}}` placeholders
- Supports emoji
### Send Image / Video / Document / Audio
Sends a media file.
- **URL:** Direct link to the media file
- **Caption:** Optional text below the media
### Send Button Message
Sends an interactive message with up to **3 quick reply buttons**.
| Field | Description |
|-------|-------------|
| Body text | The main message |
| Footer | Optional sub-text below body |
| Buttons | Up to 3 button labels |
Each button connects to a separate output handle for branching.
### Send List Message
Sends an interactive list picker with sections and rows.
| Field | Description |
|-------|-------------|
| Header | Optional header text |
| Body | Main message |
| Button Label | Text of the "View Options" button |
| Sections | Up to 10 sections, each with up to 10 rows |
### Send Template Message
Sends an approved WhatsApp message template.
| Field | Description |
|-------|-------------|
| Template | Select from approved templates |
| Variables | Map template variables to contact attributes |
---
## Ask / Input Nodes
All Ask nodes send a question and **wait for the user's reply** before proceeding.
| Node | Validates |
|------|-----------|
| **Ask Question** | Any text |
| **Ask Number** | Numeric input |
| **Ask Phone** | Valid phone format |
| **Ask Email** | Valid email format |
| **Ask Date** | Date format |
| **Ask URL** | Valid URL |
| **Ask Media** | Image / Video |
| **Ask File** | Document / File |
| **Ask Location** | GPS location share |
| **Ask Choice** | Buttons (up to 3 choices) |
### Ask Node Settings
| Setting | Description |
|---------|-------------|
| **Question text** | The message sent to the user |
| **Save to variable** | Variable name to store the answer |
| **Invalid response message** | Sent if the user's input fails validation |
---
## Logic Nodes
### Condition Node
Branches the flow based on a condition.
| Field | Description |
|-------|-------------|
| **Variable** | The variable or contact attribute to check |
| **Operator** | equals / not_equals / contains / starts_with / ends_with |
| **Value** | The value to compare against |
**Outputs:**
- **True** handle → path taken when condition is met
- **False** handle → path taken when condition is not met
### Delay Node
Pauses the flow for a specified duration before executing the next node.
| Field | Options |
|-------|---------|
| **Duration** | Any number |
| **Unit** | Seconds / Minutes / Hours |
---
## Action Nodes
### HTTP Request Node
Calls an external API and optionally stores the response in a variable.
| Field | Description |
|-------|-------------|
| **Method** | GET / POST / PUT / DELETE |
| **URL** | The API endpoint |
| **Headers** | Key-value pairs |
| **Body** | JSON body (for POST/PUT) |
| **Save response to** | Variable name |
### Update Contact Column
Sets a custom attribute on the contact.
| Field | Description |
|-------|-------------|
| **Column** | The custom attribute to update |
| **Value** | Static value or `{{variable}}` |
### Update Contact Tag
Adds or removes a tag from the contact.
| Field | Options |
|-------|---------|
| **Action** | Add tag / Remove tag |
| **Tag** | Select from existing tags |
### AI Agent Node
Hands off the flow to another **Workflow Bot** (sub-flow).
| Field | Description |
|-------|-------------|
| **Select Bot** | Choose a published Workflow Bot |
### AI Generate Node
Generates dynamic text using AI based on a prompt.
| Field | Description |
|-------|-------------|
| **Prompt** | Instruction for the AI (can include `{{variables}}`) |
| **Save to variable** | Where to store the generated text |
### Assign Agent Node
Assigns the conversation to a specific team member.
| Field | Description |
|-------|-------------|
| **Agent** | Select a team member |
### Resolve Conversation Node
Marks the conversation as resolved. Useful at the end of a flow.
========================================================================
## Untitled
URL: https://docs.splashifypro.com/ai-agents/instagram-bots
========================================================================
# Instagram Chatbots
Workflow Bots can run on Instagram in addition to WhatsApp. Pick the channel when you create the bot — channel is permanent post-create. The same flow editor, the same node palette (minus a few WA-only nodes), and the marquee feature: a **Send WhatsApp Template** node that hands a qualified lead from Instagram to WhatsApp for richer engagement.
> **Plan + connection requirements:** Instagram bots need a plan with **Instagram Automation** enabled, AND a connected Instagram Business account at [/instagram-automation](/instagram-automation). Trial users get full access.
## Channel scoping
Each bot is either **WhatsApp** or **Instagram**, picked at create-time and immutable. The flow editor renders the matching node palette per channel — IG bots don't see WA-only nodes (and vice versa).
| Concern | WhatsApp | Instagram |
|---|---|---|
| Trigger types | Keyword, any-message, CTWA Ads | DM keyword, DM any, story reply, comment-on-post |
| Send-type nodes | Text, media, button, list, CTA, template, carousel | Text, media, button (quick-replies), **Send WhatsApp Template** (handoff) |
| Ask-type nodes | Text, number, email, phone, date, URL, media, file, location | Text, number, email, phone, date, URL, media (no file, no location) |
| 24h/7d window | Not enforced | Auto-attaches `HUMAN_AGENT` tag 24h–7d, refuses send beyond 7d |
| Default-bot star | Independent — one default per channel | Independent — one default per channel |
## IG trigger types
Pick one per bot in the **On Message** node:
- **Any DM** — fires on any plain inbound DM. Story replies and comment-triggered DMs are excluded so they can be handled by their dedicated triggers.
- **DM Keyword** — case-insensitive substring match against keywords you list. Optional fuzzy / case-match toggles match the WA keyword UI.
- **Story Reply** — fires when a customer replies to one of your stories. Optional story-id filter restricts to specific stories; empty = any story.
- **Comment on Post** — fires when a customer comments on a post you pick from the IG media grid. Optional keyword filter restricts to comments containing certain words.
All four support the standard behavior gates (every message / only-once-per-contact / only-if-resolved).
### Constraint on comment triggers
When the trigger is **Comment on Post**, the first node connected after the trigger MUST be a Send-type (Send Text / Send Media / Send Button). The bot replies via Meta's comment-scoped private-reply API which only accepts the immediate content of the reply — there's no way to "run the bot to completion before sending." If the first node is a Condition or Delay, the customer never receives a DM and the session never starts. Save fails with a clear error if you try.
### Comment trigger overlap with comment-to-DM rules
If a [comment-to-DM rule](/instagram/automation-rules) on the same post + keyword matches first, the rule fires and the bot is skipped. So:
- For one-shot DM replies → use a comment-to-DM rule
- For multi-step qualification flows → use a bot with a comment trigger
- Don't put both on the same post + keyword — only the rule will run
## Send WhatsApp Template (cross-channel handoff)
The marquee feature. Drop this node anywhere in your IG flow to hand off to WhatsApp:
1. **Phone source variable** — pick the variable that holds the captured phone (typically the saveAs of an Ask Phone node earlier in the flow).
2. **WhatsApp template** — pick an APPROVED template from your WA template library.
3. **Variable mapping** — map body / header / button params, same UI as the WA Send Template node.
4. **After handoff** — choose what happens next:
- **End IG flow** (default): one-shot template send, IG flow stops.
- **Continue on WhatsApp via bot…**: chained WA bot resumes when the customer replies on WA. IG-captured variables transfer verbatim into the WA session.
5. **Compliance acknowledgement** — required to save. Confirms the recipient has opted into WhatsApp messages. Marketing templates without explicit opt-in violate Meta policy.
When the node fires, we:
- Find or create a WA contact tagged `instagram-handoff` with `metadata.source_ig_conversation_id` cross-linking back to the originating IG conversation.
- Find or create the WA conversation row (channel='whatsapp').
- Send the template via your standard WA messaging path. Wallet deduction + reseller markup apply normally.
- (If continue-on-WA) insert a paused chatbot session keyed on the WA conversation + chosen bot. The customer's first WA reply resumes the bot.
- Record a `cross_channel_handoff` row in the activity log with both conversation ids.
If the phone variable is empty / invalid, or the user has no WABA connected, the node logs an audit row and advances the flow without sending — surrounding nodes (CRM tag updates, audit webhooks, etc.) still run.
## 24h / 7d messaging window
Meta restricts who you can DM and when:
- **0–24h** since the customer's last inbound: send freely.
- **24h–7d**: the IG send layer auto-attaches the `HUMAN_AGENT` message tag. The bot still works but Meta's policy requires this for non-promotional follow-ups.
- **Beyond 7d**: Meta refuses the send. The flow logs the skip and advances to the next node — Condition / HTTP / UpdateColumn / UpdateTag / SendWhatsAppTemplate still run for an expired-window contact.
The Send WhatsApp Template handoff is the one path that bypasses the window, since WA templates have their own opt-in policy.
## Setting a default IG bot
Independent from the default WA bot. Star button on each bot row in [/ai-agents](/ai-agents) — IG bots get a pink star, WA bots emerald. Stars per channel are independent: starring an IG bot doesn't unstar your WA default.
Inbound IG DMs that don't match a more specific bot (keyword / story / comment) fall through to the default IG bot if one is set, OR to the welcome / off-hours auto-reply if those are configured under [Settings → Live Chat](/settings/live-chat).
## What lives where
- **Bot creation + channel pick** — [/ai-agents](/ai-agents) → Create Agent → Workflow Bot → pick WhatsApp or Instagram.
- **Flow builder** — [/chatbot/[id]](/chatbot) — same canvas as WA bots, IG-pink accent + filtered palette.
- **Comment-to-DM rules (one-shot)** — [/instagram-automation](/instagram-automation) — keep for simple "comment X → DM Y" use cases.
- **Default-bot star + channel pill** — agent list at [/ai-agents](/ai-agents).
- **Live testing** — [/messages](/messages) Instagram tab; bots fire on real inbound.
========================================================================
## AI Credits & Pricing
URL: https://docs.splashifypro.com/ai-agents/pricing
========================================================================
# AI Credits & Pricing
Every AI agent reply — text or voice — deducts from your **AI Credits**
wallet (separate from your WhatsApp messaging wallet). Top-up at
**Settings → AI Credits**. All prices below are in **INR**, deducted
in real time after each reply.
## Chat (text in, text out)
Chat AI agents and the **AI Generate Text** node are billed per
token of input + output:
| Direction | Rate per 1M tokens | Rate per token |
| --------- | ------------------ | -------------- |
| Input (your prompt + history + KB context) | **₹15** | ₹0.000015 |
| Output (the agent's reply) | **₹60** | ₹0.000060 |
A typical WhatsApp reply uses around **400 input + 80 output tokens**:
```
input = 400 × 0.000015 = ₹0.0060
output = 80 × 0.000060 = ₹0.0048
total = ₹0.0108 per message
```
That's about **₹1.08 per 100 chat replies** for a typical agent. A
support agent serving 10,000 messages a month costs around
**₹100-150** in chat credits.
### What counts as a token
Tokens are how the model measures text — roughly 4 characters or
¾ of an English word. We count exactly the prompt + completion
tokens reported by the model and deduct that, no rounding up.
The system prompt (your agent's role, goal, instructions, tone +
the entire knowledge base text) is part of the **input** count, so
larger knowledge bases mean slightly higher per-message costs.
Trim KB files to relevant content for the cheapest rate.
## Voice (incoming voice notes & spoken replies)
When a customer sends a **WhatsApp voice note** to a chat AI agent,
two extra services run on top of the chat charge:
1. **Speech-to-Text** — the voice note is transcribed before being
sent to the model
2. **Text-to-Speech** — the agent's reply is converted back to
audio and sent as a voice note (only when the inbound was audio)
| Service | Rate |
| ------- | ---- |
| **Speech-to-Text** | **₹0.0104 / second** of audio |
| **Text-to-Speech** | **₹0.00375 / character** of reply |
A typical voice exchange:
```
Customer voice note (10s) STT 10 × 0.0104 = ₹0.104
Chat reply (400+80 tokens) chat = ₹0.011
Agent voice note (200 chars) TTS 200 × 0.00375 = ₹0.75
──────
Total per voice exchange ≈ ₹0.87
```
A chat-only exchange costs **~₹0.01**; a voice exchange costs
**~₹0.87** because the audio pipeline is the dominant cost.
### When voice charges apply
| Inbound | Outbound | Charges |
| ------- | -------- | ------- |
| Text | Text | Chat only |
| **Voice note** | Text | Chat + Speech-to-Text |
| **Voice note** | **Voice note** | Chat + Speech-to-Text + Text-to-Speech |
The agent automatically replies with audio when the inbound was
audio. To force text-only replies, edit the agent's instructions
(e.g. "Always reply with text, never audio").
## Voice AI Agent (real-time phone calls)
Distinct from the chat AI agent — **Voice AI Agents** handle live
WhatsApp Business calls. Pricing is per-second of call time, not
per-token. See [Voice AI Pricing](/voice-ai/pricing) for details.
## Where to see your usage
- **Settings → AI Credits** — current balance + recent deductions
- **Track Expenses → AI Credit Usage** — full history with per-call
breakdown of token counts, audio seconds, and characters
Each row records the call type (chat, speech-to-text, text-to-speech)
so you can see exactly what your AI agents are doing.
## Insufficient credits
When your balance falls below the cost of the next call, the agent
**stops replying** and the conversation auto-unassigns so a human
team member can take over. Top up at **Settings → AI Credits** —
deductions resume immediately on the next inbound.
The default minimum balance to keep the agent active is **₹0.001**
(covers about 10 short text exchanges). Drop the balance below
that and the conversation gets handed to your unassigned queue
without any failed-message charges.
## Maya AI — Flow Generation
**Maya AI** generates complete chatbot flows from a plain-language prompt.
This is billed from your **Wallet** (not AI Credits), as a flat per-generation fee.
| Action | Cost |
|--------|------|
| Generate a flow | **₹5 per generation** |
The ₹5 is deducted only after the AI returns a valid flow. A failed or timed-out call costs nothing.
If your wallet balance is below ₹5, generation is blocked until you top up.
## Maya AI — Template Generation
**Maya AI** on the template create page generates a full WhatsApp template (header, body, and buttons) in one click.
| Action | Cost |
|--------|------|
| Generate a template | **₹2 per generation** |
Same rules apply: deducted from **Wallet** only on success, free on failure, blocked if balance < ₹2.
## Need higher volume?
For accounts processing 100K+ AI replies per month, custom rates
are available. Email **support@splashifypro.in** with your expected
monthly volume.
========================================================================
## Workflow Bot
URL: https://docs.splashifypro.com/ai-agents/workflow-bot
========================================================================
# Workflow Bot
A **Workflow Bot** uses a visual flow builder to define structured conversation paths. Unlike the Chat AI Agent (which responds freely), a Workflow Bot follows a defined script — collecting data, sending messages, and taking actions at each step.
## Create a Workflow Bot
1. Go to **AI Agents**
2. Click **+ New Agent**
3. Select **Workflow Bot**
4. Enter a name
5. Click **Create** — you'll be taken to the **Flow Builder**
## How Workflow Bots Work
A bot flow is a connected graph of **nodes**. When a trigger fires, the bot executes nodes one by one:
```
Trigger (On Message / On CTWA Ad)
↓
Send a message
↓
Ask a question → Save answer to contact
↓
Condition: Was answer "Yes"?
↓ Yes ↓ No
Send callback Send goodbye
request message message
```
## Triggers
Every bot flow starts with an **On Message** trigger node that defines when the bot activates:
| Trigger | Description |
|---------|-------------|
| **For Any Message** | Bot activates on every incoming message |
| **For Specific Keywords** | Activates when message matches keywords (e.g. "Hi", "Start", "Menu") |
| **For Any CTWA Ads** | Activates when message comes from any Click-to-WhatsApp ad |
| **For Specific Ads** | Activates only for specific CTWA source IDs |
### Trigger Behavior Options
| Option | Description |
|--------|-------------|
| **Only once per new contact** | Bot runs only the first time a new contact messages |
| **Only if chat is resolved** | Bot only activates for resolved conversations |
## Set as Default Bot
To have the bot handle all inbound messages automatically:
1. On the **AI Agents** list page
2. Click the **⭐ star icon** next to your Workflow Bot
3. It becomes the default — all unassigned conversations are handled by this bot
## Publish the Bot
After building and testing your flow:
1. Click **Publish** in the flow builder
2. Status changes from **Draft** to **Published**
3. The bot is now live and active
> Unpublished (Draft) bots do not process messages even if set as default.
## Session Management
The bot tracks each contact's progress through the flow using **sessions**:
- Sessions are stored per contact per flow
- If a contact stops mid-flow and messages again, the bot **continues from where they left off**
- Sessions expire after **24 hours** of inactivity — the next message restarts the flow
## Nested Bots
You can call one Workflow Bot from another using the **AI Agent Node**. This allows modular, reusable sub-flows.
========================================================================
## Instagram
URL: https://docs.splashifypro.com/instagram
========================================================================
# Instagram
Splashify Pro connects your **Instagram Business account** so you can:
- **Auto-DM** users who comment on your reels with a trigger keyword
- **Reply publicly** to those comments at the same time
- **Chat with DMs** in the same unified inbox you use for WhatsApp + RCS
Everything runs through the official **Instagram Graph API with Instagram Login** — no Instagram password is ever shared with Splashify Pro, and you can revoke access at any time from your Instagram settings.
## Three parts of the feature
| Part | What it does | Where to find it |
|------|--------------|------------------|
| **Connect** | One-time Instagram Login flow that authorises Splashify Pro | [/instagram-automation](https://app.splashifypro.com/instagram-automation) |
| **Automation Rules** | Per-reel keyword triggers → auto-DM + public reply | Same page, Rules tab |
| **Instagram Inbox** | Live DM conversations alongside WhatsApp + RCS | [/messages](https://app.splashifypro.com/messages) — **Instagram** tab |
## Prerequisites
To connect, your Instagram account must be either:
- **Business** account, or
- **Creator** account
Personal accounts are not eligible — Instagram's Graph API blocks them. To convert, open the Instagram mobile app → **Settings → Account → Switch to Professional Account**.
## Plan requirements
Instagram is included on **GROWTH**, **ADVANCED**, and **ENTERPRISE** plans. On a trial account you have full access during the trial period — the feature locks after the trial ends unless your current plan has it enabled.
## How the comment-DM flow works
```
Someone comments on your reel
↓
Comment contains one of your trigger keywords?
↓ No → nothing happens (comment stays logged under Activity)
↓ Yes
Auto-send private DM to that commenter
Optionally post a public reply under their comment
Log everything to the Activity feed
```
Triggers fire in **seconds** — Meta pushes webhook events the moment the comment lands, and Splashify Pro processes them inline.
Continue with [**Connect Instagram**](/instagram/connect) to start setup.
========================================================================
## Automation Rules
URL: https://docs.splashifypro.com/instagram/automation-rules
========================================================================
# Automation Rules
Each rule is scoped to **one reel (or post)** and fires when someone comments on it with a matching keyword. You can have multiple rules on the same reel — e.g. one for `price`, another for `link`.
## Create your first rule
### 1. Open the Rules tab
On [/instagram-automation](https://app.splashifypro.com/instagram-automation), click the **Rules** tab. You'll see all rules with their media thumbnail, keyword, and trigger count.
### 2. Click "New Rule"
A side sheet opens with an empty form.
### 3. Pick a reel or post
You'll see a grid of your recent 25 posts/reels pulled live from Instagram. Click the one you want this rule to apply to. Click **Change** if you need to pick a different one.
### 4. Set the trigger keyword
The keyword is a **case-insensitive substring match** against the comment text.
**Examples:**
| Trigger keyword | Comments that match |
|-----------------|---------------------|
| `price` | "What's the price?", "PRICE??", "priced too high" |
| `link` | "Send link", "Linked in bio?" |
| `how much` | "how much is it", "How Much?", "howmuch" ❌ (no space) |
Pick something short and specific. Common pitfalls:
- **Too generic** — `hi` will fire on nearly every comment
- **Too specific** — `what is the price in dollars` will never match
### 5. Set the DM message
What gets sent as a private reply when the rule fires. Keep it under 1000 characters — Instagram truncates longer messages.
You can include links. Instagram renders clickable link previews in DMs.
### 6. (Optional) Set a public comment reply
The text posted as a **public reply under the comment** at the same time as the DM is sent.
Common pattern: `Check your DMs! 📬` — lets the commenter (and onlookers) know the DM was sent.
Leave blank if you only want a private DM with no public footprint.
### 7. Save
The rule goes live immediately. Comments that arrive from this moment onwards will be checked against it.
## How matching works
When Instagram pushes a comment event to Splashify Pro:
```
Comment text → lowercased → "contains" check against each active rule's keyword
```
- Multiple rules on the same reel are checked **in creation order**
- The **first matching active rule** fires; other rules for the same comment are skipped
- Comments with no match are still logged to the Activity feed (so you can see what's coming in)
## Managing rules
| Action | How |
|--------|-----|
| **Pause / activate** | Click the power icon on the rule row |
| **Edit keyword or messages** | Click the pencil icon |
| **Delete** | Click the trash icon — irreversible |
| **See firing count** | Each rule card shows "Triggered N×" |
## Common patterns
### Lead magnet — "send me the link"
```
Trigger: link
DM: Here you go 🎁 https://your-site.com/guide
Reply 'yes' if you want me to follow up with pricing!
Reply: Check your DMs 📬
```
### Price list on demand
```
Trigger: price
DM: Our starter pack is ₹2,000/mo, pro is ₹5,000/mo,
and enterprise is custom. Full breakdown:
https://your-site.com/pricing
Reply: DM'd you our pricing — check your inbox 💬
```
### Course waitlist signup
```
Trigger: join
DM: Welcome! To secure your spot, drop your email here
and I'll send the enrolment link within 24h.
Reply: (leave blank — keeps it more personal)
```
## Limits and quirks
- **One DM per matching comment** — we don't fire the same rule multiple times for the same comment ID
- **Deleted comments** — if the commenter deletes their comment after we send the DM, the DM stays; Instagram doesn't retract it
- **Carousel posts** — rules work on the carousel as a whole, not per slide
Continue to [**Instagram Inbox**](/instagram/inbox) to handle the DMs that land after automations fire.
========================================================================
## Connect Instagram
URL: https://docs.splashifypro.com/instagram/connect
========================================================================
# Connect Instagram
The connect flow takes about **30 seconds**. You do it once per Instagram account.
## Before you start
Check your Instagram account type in the mobile app → **Settings → Account**:
- ✅ **Business account** — works
- ✅ **Creator account** — works
- ❌ **Personal account** — Instagram Graph API does not allow apps to manage comments/DMs on personal accounts. Convert to Professional (Business or Creator) first. It's free and reversible.
## Step-by-step
### 1. Open the Instagram page
In the Splashify Pro sidebar, click **Instagram**. You'll land at [app.splashifypro.com/instagram-automation](https://app.splashifypro.com/instagram-automation).
If your plan doesn't include Instagram automation, you'll see an **Upgrade Plan** card here instead. Upgrade first, then return.
### 2. Click "Connect Instagram"
You'll be redirected to `instagram.com/oauth/authorize` — Instagram's own login page.
### 3. Sign in with Instagram
Log in with your Instagram Business/Creator credentials. If you're already logged into Instagram in this browser, it'll skip the password step.
### 4. Review and approve permissions
Instagram will ask you to grant Splashify Pro these permissions:
| Permission | Why Splashify Pro needs it |
|------------|---------------------------|
| `instagram_business_basic` | Read your profile and reels so you can pick which posts get automation rules |
| `instagram_business_manage_comments` | Receive comment events via webhook + post public replies |
| `instagram_business_manage_messages` | Send the private DM when a trigger keyword matches |
Tap **Allow**. Instagram redirects you back to Splashify Pro.
### 5. We finish the setup in the background
Behind the scenes, Splashify Pro:
- Swaps the authorization code for a **long-lived access token** (~60-day validity)
- Reads your profile for the username + profile picture
- **Subscribes our app** to Instagram webhook events for `comments` and `messages`
You'll see your account appear with a **Webhooks active** badge.
## After connecting
You're ready to [**create your first automation rule**](/instagram/automation-rules).
## Disconnecting
Click **Disconnect** on the connected-account card. Splashify Pro:
1. Unsubscribes from your Instagram webhooks (Meta stops sending events to us)
2. Deletes your stored access token
3. Removes every automation rule and activity log for this account
Your Instagram account itself is unaffected — this just severs our access.
## What gets stored
| Stored in Splashify Pro | Not stored |
|------------------------|------------|
| Your Instagram User ID + username + profile picture URL | Your Instagram password |
| Long-lived access token (AES-encrypted at rest) | Your DMs or comments in bulk — we only read the specific events Meta pushes |
| Automation rules you create (keywords, DM text, etc.) | |
## Token expiry
The long-lived token expires 60 days after issue. Splashify Pro will prompt you to reconnect when it's nearing expiry. Refreshing just takes one click.
========================================================================
## Instagram Inbox
URL: https://docs.splashifypro.com/instagram/inbox
========================================================================
# Instagram Inbox
Once you connect Instagram, every **DM** you receive lands in the same `/messages` page as WhatsApp and RCS — no context switching between apps.
## Finding the Instagram inbox
On [/messages](https://app.splashifypro.com/messages), a tab switcher appears at the top of the conversation list:
- **WhatsApp** (green)
- **RCS** (purple) — only when RCS is active
- **Instagram** (pink) — only when Instagram is connected
Click **Instagram** to see only DM conversations.
## What you can do
| Action | How |
|--------|-----|
| **Read incoming DMs** | They appear automatically as Instagram webhooks arrive |
| **Reply** | Type in the composer at the bottom, hit **Send** |
| **See commenter history** | DMs triggered by automation rules show the commenter's Instagram username |
| **Add a contact** | Normal contact panel works — tag, note, etc. |
## Composer states
The composer at the bottom of the chat thread has three states, based on **when the user last messaged you**. These are enforced by Instagram (not Splashify Pro) and govern what you can send.
### 0–24 hours — unrestricted (green banner)
```
✓ Free-reply window open • 23h 45m left
```
You can send **any** text freely. No tags required.
### 24 hours–7 days — Human Agent tag required (amber banner)
```
⚠ 24-hour window has passed. Your message will be sent with
the Human Agent tag (valid for 6d 5h more).
```
Instagram requires messages sent in this window to carry a `HUMAN_AGENT` tag, which Splashify Pro adds automatically. Your message still gets through. The tag is designed for human customer support — not promotions.
This requires Meta App Review approval for the **Human Agent** feature on your app (already submitted for Splashify Pro).
### More than 7 days — locked (red banner)
```
🔒 This user hasn't messaged you in over 7 days.
Instagram blocks new outbound DMs until they message you again.
```
The composer is disabled. Instagram doesn't allow **any** outbound DM to a user who hasn't interacted with your account in the last 7 days — not even with the Human Agent tag. You have to wait for them to message you again.
See [**Messaging Windows**](/instagram/messaging-windows) for the full policy reference.
## Comments vs DMs
A **comment** on one of your reels does **not** reset the 7-day messaging window. Only an actual **DM** from the user counts. But — when your automation rule fires and we send the private DM, Instagram treats the DM-from-comment as within the standard 24h window automatically (since it's tied to the comment).
## Attachments
Instagram currently supports `text`, `image`, `video`, `audio`, and `ig_reel` attachments in DMs. Inbound attachments render inline. Outbound attachments from Splashify Pro's composer are limited to text in the current release — we'll expand to media as Meta stabilises the API surface.
## Automation vs inbox
Both features share the same underlying connection:
- **Automation rules** send the *first* DM to a commenter (keyword trigger)
- **Inbox** is where your ongoing conversation with that commenter lives — either continuing the automation-started thread or a cold DM they sent
Replying in the inbox uses the same outbound pipeline, including the window policy.
========================================================================
## Messaging Windows
URL: https://docs.splashifypro.com/instagram/messaging-windows
========================================================================
# Messaging Windows
Instagram enforces strict rules about **when** you can send a DM to a user. These rules are Instagram's, not Splashify Pro's — we simply reflect them in the composer and enforce them server-side.
## The three windows
| Since user's last DM to you | What you can send | Banner colour |
|----------------------------|-------------------|---------------|
| **0–24 hours** | Any text or media, no tag | Green — "Free-reply window open" |
| **24 hours–7 days** | Text only, must carry `HUMAN_AGENT` tag | Amber — "Human Agent tag" |
| **More than 7 days** | Nothing. Wait for them to message again | Red — "Locked" |
## Why Instagram does this
Instagram's goal is to keep DMs a **conversational inbox**, not a marketing channel. Businesses can respond to user-initiated conversations freely for the first 24h, then progressively lock down to prevent cold outreach and spam.
## How Splashify Pro handles each window
### Inside 24h
Your message is sent with no extra metadata. Full creative freedom — attach media, use emoji, link to wherever you want.
### Between 24h and 7d
Splashify Pro automatically stamps the outbound message with:
```
messaging_type: MESSAGE_TAG
tag: HUMAN_AGENT
```
This tells Instagram the message is a legitimate human-agent follow-up (per Meta's [Human Agent policy](https://developers.facebook.com/docs/instagram-platform/humanagent/)). Valid use cases include:
- Following up on a support issue that takes more than 24h to resolve
- Responding after a weekend / holiday closure
- Sending information a customer specifically asked for
Prohibited in this window: promotions, marketing blasts, offer announcements. If you send something that looks promotional, Instagram may flag your account.
Requires the **Human Agent** feature to be approved on the Meta App. Splashify Pro has it submitted.
### After 7 days
Composer is disabled. Splashify Pro's backend also refuses any DM API call to this user — if your code (or another agent in your org) tries, Meta rejects it.
Your only path back: wait for the user to DM you.
## When the clock resets
A **new inbound DM** from the user resets `last_inbound_at` on their conversation. This flips the composer back to the green "Free-reply" state for the next 24h.
Comments on your reels **do not** reset the window — Instagram treats comments and DMs as separate surfaces.
## Automation rule DMs and the window
When your rule fires a DM in response to a comment, Splashify Pro treats that DM as being inside the 24h window automatically — the comment itself is the user's initial engagement signal. This is why comment-triggered auto-DMs always succeed regardless of whether the user has DM'd you before.
## What to show users in your UI
The composer banner above the input reflects the window state in real time. The countdown ticks down once a minute. You don't need to manage this yourself.
## API-level checks
If you're integrating via Splashify Pro's public API, you can query the current window status for a conversation:
```
GET /api/v1/app/instagram/messages/window?conversation_id=...
```
Response:
```json
{
"success": true,
"window": {
"state": "open",
"can_reply": true,
"needs_human_agent": false,
"seconds_remaining": 82500,
"last_inbound_at": "2026-04-24T03:15:22Z"
}
}
```
Use `can_reply` to decide whether to enable your send button. Use `needs_human_agent` to tell the user that their reply will carry the support tag.
========================================================================
## Troubleshooting
URL: https://docs.splashifypro.com/instagram/troubleshooting
========================================================================
# Troubleshooting
## "Your current plan doesn't include Instagram automation"
Your plan's Instagram flag is off. Either:
1. **Upgrade to a plan with Instagram** from [/plans/whatsapp](https://app.splashifypro.com/plans/whatsapp), or
2. If you're on a **free trial**, you should have full access — if the trial has expired, upgrading is required
3. If you recently upgraded and still see this message, **hard-refresh** the page (`Ctrl+Shift+R` / `Cmd+Shift+R`) — the app caches the plan state
## "No Instagram Business account found"
Your Instagram account is Personal. Instagram's API does not permit apps to manage comments or DMs on Personal accounts.
**Fix:** in the Instagram mobile app → **Settings → Account → Switch to Professional Account → Business** (or Creator). Takes about 10 seconds, free, reversible.
Then retry the Connect flow.
## Comment events aren't firing my rule
Check in this order:
**1. Is the rule Active?**
On the Rules tab, the rule row shows either an **Active** or **Paused** pill. Click the power icon to toggle.
**2. Does the keyword actually appear in the comment text?**
Matching is case-insensitive substring. `price` matches "Pricing?" and "PRICE" but NOT "priy" or "cost".
**3. Is the comment on the reel this rule is scoped to?**
Rules are **per-reel**. If you set up a rule on Reel A and the comment is on Reel B, it won't fire. Check the thumbnail on the rule row to confirm.
**4. Are webhooks subscribed?**
On the connected-account card, look for the **Webhooks active** badge. If it says **Webhooks pending**, the subscribe call failed during connect. Click **Disconnect**, then **Connect Instagram** again.
**5. Check the Activity tab.**
Every comment on any tracked reel gets logged — even ones that didn't match. If your comment doesn't appear in the Activity feed at all, the webhook isn't reaching us.
## "DM send failed" on a triggered comment
Common causes in order of likelihood:
- **Commenter deleted the comment** — the DM API needs a live comment ID to send a private reply
- **Commenter's account is private and hasn't messaged you** — Instagram may block DMs to strangers in this case
- **You hit Instagram's API rate limit** — ~200 calls/hour per Instagram account. Spacing rules out helps
Check the **Activity** tab — failed DMs show the exact Instagram error in red.
## Public reply not posting
Usually means Instagram flagged the reply as duplicate or too-quick. Instagram throttles "reply spam" aggressively. If multiple people comment the same trigger keyword within seconds, Instagram may reject the second and subsequent public replies. The DM will still succeed.
**Fix:** vary the reply text slightly per rule, or leave it blank for high-volume keywords.
## Connected Instagram account shows wrong username
The profile fetch runs during connect. If your Instagram username changed after connecting, click **Disconnect** and reconnect to refresh.
## Everything was working, then stopped
Check the connection card's **Token expires at** date. Instagram long-lived tokens live ~60 days. After expiry:
- Webhook events stop reaching Splashify Pro
- Sending DMs returns authentication errors
- Activity feed stops populating
**Fix:** click **Disconnect**, then **Connect Instagram** — the whole flow takes 30 seconds.
We'll add an auto-refresh path before you hit this, but manual reconnect always works.
## Still stuck?
Open a support ticket from [/support](https://app.splashifypro.com/support) and include:
- Your Instagram username
- The reel URL where the rule should have fired
- The trigger keyword
- A sample comment text that didn't fire
We can look up the activity log on our side and see exactly where it broke.
========================================================================
## Calling
URL: https://docs.splashifypro.com/calling
========================================================================
# Calling
Splashify Pro supports **WhatsApp Business Calling** — make and receive voice calls directly through the WhatsApp Business Platform, with full recording and billing support.
## Navigate to Calling
Click **Calling** in the left sidebar, or go to:
```
https://app.splashifypro.com/calling
```
## What You Can Do
| Feature | Description |
|---------|-------------|
| **Outbound calls** | Call customers directly from the Messages page |
| **Incoming calls** | Answer inbound WhatsApp calls in the browser |
| **Call recordings** | All calls recorded and stored automatically |
| **Call history** | View all past calls with duration and status |
| **Call permissions** | Request calling permission from contacts |
| **Analytics** | Call volume, duration, and cost analytics |
## How It Works
Splashify Pro uses **Meta's WhatsApp Business Calling API** and **WebRTC** to connect calls:
```
Your browser (WebRTC) ←→ Splashify Pro signaling ←→ Meta API ←→ Customer's WhatsApp
```
No phone hardware or SIM cards required. Calls work entirely through your web browser.
## Prerequisites
- WABA connected and phone number registered
- WhatsApp Calling enabled for your WABA (in Meta Business Settings)
- Call permission obtained from the contact (for the first call)
- Microphone permission granted in your browser
## Call Costs
WhatsApp calls are billed per minute. Costs are deducted from your wallet.
| Call Type | Rate |
|-----------|------|
| Outbound business-initiated | Per your plan rate |
Check your call analytics at **Calling → Analytics** for cost breakdown.
========================================================================
## Making Calls
URL: https://docs.splashifypro.com/calling/outbound-calls
========================================================================
# Making Calls
## Step 1: Open a Conversation
1. Go to **Messages**
2. Open the conversation with the contact you want to call
## Step 2: Initiate a Call
1. In the **Contact Details** panel on the right side
2. Click the **Phone icon (📞)** next to the contact's number
3. A call dialog opens
## Step 3: Confirm and Call
The call dialog shows a confirmation step:
- Displays your **business phone number** (the WABA number you're calling from)
- Shows a note about call permissions
Click **Start Call** to initiate.
## Call States
| State | Description |
|-------|-------------|
| **Connecting** | Establishing connection to Meta API |
| **Ringing** | Customer's phone is ringing |
| **Active** | Call is live — both parties connected |
| **Ended** | Call has concluded |
## During a Call
While a call is active, the call dialog shows:
| Control | Description |
|---------|-------------|
| **Mute** | Mute/unmute your microphone |
| **Speaker** | Toggle speakerphone |
| **End Call** | Hang up the call |
| **Duration timer** | Live call duration counter |
## After a Call
After hanging up, a **call summary** is shown with:
- Call duration
- Start and end time
The call is logged in the **Calling** page and the conversation's activity log.
## Browser Requirements
- Allow **microphone access** when the browser prompts
- Use **Chrome** or **Edge** for best WebRTC compatibility
- A stable internet connection is required (minimum 1 Mbps upload)
## Troubleshooting
| Issue | Fix |
|-------|-----|
| Call fails immediately | Check if calling permission exists for this contact |
| No audio | Check microphone permissions in browser settings |
| Call drops | Check internet connection stability |
| WABA error | Verify calling is enabled for your WABA in Meta |
========================================================================
## Call Permissions
URL: https://docs.splashifypro.com/calling/permissions
========================================================================
# Call Permissions
Before making a **business-initiated** WhatsApp call, the contact must have granted **calling permission**. This is a WhatsApp platform requirement to prevent spam calls.
## How Permissions Work
1. You send a **permission request message** to the contact
2. The contact taps the **"Allow Calls"** button in that message
3. Once granted, you can call them at any time
If you try to call without permission, the call will be rejected by Meta.
## Request Call Permission
### Via Interactive Message
1. Open a conversation in **Messages**
2. Click the **Call Permission** button in the message input area (or use the call dialog if the contact hasn't granted permission yet)
3. Select **Send Permission Request**
4. Choose the **permission request template** (pre-configured)
5. Send the message
The contact receives an interactive WhatsApp message with a button. When they tap it, permission is granted.
### Via Template Message
You can also send a template-based permission request during a broadcast or from the call management page.
## View Permission Status
Go to **Calling** and check the contact's permission status:
| Status | Meaning |
|--------|---------|
| **Granted** | Contact has allowed calls — you can call them |
| **Pending** | Permission request sent, awaiting response |
| **Denied** | Contact declined calling permission |
| **Not Requested** | No permission request sent yet |
## Call Permission Templates
Create and manage templates used for permission requests:
1. Go to **Calling**
2. Click **Call Templates**
3. Click **+ New Template**
4. Set the template type as **Permission Request**
5. Write the message (include a call-to-action button like "Allow Calls")
6. Submit for approval
> Permission request templates require Meta approval like all WhatsApp templates.
## Revoking Permission
Contacts can revoke permission at any time from their WhatsApp. If permission is revoked, subsequent call attempts will fail.
## Callback Requests
Contacts can also request a **callback** from your business:
1. Enable **Callback Permission** in **Settings → Calling**
2. Contacts can tap a button in your template message to request a callback
3. Callback requests appear in your **Calling** page for follow-up
========================================================================
## Call Recordings
URL: https://docs.splashifypro.com/calling/recordings
========================================================================
# Call Recordings
All WhatsApp Business calls through Splashify Pro are **automatically recorded** and stored in the cloud.
## Access Recordings
1. Go to **Calling**
2. Find the call in the call history table
3. Click the **Play** button in the Recording column to listen inline
4. Or click **Download** to download the audio file
## Call Detail Page
Click on any call row to open the full **Call Detail** page:
- Contact name and phone number
- Call direction (Inbound / Outbound)
- Start time, end time, and duration
- Call status (Completed, Missed, Failed)
- **Recording player** — play the audio directly in the browser
- **Upload Recording** — if a recording failed to attach, upload manually
## Call History Table
The calling list shows all calls with:
| Column | Description |
|--------|-------------|
| Contact | Name and phone number |
| Direction | Inbound or Outbound |
| Duration | Call length in minutes:seconds |
| Status | Completed / Missed / Failed |
| Date | When the call occurred |
| Recording | Play or download link |
## Storage
Recordings are stored in cloud object storage (DigitalOcean Spaces). Recordings are:
- Available immediately after the call ends
- Retained for the duration of your subscription
## Compliance Note
> **Important:** Inform your contacts that calls may be recorded for quality purposes. Recording laws vary by country — ensure you comply with local regulations.
## Filtering Calls
Use the filter options in the Calling page to narrow the list by:
- Date range
- Call status
- Contact name or phone
========================================================================
## Calling Settings
URL: https://docs.splashifypro.com/calling/settings
========================================================================
# Calling Settings
Configure calling behavior, operating hours, and templates.
Navigate to **Settings → Calling**.
## General Settings
| Setting | Description |
|---------|-------------|
| **Enable Calling** | Master toggle to enable/disable WhatsApp calling |
| **Show Call Button** | Show/hide the call icon in the Messages UI |
| **Allow Callback Requests** | Let contacts request a callback via button |
## Business Hours for Calls
Define when your team is available to take WhatsApp calls:
1. Toggle each day of the week
2. Set From/To time for each active day
3. Choose timezone
Calls outside business hours can be configured to:
- Play a voice message
- Send an auto-text reply
- Go unanswered
## Holiday Schedule
Add holidays when calling is unavailable:
1. Click **+ Add Holiday**
2. Select the date
3. Optionally add a holiday name
4. Save
## Call Templates
Manage templates used for call permission requests and callback messages:
1. Click **Call Templates** tab
2. Click **+ New Call Template**
3. Choose template type:
- **Permission Request** — Ask contact for calling permission
- **Call Button** — Interactive template to initiate a call link
Each template must be approved by Meta before use.
## Default Templates
Set which templates are used by default for:
- **Permission requests** — Sent when permission is needed before a call
- **Callback button** — Shown when contact can request a callback
To set a default:
1. Go to **Call Templates**
2. Click **Set as Default** on the template you want
========================================================================
## Templates
URL: https://docs.splashifypro.com/templates
========================================================================
# Templates
**Message Templates** are pre-approved messages required for initiating WhatsApp conversations outside the 24-hour window. All templates must be approved by Meta before use.
## Navigate to Templates
Click **Templates** in the left sidebar, or go to:
```
https://app.splashifypro.com/templates
```
## Template Types
| Type | Channel | Use |
|------|---------|-----|
| **Marketing** | WhatsApp | Promotions, offers, re-engagement |
| **Utility** | WhatsApp | Order updates, reminders, account alerts |
| **Authentication** | WhatsApp | OTP, verification codes |
| **RCS Templates** | RCS | Rich media campaigns |
## Template Status
| Status | Meaning |
|--------|---------|
| **Approved** ✅ | Ready to use in broadcasts and messages |
| **Pending** ⏳ | Submitted to Meta, awaiting review |
| **Rejected** ❌ | Meta declined — edit and resubmit |
| **Paused** ⚠️ | Temporarily paused by Meta due to quality issues |
## Sync Templates
If you have templates created directly in Meta Business Manager, sync them to Splashify Pro:
1. Go to **Templates**
2. Click **Sync Templates**
3. All your Meta-approved templates are imported
## Delete a Template
1. Find the template in the list
2. Click the **Delete** button
3. Confirm
> Deleting a template in Splashify Pro also deletes it from Meta. This is irreversible.
========================================================================
## Create a Template
URL: https://docs.splashifypro.com/templates/create-template
========================================================================
# Create a WhatsApp Template
## Step 1: Open Template Creator
1. Go to **Templates**
2. Click **+ Create Template**
## Step 2: Template Basics
| Field | Description |
|-------|-------------|
| **Template Name** | Lowercase letters, numbers, underscores only (e.g. `order_update_v1`) |
| **Category** | Marketing / Utility / Authentication |
| **Language** | Select the language(s) for this template |
## Step 3: Header (Optional)
Add a header above the body text:
| Header Type | Description |
|-------------|-------------|
| **Text** | Bold header text |
| **Image** | Image displayed at top |
| **Video** | Short video |
| **Document** | PDF or file attachment |
| **Location** | Static map location |
## Step 4: Body Text
The main message content. Use variables for personalization:
```
Hello {{1}}, your order {{2}} has been shipped and will arrive by {{3}}.
```
Variables are numbered `{{1}}`, `{{2}}`, etc. You'll map these to contact fields when sending.
**Body text limits:**
- Maximum **1024 characters**
- Supports `*bold*`, `_italic_`, `~strikethrough~`, `` `monospace` `` formatting
## Step 5: Footer (Optional)
Optional small grey text below the body. Commonly used for:
- Opt-out instructions
- Legal disclaimers
## Step 6: Buttons (Optional)
Add interactive buttons. Up to **10 buttons** per template.
### Button Types
| Type | Description |
|------|-------------|
| **Quick Reply** | Pre-set reply button — sends a text back |
| **Call to Action: URL** | Opens a website URL |
| **Call to Action: Phone** | Initiates a phone call |
| **Call to Action: Copy Code** | Copies a coupon/promo code |
## Step 7: AI Generation (Optional)
Don't know what to write? Use **Maya AI Generate** to create a complete template in seconds.
### How it works
1. Expand the **Maya AI** panel (Sparkles icon) in the form
2. Type a short description of what the template should do
3. Pick a **Style** — Normal, Poetic, Exciting, or Funny
4. Pick what to **Optimise for** — Click Rate (strong CTAs) or Reply Rate (ends with a question)
5. Click **Generate (₹2 per generation)**
6. Review the generated **Header**, **Body**, and **Buttons**
7. Click **Use This Template** to apply all three fields at once, or **Regenerate (₹2)** to try again
### What gets generated
| Field | What the AI produces |
|-------|----------------------|
| **Header** | Short punchy text (max 60 chars); may include `{{1}}` for a dynamic value |
| **Body** | Full message body starting with `Hi {{1}},`; uses `{{2}}`, `{{3}}` etc. for dynamic values |
| **Buttons** | 1–3 quick-reply button labels matching the call-to-action |
### Cost
Each generation deducts **₹2** from your **Wallet** (same wallet as WhatsApp messaging).
The deduction happens only after the AI successfully returns a result — a failed call costs nothing.
### Previous Prompts
Click **↶ Previous prompts** (next to the prompt input) to open a history of your last 20 AI-generated templates.
Each entry shows:
- The prompt you wrote
- The generated header, body, and buttons
- A **Use this template** button to instantly apply it to the form and set the prompt for further editing
This lets you quickly reuse a previous generation without paying for a new one.
### Variables
If the AI uses variables like `{{1}}` or `{{2}}` in the header or body, you will see them listed
in the **Sample Values** section below the body. Fill these in before submitting so Meta can
review the template with realistic content.
## Step 8: Preview and Submit
- Use the live **Preview** panel on the right to see how the message will look on a phone
- Click **Submit for Approval**
Meta reviews templates within **24–48 hours**. You'll receive an email when the status changes.
## Tips for Approval
| Do | Don't |
|----|-------|
| Use clear, business-relevant content | Include promotional language in Utility templates |
| Match category to content | Use vague placeholders like `{{1}}` without context |
| Keep body concise | Add unsolicited advertising |
| One clear CTA | Add misleading buttons |
========================================================================
## RCS Templates
URL: https://docs.splashifypro.com/templates/rcs-templates
========================================================================
# RCS Templates
**RCS Templates** are structured message formats used for RCS Broadcasts. Unlike WhatsApp, RCS templates support rich visuals — images, carousels, and action buttons.
## Navigate to RCS Templates
1. Go to **Templates**
2. Click **RCS Templates** tab
Or navigate to:
```
https://app.splashifypro.com/templates/rcs
```
## Create an RCS Template
1. Click **+ Create RCS Template**
2. Fill in the template details:
### Template Settings
| Field | Description |
|-------|-------------|
| **Name** | Internal name for the template |
| **Message Type** | Text / Image / Card / Carousel |
| **Content** | Message body (type-dependent) |
### RCS Message Types
**Text**
Simple plain text message.
**Image**
Image with optional caption.
```
- Image URL (direct link)
- Caption text (optional)
```
**Card**
Rich card with image, title, description, and buttons.
```
- Image URL
- Title
- Description
- Buttons (up to 4)
```
**Carousel**
Multiple cards in a horizontally swipeable view.
```
- Up to 10 cards
- Each card: image, title, description, buttons
```
### Button Types (RCS)
| Type | Description |
|------|-------------|
| **Reply** | Quick reply — sends a predefined text |
| **URL** | Opens a web URL |
| **Dial** | Dials a phone number |
| **Location** | Opens maps to a location |
## Template Review
RCS templates go through a review process:
1. **AI Review** — Automatic content check
2. **Admin Review** — Manual approval by Splashify Pro team
3. **Approved** — Ready to use in RCS broadcasts
| Status | Meaning |
|--------|---------|
| **Pending** | Under review |
| **Approved** ✅ | Ready to use |
| **Rejected** ❌ | Needs revision — review feedback |
## Resubmit a Rejected Template
1. Open the rejected template
2. Click **Edit**
3. Make the required changes (review the rejection reason)
4. Click **Resubmit**
========================================================================
## Email Marketing — Overview
URL: https://docs.splashifypro.com/email
========================================================================
# Email Marketing
Send branded email — marketing campaigns, transactional sends, password resets, order confirmations — from your own domain. Recipients see `dkim=pass` against your brand instead of ours.
## What you can do
- **Authenticate your sender domain** — publish 3 DNS records once; we sign every send with your domain
- **Build templates with the visual editor** — drag-in blocks (heading, image, button, footer), live preview, save once and reuse forever
- **Send campaigns** — pick a template, pick an audience (segments + contacts), schedule or send now, watch open + click rates roll in live
- **Transactional API** — `POST /public/email/send` from your backend for one-to-one sends (OTP, receipts, password resets)
- **Built-in compliance** — RFC 8058 one-click unsubscribe header on every send, suppression list enforced at send-time, hard-bounce auto-remove
## Pricing
- **First 100 emails per UTC day are free** — counter shared across marketing + transactional + public API
- Beyond that:
- **Marketing emails**: ₹0.10 / email + reseller markup (if any)
- **Transactional emails**: ₹0.05 / email + reseller markup (if any)
- Charges show in [Settings → Track Expenses](https://app.splashifypro.com/settings/track-expenses) as `email_marketing` and `email_transactional` line items, alongside your WhatsApp / RCS deductions
## Plan-gated
Email Marketing requires a plan with the **Email Marketing** feature enabled.
- **Trial users** get full access during the trial window
- **Paid users** need their plan's Email Marketing flag enabled (admin sets this on the plan)
If you see "Email Marketing requires an active plan" when opening `/email`, ask the platform admin to enable the flag on your plan.
## How to start
1. **[Connect your sender domain](./sender-domain.mdx)** — publish 3 DNS records on the domain you want to send from. Takes 5 min to publish, < 15 min to verify.
2. **[Build a template](./templates.mdx)** — open the visual editor, add blocks, save.
3. **[Send a campaign](./campaigns.mdx)** — pick template + audience, click Send.
Or if you want to send transactional email from your backend, jump to the **[Send Email API](https://docs.splashifypro.com/public-api/send-email)** reference.
## Architecture
Every email goes through the same pipeline regardless of source:
```
Your action (campaign / API / template send)
↓
We pre-render the template HTML (react-email cross-client output)
↓
We sign with your domain's DKIM key
↓
We deliver direct to recipient's MX server (STARTTLS, no third-party SMTP relay)
↓
Recipient sees: From test
` tag of every page you want the widget on: ```html
...