> ## Documentation Index
> Fetch the complete documentation index at: https://www.bolna.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# AiSensy WhatsApp Integration

> Connect your AiSensy account to a Bolna workflow so any step can send an approved WhatsApp template, then create and test a campaign in AiSensy if you need one.

<Note>
  Connect your AiSensy account to Bolna once, then send approved WhatsApp templates from any step of a workflow — no separate WhatsApp setup, no code.
</Note>

## What is AiSensy?

AiSensy is a WhatsApp Business API platform. It sits between your business and Meta's official WhatsApp Business API — handling business verification, the approved sender number, template management, and message delivery, so you don't have to build against Meta's API yourself.

The pieces of AiSensy that matter for this integration:

* **Project** — your AiSensy workspace. Each project has its own WhatsApp Business number and its own API key.
* **Template** — a pre-written message format that Meta reviews and approves. On WhatsApp, business-initiated messages *must* use an approved template.
* **Campaign** — a launched instance of a template. This is what you actually select inside Bolna.

## How AiSensy is integrated into Bolna

AiSensy is integrated directly into Bolna [workflows](/docs/workflows/introduction). You paste your AiSensy **project API key** and **project ID** into Bolna once for authentication, and Bolna pulls in the list of WhatsApp campaigns running under that project. You pick a campaign, drop it into a workflow as an [`aisensy_whatsapp` node](/docs/workflows/nodes#aisensy_whatsapp), and Bolna sends that template on your behalf when the workflow reaches that step.

That means a single workflow can mix voice and WhatsApp — for example, calling a lead, extracting how the conversation went, branching on the result, and following up hot leads on WhatsApp while the cold ones just end.

<Frame caption="A workflow branching to an AiSensy WhatsApp node before ending">
  <img src="https://mintcdn.com/bolna-54a2d4fe/8ZNSF6wl5JAecV3m/images/workflows/aisensy/workflow_with_aisensy_node.png?fit=max&auto=format&n=8ZNSF6wl5JAecV3m&q=85&s=d0a0085d4e94fd5886c7eeb9d3663dc7" alt="Workflow canvas with Start, Agent, Extraction and Condition nodes branching to an AiSensy WhatsApp node and two End nodes" width="1538" height="490" data-path="images/workflows/aisensy/workflow_with_aisensy_node.png" />
</Frame>

## Before you start

| You need                                                    | Where it comes from                                                                                                         |
| ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| An AiSensy account with an active project                   | [aisensy.com](https://www.aisensy.com)                                                                                      |
| A WhatsApp Business number connected to that project        | Set up during AiSensy onboarding                                                                                            |
| At least one Meta-approved template, launched as a campaign | See [Create a campaign in AiSensy](#dont-have-a-campaign-yet-create-one-in-aisensy) below — you can create one from scratch |
| A Bolna workflow (a draft is fine)                          | Bolna dashboard → Workflows                                                                                                 |

## How to send a WhatsApp message in a Bolna workflow

<Steps>
  <Step title="Authenticate with your AiSensy project API key">
    1. In AiSensy, open the project you want to send from.
    2. Go to **Developer** → **Project API Keys**.

    <Frame caption="Project API Keys tab in the AiSensy Developer Hub">
      <img src="https://mintcdn.com/bolna-54a2d4fe/8ZNSF6wl5JAecV3m/images/workflows/aisensy/aisensy_developer_hub_project_api_keys.png?fit=max&auto=format&n=8ZNSF6wl5JAecV3m&q=85&s=59a9a08f735c73eb0b8e280ba0a458af" alt="AiSensy Developer Hub showing the Project API Keys tab with a generated key named test-workflow" width="2916" height="1516" data-path="images/workflows/aisensy/aisensy_developer_hub_project_api_keys.png" />
    </Frame>

    3. Copy the **project API key**.
    4. In Bolna, open your workflow, add the **AiSensy WhatsApp** node, and paste the key and project ID, then click **Link AiSensy account**.

    <Frame caption="Linking an AiSensy account from the AiSensy WhatsApp node">
      <img src="https://mintcdn.com/bolna-54a2d4fe/8ZNSF6wl5JAecV3m/images/workflows/aisensy/link_aisensy_account.png?fit=max&auto=format&n=8ZNSF6wl5JAecV3m&q=85&s=40c54451344c1faa455d5c4523f30e4a" alt="AiSensy WhatsApp node inspector with fields for AiSensy API key and Project ID, and a Link AiSensy account button" width="860" height="1084" data-path="images/workflows/aisensy/link_aisensy_account.png" />
    </Frame>

    <Tip>
      The API key is scoped to one AiSensy project. If you run multiple projects (different numbers or brands), use the key for the project whose number should appear as the sender.
    </Tip>
  </Step>

  <Step title="Select your campaign and send a test message">
    Once the key is accepted, Bolna fetches every campaign running under that project and shows them as a list.

    <Frame caption="Selecting an AiSensy campaign in the node inspector">
      <img src="https://mintcdn.com/bolna-54a2d4fe/8ZNSF6wl5JAecV3m/images/workflows/aisensy/select_campaign_in_inspector.png?fit=max&auto=format&n=8ZNSF6wl5JAecV3m&q=85&s=d9371b64d235d4e2b7b4c30827c55316" alt="Inspector panel for an AiSensy WhatsApp node with a campaign dropdown and message parameter and recipient fields" width="1740" height="1460" data-path="images/workflows/aisensy/select_campaign_in_inspector.png" />
    </Frame>

    1. Select the campaign you want to use.
    2. Fill in any template variables (name, order ID, date — whatever your template uses). You can also use workflow fields as message variables.
    3. Send a test message to fire it to your own number and confirm the sender, wording, and variables all look right.

    <Tip>
      Always send a test before publishing. It's the fastest way to catch a wrong variable order or a template that reads oddly once the placeholders are filled in.
    </Tip>
  </Step>
</Steps>

## Don't have a campaign yet? Create one in AiSensy

A campaign needs an approved template first. Templates are reviewed by Meta, so budget time for this — approval is usually quick but not instant.

### Create the WhatsApp template

<Steps>
  <Step title="Open Template Messages">
    1. Log in to the AiSensy project the campaign should live under.
    2. From the left nav, select **Manage** (the gear icon), then **Template Message**.

    <Frame caption="Template Messages quick guide in AiSensy">
      <img src="https://mintcdn.com/bolna-54a2d4fe/8ZNSF6wl5JAecV3m/images/workflows/aisensy/aisensy_template_messages_quick_guide.png?fit=max&auto=format&n=8ZNSF6wl5JAecV3m&q=85&s=b96b105d6062681c3b8204f55591b724" alt="AiSensy Template Messages page with a Quick Guide panel and cards for Create AI Templates, Launch WhatsApp Status Ad, Launch Lead Form Ads and Create AI Agent" width="2894" height="1380" data-path="images/workflows/aisensy/aisensy_template_messages_quick_guide.png" />
    </Frame>
  </Step>

  <Step title="Create and submit the template">
    Click **Create Template** in the top right, build your WhatsApp template following the on-screen instructions, then submit it for Meta review.

    Your submitted template appears under the **All** tab in the same section, with its current status.

    <Frame caption="Submitted templates and their approval status">
      <img src="https://mintcdn.com/bolna-54a2d4fe/8ZNSF6wl5JAecV3m/images/workflows/aisensy/aisensy_template_messages_all_tab.png?fit=max&auto=format&n=8ZNSF6wl5JAecV3m&q=85&s=9a6761c6a75618a68e53cb62b33325b8" alt="AiSensy Template Messages All tab listing a template named workflow_test_4 with status Approved" width="2204" height="1374" data-path="images/workflows/aisensy/aisensy_template_messages_all_tab.png" />
    </Frame>
  </Step>
</Steps>

### Launch the campaign

<Steps>
  <Step title="Start a new campaign">
    Once the template status turns **Approved**, go to **Campaigns** in the left nav, click **Launch** in the top right, then select **API Campaign**.

    <Frame caption="Choosing a campaign type in AiSensy">
      <img src="https://mintcdn.com/bolna-54a2d4fe/8ZNSF6wl5JAecV3m/images/workflows/aisensy/aisensy_select_campaign_type.png?fit=max&auto=format&n=8ZNSF6wl5JAecV3m&q=85&s=c8e62c0bf51b0004b4454aa8138bf612" alt="AiSensy Select Campaign Type dialog with options for Broadcast Campaign, API Campaign, CSV Broadcast, Meta Ads and QR Campaign" width="2916" height="1430" data-path="images/workflows/aisensy/aisensy_select_campaign_type.png" />
    </Frame>
  </Step>

  <Step title="Name it and set it live">
    Give the campaign a name, select the template you just created, then click **Set Live**.

    <Frame caption="Naming the campaign and picking its template">
      <img src="https://mintcdn.com/bolna-54a2d4fe/8ZNSF6wl5JAecV3m/images/workflows/aisensy/aisensy_create_api_campaign.png?fit=max&auto=format&n=8ZNSF6wl5JAecV3m&q=85&s=f85c12bc891546ece3aba296ac460574" alt="AiSensy Create Campaign form for an API Campaign with a campaign name field and a template selector" width="2748" height="1488" data-path="images/workflows/aisensy/aisensy_create_api_campaign.png" />
    </Frame>
  </Step>

  <Step title="Verify it end-to-end">
    Use the **Test** option on the live campaign to confirm delivery before wiring it into a workflow.

    <Frame caption="A live API campaign, and its test panel">
      <img src="https://mintcdn.com/bolna-54a2d4fe/8ZNSF6wl5JAecV3m/images/workflows/aisensy/aisensy_campaign_live_overview.png?fit=max&auto=format&n=8ZNSF6wl5JAecV3m&q=85&s=99d7d1523cb1fac9dee45f7a7ad48aec" alt="AiSensy campaign overview for Workflow_testing showing status LIVE, campaign type API and template name workflow_test2" width="2782" height="1318" data-path="images/workflows/aisensy/aisensy_campaign_live_overview.png" />
    </Frame>

    <Frame caption="Testing an API campaign with sample parameters">
      <img src="https://mintcdn.com/bolna-54a2d4fe/8ZNSF6wl5JAecV3m/images/workflows/aisensy/aisensy_test_api_campaign.png?fit=max&auto=format&n=8ZNSF6wl5JAecV3m&q=85&s=7be3f1feeb55eed780f02285b1ba9104" alt="AiSensy Test API Campaign panel with a JSON payload including apiKey, campaignName, destination and templateParams fields" width="2932" height="1410" data-path="images/workflows/aisensy/aisensy_test_api_campaign.png" />
    </Frame>
  </Step>

  <Step title="Pick it up in Bolna">
    Head back to Bolna and refresh the campaign list — the new campaign is now selectable from the AiSensy WhatsApp node.
  </Step>
</Steps>

## For developers: the `aisensy_whatsapp` node

If you're building workflows through the Bolna API rather than the dashboard, the node type is `aisensy_whatsapp`. Its config fields (`template_name`, `language`, `recipient`, `variables`, `campaign_name`) and a full JSON example are documented in [Workflow Nodes](/docs/workflows/nodes#aisensy_whatsapp) — including a note that the node is fire-and-forget for now, so there's no delivery status to branch on yet.

***

## Debugging tips

| Symptom                                          | What to check                                                                                                                                       |
| ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| Meta rejected my template                        | Review the rejection reason and resubmit — AiSensy's help center documents the approval process in detail                                           |
| Not sure what's allowed in a template            | Check AiSensy's template content guidelines before writing, not after                                                                               |
| Message fails to send with an API error          | Look up the error code in AiSensy's API error reference                                                                                             |
| Campaign list is empty in Bolna                  | Confirm the API key belongs to the right project, and that the project has at least one *launched* campaign — approved templates alone won't appear |
| Test message sends, live workflow doesn't        | Check the recipient variable is populated for that contact, and that the number is in international format                                          |
| Message sends but variables are blank or shifted | Template placeholders are positional and must be contiguous from `1`. A missing `"2"` shifts everything after it                                    |
