# AGENTS Source: https://clapvo.com/docs/AGENTS > **First-time setup**: Customize this file for your project. Prompt the user to customize this file for their project. > For Mintlify product knowledge (components, configuration, writing standards), > install the Mintlify skill: `npx skills add https://mintlify.com/docs` # Documentation project instructions ## About this project * This is a documentation site built on [Mintlify](https://mintlify.com) * Pages are MDX files with YAML frontmatter * Configuration lives in `docs.json` * Run `mint dev` to preview locally * Run `mint broken-links` to check links ## Terminology ## Style preferences * Use active voice and second person ("you") * Keep sentences concise — one idea per sentence * Use sentence case for headings * Bold for UI elements: Click **Settings** * Code formatting for file names, commands, paths, and code references ## Content boundaries # Authentication Source: https://clapvo.com/docs/api-reference/authentication Generate an API token and authenticate your requests with the x-api-key header. Every Clapvo API request must be authenticated with a **personal access token**, passed in the `x-api-key` header. You generate and manage these tokens from the **Developer** section of Clapvo. ```bash theme={null} x-api-key: ``` ## Generate an API token Personal access tokens function like ordinary access tokens — they authenticate your scripts and integrations to the Clapvo API. In the left sidebar, under **Manage**, click **Developer**, then open the **API Tokens** tab. If you haven't created one yet, you'll see an empty state. Empty API Tokens tab in the Developer section Select **Generate new token** in the top right to open the **Create API Token** form. Enter an **API Key Name** that describes where the token will be used (for example, `Order notifications` or `CRM integration`). This helps you identify the token later. Choose an **Expiration** for the token. Pick a shorter window for temporary use, or a longer one for a permanent integration. Under **Events**, choose what this token is allowed to do. For sending messages, check **Messaging → Send Message**. A token can only trigger the events you select here. Create API Token form with the Send Message event selected Click **Generate API Key**. The new token appears in your **API Tokens** list. ## Copy and store your token In the **API Tokens** list, each token is masked by default. Use the **eye** icon to reveal it and the **copy** icon to copy it to your clipboard. API Tokens list showing a generated token Treat your token like a password. Copy it as soon as it's created and store it somewhere secure. Never expose it in client-side code, public repositories, or shared links. If a token is leaked, delete it from the list and generate a new one. ## Use the token in a request Pass the token in the `x-api-key` header on every request: ```bash theme={null} curl --request POST \ --url https://api.clapvo.com/chat/api/v1/public/message/send \ --header 'x-api-key: ' \ --header 'Content-Type: application/json' \ --data '{ "from": "918495632548", "message": { "type": "message", "message": "ok public" }, "to": "918965742135" }' ``` Requests sent without a valid token, or with a token that lacks the required event, are rejected. ## Next steps * [Send a message](/docs/api-reference/messages/send-a-message) — try the endpoint live with your token. # Introduction Source: https://clapvo.com/docs/api-reference/introduction Send WhatsApp messages programmatically with the Clapvo API. The Clapvo API lets you send WhatsApp messages from your connected numbers directly from your own systems — no agent or dashboard needed. This reference covers everything you need to make your first request. ## Base URL All API requests are made to: ``` https://api.clapvo.com ``` ## Authentication Every request must include your API token in the `x-api-key` header. Requests without a valid token are rejected. ```bash theme={null} x-api-key: ``` You generate tokens from the **Developer** section in Clapvo. See [Authentication](/docs/api-reference/authentication) for step-by-step instructions on creating and managing your API token. Keep your API token secret. Treat it like a password — never expose it in client-side code or public repositories. ## Phone number format Both `from` and `to` use international format with the country code and **no** leading `+`, spaces, or dashes. | Number | Format | | --------------- | -------------- | | +91 84956 32548 | `918495632548` | The `from` number must be a WhatsApp number connected to your Clapvo account. See [Add a connection](/docs/product/connections/add-connection) to connect a number. ## Message types A single endpoint, [Send a message](/docs/api-reference/messages/send-a-message), handles every message type. Set `message.type` to choose what you send: | Type | `type` value | Notes | | -------- | ------------ | ---------------------------------- | | Text | `message` | Put your text in `message.message` | | Image | `image` | Include a `media` object | | Document | `document` | Include a `media` object | | Video | `video` | Include a `media` object | | Audio | `audio` | Include a `media` object | For media messages, `caption` is optional; all other fields are required. Ready to dive in? Head to the [Send a message](/docs/api-reference/messages/send-a-message) endpoint to try it live. ## Status codes Each response returns a standard HTTP status code so you can tell what happened at a glance. | Code | Status | Description | | ----- | -------------------- | ----------------------------------------------------- | | `200` | Success | Message queued for delivery | | `400` | Bad Request | Invalid or missing required parameters | | `401` | Unauthorized | Invalid or expired API token | | `403` | Access denied | The token lacks permission for this action | | `404` | Connection not found | The `from` number is not a connection on your account | # Send a message Source: https://clapvo.com/docs/api-reference/messages/send-a-message api-reference/openapi.json POST /chat/api/v1/public/message/send Send a WhatsApp message from one of your connected numbers to a recipient. This single endpoint sends every message type — text, image, document, video, and audio. The `message.type` field decides which one is sent. Text messages use `message.message` for the text; media messages add a `message.media` object instead. Use the **Examples** dropdown in the request panel to switch between message types. On success the message is queued for delivery and the response returns `state: "PUBLISHED"`. ## Status codes Each response returns a standard HTTP status code so you can tell what happened at a glance. | Code | Status | Description | | ----- | -------------------- | ----------------------------------------------------- | | `200` | Success | Message queued for delivery | | `400` | Bad Request | Invalid or missing required parameters | | `401` | Unauthorized | Invalid or expired API token | | `403` | Access denied | The token lacks permission for this action | | `404` | Connection not found | The `from` number is not a connection on your account | # Chat Assigned webhook Source: https://clapvo.com/docs/api-reference/webhooks/chat-assigned Receive a real-time callback whenever a chat is assigned. The **Chat Assigned** webhook notifies your systems the moment a chat is assigned to a user, so you can react in real time — route work, update a CRM, or trigger a follow-up. ## How it works When a chat is assigned in Clapvo, we send an HTTP `POST` request to the endpoint URL you configure. Your endpoint should respond quickly with a `2xx` status code to acknowledge receipt. ## Configure the webhook Go to the **Developer** section in Clapvo, where you manage API tokens and webhooks. Enter the HTTPS URL where Clapvo should send the event. Select the **Chat Assigned** event. Clapvo starts delivering the event to your endpoint. ## Verify and respond * Your endpoint must be reachable over HTTPS. * Return a `2xx` status code to acknowledge the event. * If your endpoint returns an error or times out, delivery is considered failed. Treat the endpoint URL as sensitive. Only accept webhook traffic on an endpoint you control. ## Related * [Authentication](/docs/api-reference/authentication) * [Assign a kanban stage](/docs/product/chats/assign-stage) # Changelog Source: https://clapvo.com/docs/changelog Latest updates, new features, and improvements to Clapvo. ## Live Chat Support You can now reach the Clapvo team directly through Live Chat Support — no contact form, just a conversation when you need help. ## Text formatting in chat Bold, italic, and strikethrough are now available right in the chat message input. Select your text, pick a style, and send — no need to type WhatsApp's formatting characters by hand. ## Improvements * **Contact import** — stricter validation and a smoother import flow. * **ZIP file support** — send and receive ZIP files directly in the Chat module. * **Table UI** — fixed content truncation issues across the application. * **Collapsed sidebar** — improved UI, including Live Chat. * Fixed multiple language and localization issues. ## Performance & infrastructure * Added a Lost Internet page, so you know right away when your connection drops instead of guessing. * Improved the chat implementation, for steadier real-time messaging. ## Bug fixes * Fixed Tag and Kanban action issues in Message Bot, Campaigns, and Quick Replies. * Fixed billing issues. ## Push notifications for new messages Get a push notification for every incoming message, so you never miss a customer reply while you're away from the inbox. Prefer to keep things quiet? Turn notifications on or off any time from **Organization → My profile**. See [Manage notifications](/docs/getting-started/profile/notifications). ## Download media from chats Save any image, video, PDF, or document a customer sends straight to your device. A download option now appears on media messages in the chat thread. See [Download media from a chat](/docs/product/chats/download-media). ## Chat Assigned webhook Automate what happens when a chat is assigned. Clapvo now sends a webhook for the **Chat Assigned** event, so your own systems can react in real time — route work, update a CRM, or trigger a follow-up. See [Chat Assigned webhook](/docs/api-reference/webhooks/chat-assigned). ## Improvements * **Stricter contact import validation** — invalid country codes and mobile numbers are now caught before import, so bad rows can't slip into your contacts. See [Bulk import](/docs/product/contacts/bulk-import). * **Friendlier signup and user management** — relaxed the rules for First name, Last name, and Password so valid entries are no longer rejected unnecessarily. ## Bug fixes * Fixed an issue where typing a URL in the message input box behaved incorrectly. * Additional improvements and fixes across modules marked Completed in the internal tracking sheet. ## Android app v1.0.1 We gave the Android app a big polish, so chats feel faster, smoother, and more reliable. [Update on Google Play →](https://play.google.com/store/apps/details?id=com.clapvo.android) Here's what you'll notice: ## Smoother messaging Photos, videos, voice notes, and documents now send cleanly and show the right status every time — no more messages that look stuck. Captions and any text you add with an attachment go through as expected, and links in chats are tappable again. ## Better attachments Sharing files is more dependable, and you'll get a friendly heads-up if an image is too large — instead of it quietly failing. ## Easier to navigate Chats keep your place when you go back, scrolling works right after you add an attachment, and long messages open fully. Snoozed chats now show when they'll come back. ## Cleaner organizing Filters, tags, and chat assignments behave the way you expect — your selections stick, and **Assigned to me** shows only your chats. ## Faster & more reliable New messages arrive in real time, notes save without a hitch, your default organization always shows up, and campaigns load correctly with clear screens when there's nothing to show yet. ## Schedule messages Compose a message now and have it sent later. Pick a date and time from the chat input, and Clapvo delivers the message automatically when the schedule arrives. ## Send messages via API Send WhatsApp messages programmatically using an API key — no manual steps required. The Send Message API supports: * Text messages * Images * Videos * Documents and PDFs * Audio files Every incoming API request is logged, so you can track and troubleshoot your integration. See the [API Reference](/docs/api-reference/introduction) for endpoints and examples. ## Stay connected through updates You no longer need to reconnect your devices after every release. Connected WhatsApp numbers now carry over automatically, so new updates and changes apply without re-scanning the QR code. ## Disconnection alerts by email When a WhatsApp number disconnects automatically, the organization owner now receives an email notification — backed by more reliable detection of when a connection drops. ## Improvements * Refreshed fonts and typography across the entire application for a cleaner, more consistent look. ## Bug fixes * Fixed PDF, Excel, and CSV exports across all modules — date/time, status, and similar values now export correctly. * Resolved recurring subscription issues in the billing module. * Fixed multiple issues in the Message Bot module. * Fixed a sync count issue where the attempt count incorrectly restarted from 0 when additional chats were discovered during synchronization. ## Message Bot Build automated message flows that handle common customer questions without tying up an agent. Set up keyword triggers, response sequences, and execution rules — including whether the bot runs on 1:1 chats or groups — from the Message Bot section in the main menu. ## Reactions in live chat React to any message using the quick-pick bar of most-used emoji, or browse the full emoji grid with "+". Reactions sync to WhatsApp in real time so the customer sees exactly what you send. ## Edit sent messages Spot a typo after hitting send? Edit the message in place — works on text messages and captions on images or videos, with a live bubble preview before you confirm. The updated message shows an "Edited" label in the thread. ## WhatsApp-style message formatting Bold, italic, strikethrough, and monospace now work directly in the Clapvo chat input. What you type is exactly what the customer receives on WhatsApp. ## Stickers & Camera Pick a sticker from the attachment menu and send it straight into the conversation. Need a photo? Capture it from your device camera without leaving the chat. ## Delete and clear conversation Delete a single message or wipe an entire conversation — with role-level controls over who can do it. Configure permissions under Settings → Roles. ## Paste & drag-and-drop images Copy an image and paste it directly into the chat, or drag a file from your desktop and drop it in. Preview before you send, just like you would on WhatsApp. ## Mask number Hide customer phone numbers from agents who don't need to see them. Turn masking on per-user from Account → Users — check "Hide contact details" for each agent who shouldn't see the number. ## Bug fixes * Resolved chat bubble alignment and spacing inconsistencies across different message types. * Blocking or unblocking a contact in Clapvo now syncs to WhatsApp in real time, and vice versa. ## Help Center launched The Clapvo Help Center is now live at [clapvo.com/docs](https://clapvo.com/docs). It covers getting started, all product modules, troubleshooting, and support — searchable from anywhere in the docs. ## Broadcast campaigns — randomize sender & message Two new campaign options let you spread outgoing messages across multiple WhatsApp numbers (randomize sender) and rotate between message variants (randomize message). Both reduce the risk of delivery throttling on high-volume sends. ## Kanban board — configure stages Teams can now create, rename, and remove kanban stages directly from Settings → Chat → Kanban. Changes update live across all members of the organization. ## Bulk contact import Import contacts in bulk via CSV from the Contacts page. The importer validates phone numbers, deduplicates against existing contacts, and shows a detailed import history log so you can track every batch. ## Role rights Admins can now build custom roles with granular permissions — controlling exactly what each team member can view, edit, or manage across Clapvo. Configure permissions per-role from Account → Roles. ## Resync chat — new options More control over what gets synced and when, at every stage. **Upgrading from trial to paid** When you upgrade, choose how to handle existing chat history: * **Sync new chats only** — start with a clean inbox; no historical messages are imported. * **Keep old records, sync new only** — existing chat records are preserved and only new incoming chats are synced going forward. **New connection setup** Connecting a new WhatsApp number? Pick your starting point: * Connect without syncing old chats — go live instantly with an empty inbox. * Sync all previous chats — pull your full WhatsApp history into Clapvo. ## Send emoji in chat Open the emoji picker from the chat input and add emoji to any message. No copy-paste from a separate app needed. ## Campaigns — message sequencing Campaigns now support multi-message sequences. Schedule a series of messages to send to the same audience at defined intervals — useful for onboarding flows, follow-ups, and drip announcements. ## Campaign history & reports A new reports view is available on every completed campaign. It shows per-contact delivery status — sent, pending, or failed — and can be downloaded as Excel, CSV, or plain text. ## Quick replies — funnel reply type In addition to single-message quick replies, you can now build funnel replies — chain multiple messages into a sequence, each sent with a configurable delay after the previous one, triggered by a keyword. ## WhatsApp connection alerts The connections page now shows the live status of each WhatsApp number — connected, disconnected, or failed — so agents know immediately when a number goes offline. ## Chat snooze Snooze any chat for 30 minutes, 1 hour, 3 hours, 24 hours, or 48 hours. Snoozed chats reappear in the inbox automatically when the timer expires. ## Stage assignment in chats Assign a pipeline stage (e.g. New, Contacted, Qualified, Closed) to any chat directly from the conversation view — no need to go to the Kanban board. ## Improvements * Chat search now matches on contact name and phone number, not just message content. * Template preview now shows button labels and media thumbnails before submitting for approval. * Mobile inbox scroll position is preserved when navigating between chats and returning. ## Bug fixes * Fixed an issue where campaign audience counts were not refreshing after a filter change. * Resolved a rare case where QR code re-scanning timed out without displaying an error. # Understand cancellation states Source: https://clapvo.com/docs/getting-started/billing/cancellation-states What cancelled and cancelled-soon mean for your access. Clapvo distinguishes between two cancellation states. The layout shows a banner so admins always know where they stand. ## Cancelled-soon * Your subscription will end at the close of the current billing period. * You retain full access until then. * You can resume the subscription before the period ends. ## Cancelled * The subscription has ended. * Access is restricted, depending on your plan terms. * To continue using Clapvo, start a new subscription. ## Steps to manage Navigate to the billing area. Choose the option available for your current state. ## Related * [View subscription](/docs/getting-started/billing/view-subscription) * [Recover from a failed payment](/docs/getting-started/billing/payment-failed) # Billing & plans Source: https://clapvo.com/docs/getting-started/billing/index Plans, add-ons, invoices, and payment recovery. Clapvo offers three plans. All plans include the shared team inbox, reusable templates, scheduled and bulk campaigns, contact management, and role and permission controls. ## Plans | Plan | Price | Included | | -------------- | ----------------- | --------------------------------------------------------------- | | **Basic** | $15/mo or $150/yr | 1 WhatsApp connection, 5 team members | | **Premium** | \$25/mo | Higher limits than Basic | | **Enterprise** | Custom | Custom limits, webhooks, dedicated onboarding, priority support | Annual billing on the Basic plan saves \$30 per year compared to monthly. ## Add-ons (each \$15/mo) * **Multiple connections** - additional WhatsApp numbers * **Add users** - more team members beyond the included count * **10K messages** - extra outbound message capacity For larger custom needs (high volume, custom integrations), Enterprise is the path - reach out via [contact support](/docs/support/contact-support). ## Free trial 7 days free. No credit card required to start. ## Manage your plan See your current plan and usage. Review add-ons attached to your plan. Find and download invoices. Recover when a charge fails. Understand cancelled and cancelled-soon. # Access invoices Source: https://clapvo.com/docs/getting-started/billing/invoices Find and download your Clapvo invoices. Each charge produces an invoice you can review or hand to your finance team. ## Before you start * Admin permission for billing ## Steps Navigate to the billing area. See past charges. Click an invoice to view details or download the PDF. ## Tips * Invoices include the billing period and any add-ons applied. * Forward downloads directly to your finance team - the format is a standard PDF. ## Related * [View subscription](/docs/getting-started/billing/view-subscription) # Recover from a failed payment Source: https://clapvo.com/docs/getting-started/billing/payment-failed What to do when a charge fails so your service stays active. If a charge fails, Clapvo shows a banner across the layout. Resolve it quickly to keep service active. ## Before you start * Admin permission for billing * An updated payment method ready ## Steps Navigate to the billing area. Find the saved card. Replace the failing card with a working one. Use the retry action on the billing screen. ## Tips * The most common cause is an expired card. * Make sure your bank is not blocking foreign-currency charges if your card and currency differ. ## Related * [View subscription](/docs/getting-started/billing/view-subscription) * [Cancellation states](/docs/getting-started/billing/cancellation-states) # View add-ons Source: https://clapvo.com/docs/getting-started/billing/view-add-ons Review add-ons attached to your subscription. Add-ons extend your plan with extra capacity. Each add-on is \$15/month. ## Available add-ons * **Multiple connections** - additional WhatsApp numbers beyond the one included in your plan * **Add users** - more team members beyond the included count * **10K messages** - extra outbound message capacity For larger custom needs (high volume, custom integrations), the Enterprise plan covers them - reach out via [contact support](/docs/support/contact-support). ## Before you start * Admin permission for billing ## Steps Navigate to the billing area. See the list. Each add-on shows its name and current status. ## Related * [View subscription](/docs/getting-started/billing/view-subscription) * [Plans overview](/docs/getting-started/billing) # View your subscription Source: https://clapvo.com/docs/getting-started/billing/view-subscription See your current Clapvo plan, what is included, and how usage tracks against it. The subscription tab is the source of truth for your plan and usage. ## Before you start * Admin permission for billing ## Steps Navigate to the billing area. View plan details. Plan name, connection count, included users, renewal date, and active add-ons. ## What you will see * **Plan name** - Basic, Premium, or Enterprise. * **Connections active** - the number of paired WhatsApp numbers. * **Included users** - team members covered under the plan. * **Renewal cadence** - monthly or annual. * **Active add-ons** - any extra connections, users, or message capacity attached to your plan. ## Related * [Add-ons](/docs/getting-started/billing/view-add-ons) * [Invoices](/docs/getting-started/billing/invoices) # Connect WhatsApp Source: https://clapvo.com/docs/getting-started/connect-whatsapp Pair your WhatsApp number to your organization using the QR code flow. Add Connection Pair a WhatsApp number to your organization by scanning a QR code from your phone. Once paired, your number powers the shared inbox and outbound campaigns. ## Before you start * An organization (see [Create an organization](/docs/getting-started/organization/create-organization)) * The phone holding the WhatsApp number you want to connect, with internet access * WhatsApp open on the phone