Integration

Wasapi integration

Wasapi is a team inbox and automation platform for WhatsApp on Meta's official WhatsApp Business Platform (a Meta Business Partner; no QR-linked WhatsApp Web), with Instagram and Messenger. Send WhatsApp text, media, contact cards, template and WhatsApp Flow messages, send or schedule template campaigns and follow their delivery, list, search and reassign conversations, read message history, manage contacts, labels and custom fields, move contacts through sales funnels, turn the chatbot on or off, sync and inspect templates, read flow responses, dashboard metrics and reports, and handle Instagram and Messenger conversations. Sending reaches real people: each WhatsApp template message has a Meta cost, and free-form messages, Instagram and Messenger replies depend on the customer's 24-hour window. The contact export by email is not exposed. Answers carry contacts' personal data (names, phone numbers, emails, message content). Authentication is an API key generated in Wasapi's developer area, sent as a Bearer token.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Wasapi.Built from the 63 Wasapi tools below, on the connection you add once.

What you can do with Wasapi

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Each badge shows the default agent permission of an endpoint (allowed: an agent calls it without asking; ask first: you are asked before an agent calls it, when the agent or chat asks permission for sensitive actions; never: no agent may call it), which every user can change endpoint by endpoint in their credential settings.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Label, 6 operations

  • create_labelCreate labelPOSTAgents: ask firstCreates a label with a title and a hexadecimal color (description optional).
  • delete_labelDelete labelDELETEAgents: ask firstPermanently deletes a label.
  • find_label_by_nameFind label by namePOSTAgents: ask firstFinds a label by its exact title and returns its id, title, description and color.
  • get_labelGet labelGETAgents: ask firstReturns one label by id: title, description and color.
  • list_labelsList labelsGETAgents: ask firstLists the account's labels with their id, title, description and hexadecimal color.
  • update_labelUpdate labelPUTAgents: ask firstUpdates a label. title and color are required on every call: send the current values back when they do not change (read them with get_label).

Campaign, 5 operations

  • get_campaignGet campaignGETAgents: ask firstReturns one campaign with its message, status, schedule, message counts per status and its send jobs page by page (each job's status and the contact's name and phone). Personal data.
  • list_campaignsList campaignsGETAgents: ask firstLists every campaign of the account with its name, status, line, scheduled time, contact count and creator. For large accounts prefer list_campaigns_paged.
  • list_campaigns_pagedList campaigns pagedGETAgents: ask firstLists campaigns with cursor paging (stable on large accounts): uuid, name, status, line, contact count and schedule. Pass pagination.next_cursor as cursor while has_more is true.
  • schedule_campaignSchedule campaignPOSTAgents: ask firstSchedules a bulk WhatsApp template campaign to real contacts (by phone numbers, contact ids, labels or all contacts) for scheduled_at. Each template message has a Meta cost when it goes out. To send at once use send_campaign_now.
  • send_campaign_nowSend campaign nowPOSTAgents: ask firstSends a bulk WhatsApp template campaign right now to real contacts (by phone numbers, contact ids, labels or all contacts). Each template message has a Meta cost. To send later use schedule_campaign. Follow it with get_campaign_stats.

Contact, 5 operations

  • create_contactCreate contactPOSTAgents: ask firstCreates a contact (first_name and a phone or bsuid required) with optional email, country, notes, labels and custom fields. It sends nothing, but labels or automations set up in Wasapi may react to a new contact.
  • delete_contactDelete contactDELETEAgents: ask firstPermanently deletes a contact, found by uuid, phone number, bsuid or WhatsApp username.
  • get_contactGet contactGETAgents: ask firstReturns one contact by uuid, phone number, bsuid or WhatsApp username: name, phone, email, country, notes, blocked and unsubscribed flags, labels and custom fields. Personal data.
  • list_contactsList contactsGETAgents: ask firstLists contacts page by page (search by text, filter by label id), with name, phone, email, country, notes, blocked and unsubscribed flags, labels and custom fields. Personal data.
  • update_contactUpdate contactPUTAgents: ask firstUpdates a contact found by uuid, phone, bsuid or username. first_name is required on every call. Read the contact with get_contact first and send back the values to keep: only phone and wa_username are documented as kept when left out.

Custom field, 4 operations

  • create_custom_fieldCreate custom fieldPOSTAgents: ask firstCreates a custom contact field with the given name, available on every contact.
  • delete_custom_fieldDelete custom fieldDELETEAgents: ask firstPermanently deletes a custom contact field and returns how many custom fields remain.
  • list_custom_fieldsList custom fieldsGETAgents: ask firstLists the custom contact fields defined on the account, with their id and name (the names to use as keys in create_contact and update_contact custom_fields).
  • update_custom_fieldUpdate custom fieldPUTAgents: ask firstRenames a custom contact field.

Social conversation, 3 operations

  • change_social_conversation_statusChange social conversation statusPOSTAgents: ask firstOpens, holds or closes an Instagram or Messenger conversation and assigns or transfers its agent. status unchanged changes only the agent; hold always removes the agent. Recorded under the token's user.
  • get_social_conversationGet social conversationGETAgents: ask firstReturns one Instagram or Messenger conversation: status, agent, 24-hour window end, channel, contact, unread count and bot state. 404 when the token cannot see it.
  • list_social_conversationsList social conversationsGETAgents: ask firstLists Instagram and Messenger conversations, newest first: status, agent, 24-hour window end, channel, contact (name, email, labels, custom fields), unread count and bot state. Filter by channel, status, agent or contact. Personal data.

Template, 3 operations

  • get_templateGet templateGETAgents: ask firstReturns one template by uuid: Meta name, language, status, header type and value, body, footer and buttons.
  • list_templatesList templatesGETAgents: ask firstLists the WhatsApp message templates stored in Wasapi (uuid, name, language, status, body). Filter by line with phone_id before a campaign. Run sync_templates_from_meta first to pull new or changed templates from Meta.
  • sync_templates_from_metaSync templates from metaGETAgents: ask firstPulls the templates from Meta for every connected WhatsApp application and updates Wasapi's stored list; returns the result per application. Run it before list_templates when a template was just created or approved.

Chatbot status, 2 operations

  • set_contact_bot_statusSet contact bot statusPOSTAgents: ask firstTurns Wasapi's chatbot on or off for one contact: enable, disable (off for 24 hours) or disable_permanently (until enabled again). Use it when a person or your own bot handles the contact.
  • set_social_bot_statusSet social bot statusPOSTAgents: ask firstTurns Wasapi's bot on or off in an Instagram or Messenger conversation: enable, disable (off for 24 hours) or disable_permanently (until enabled). Use it when a person or your own bot answers.

Conversation, 2 operations

  • change_conversation_statusChange conversation statusPOSTAgents: ask firstChanges a WhatsApp conversation's status (open, hold or closed) or transfers it: opening with agent_id assigns it to that agent. With send_end_message true, closing sends the contact the closing message.
  • list_conversationsList conversationsGETAgents: ask firstLists WhatsApp conversations with their contact, last message, status, unread count, 24-hour window end and labels. Search by name, phone or message text with query, or filter by status, line, label, agent or date. Personal data.

Conversation count, 2 operations

  • count_conversations_by_agentCount conversations by agentGETAgents: ask firstReturns conversation counts per agent and status in a date range, with each agent session's last activity time.
  • count_conversations_by_statusCount conversations by statusGETAgents: ask firstReturns the number of conversations per status (open, hold, closed) in a date range.

Flow, 2 operations

  • get_flow_assetsGet flow assetsPOSTAgents: ask firstReturns a WhatsApp Flow's details and screens: name, status, categories, validation errors, a preview link, its WhatsApp Business account and the screens (ids to use as screen in send_flow_message).
  • list_flowsList flowsGETAgents: ask firstLists the WhatsApp Flows of each WhatsApp line (Meta's interactive forms): flow id, name, status (PUBLISHED, DRAFT, DEPRECATED), categories and validation errors, with the line's details.

Funnel contact, 2 operations

  • move_contact_to_stageMove contact to stagePOSTAgents: ask firstMoves a contact to another stage of its funnel (same WhatsApp line). The funnel's automatic events run and the move is recorded in the contact's history.
  • search_funnel_contactSearch funnel contactGETAgents: ask firstFinds where a contact sits in the funnels, by contact uuid or phone number with country code (one of them required): the funnel contact id, its stage and funnel. Personal data.

Social message, 2 operations

  • list_social_messagesList social messagesGETAgents: ask firstLists an Instagram or Messenger conversation's messages, newest first: direction, origin, type, text, attachments, status (pending, sent, read, failed) and times. Internal notes are left out. Personal data.
  • send_social_messageSend social messagePOSTAgents: ask firstSends a real Instagram or Messenger message in a conversation: text (message) and/or a file by public https URL (file_url with file_type). Fails with window_closed 24 hours after the customer's last message.

Whatsapp message, 2 operations

  • get_messageGet messageGETAgents: ask firstReturns one sent or received WhatsApp message by its id or Meta wam_id (from send_text_message and the other send tools): content, type, direction and current status, and Meta's error_code and error_message when it failed.
  • send_text_messageSend text messagePOSTAgents: ask firstSends a free-form WhatsApp text message to a real person, from one of your lines. Identify the recipient with wa_id, bsuid or wa_username. To open a conversation with someone who has not written to you, use send_template_message.

Agent, 1 operation

  • list_online_agentsList online agentsGETAgents: ask firstLists the account's agents with name, email, whether each is online, last activity and last login. Personal data about your team.

Agent metric, 1 operation

  • get_agent_metricGet agent metricGETAgents: ask firstReturns one metric for one agent over a date range: transferred (transferred requests), time_response (response time), volume_of_work or time_in_conversation. The unit is not documented.

Agent performance report, 1 operation

  • get_agent_performance_reportGet agent performance reportGETAgents: ask firstReturns per-agent, per-day performance over a date range: first response and resolution times (seconds), opened and closed conversations, escalations and how conversations were assigned (bot, Make, automatic, manual).

Bot message count, 1 operation

  • count_bot_messagesCount bot messagesGETAgents: ask firstReturns the number of messages the chatbot sent per WhatsApp line in a date range.

Campaign count, 1 operation

  • count_campaignsCount campaignsGETAgents: ask firstReturns the number of campaigns created in a date range.

Campaign delivery log, 1 operation

  • list_campaign_delivery_logsList campaign delivery logsGETAgents: ask firstLists a campaign's delivery per recipient: contact id, phone, bsuid or username, job status, WhatsApp message status (sent, delivered, read, failed), attempts and error. Cursor paging. Personal data.

Campaign statistics, 1 operation

  • get_campaign_statsGet campaign statsGETAgents: ask firstReturns a campaign's message counts by WhatsApp delivery status (sent, delivered, read, failed...), as a map of status to count. Messages deleted after sending are not counted.

Contact card, 1 operation

  • send_contact_cardsSend contact cardsPOSTAgents: ask firstSends one or more contact cards (vCards) in a WhatsApp message to a real person: name required per card, plus optional phones, emails, addresses, organization, birthday and URLs. Up to 257 cards (fewer recommended).

Contact count, 1 operation

  • count_contacts_by_statusCount contacts by statusGETAgents: ask firstReturns how many contacts are enabled, blocked and active.

Conversation message, 1 operation

  • get_conversation_messagesGet conversation messagesGETAgents: ask firstReturns the WhatsApp messages of one conversation, by the contact's phone number, with each message's content, type, direction (in or out), WhatsApp ids and status, plus the conversation's status. Message content is personal data.

Flow message, 1 operation

  • send_flow_messageSend flow messagePOSTAgents: ask firstSends a real person a WhatsApp message with a button that opens a WhatsApp Flow. action navigate opens the screen you name (screen); data_exchange lets the flow's own server choose the first screen.

Flow response, 1 operation

  • list_flow_responsesList flow responsesGETAgents: ask firstLists what people submitted in a WhatsApp Flow, page by page: the person's WhatsApp id, the screen, their answers (as JSON) and when. Personal data.

Funnel, 1 operation

  • list_funnelsList funnelsGETAgents: ask firstLists the sales funnels with their stages (ids to use in move_contact_to_stage, names, order) and the WhatsApp line of each.

Media message, 1 operation

  • send_media_messageSend media messagePOSTAgents: ask firstSends an image, video, document or audio file, given by public URL, to a real person on WhatsApp. Set file to the type and fill the matching URL field (image_url, video_url, document_url or audio_url).

Message count, 1 operation

  • count_messagesCount messagesGETAgents: ask firstReturns the number of incoming and outgoing messages in a date range.

Satisfaction report, 1 operation

  • get_satisfaction_survey_reportGet satisfaction survey reportGETAgents: ask firstReturns the satisfaction survey report: surveys sent, responses, response rate, average rating (1-5) and trend, rating distribution, ratings over time and per agent or bot (top 10). Last 30 days by default.

Social channel, 1 operation

  • list_social_channelsList social channelsGETAgents: ask firstLists the Facebook pages and Instagram accounts connected to Wasapi: uuid (to filter conversations), type (messenger or instagram), name, username and status (active, error, disconnected).

Template message, 1 operation

  • send_template_messageSend template messagePOSTAgents: ask firstSends an approved WhatsApp template to up to 20 real recipients at once, with optional body, header and button variables and a header file. Starts or continues conversations; each template message has a Meta cost.

Template variables, 1 operation

  • get_template_variablesGet template variablesGETAgents: ask firstReturns what an approved template needs before sending: number of body variables, whether the header takes a text variable or a media file (and which type), and which buttons need a dynamic value.

User, 1 operation

  • get_userGet userGETAgents: ask firstReturns the user the API key belongs to: id, name, email, phone, language, role and organization id.

Whatsapp line, 1 operation

  • list_whatsapp_numbersList whatsapp numbersGETAgents: ask firstLists the WhatsApp lines connected to the account: id (the from_id or phone_id the send tools take), display name, phone number, Meta phone id and WhatsApp Business account.

Workflow status, 1 operation

  • list_workflow_statusesList workflow statusesGETAgents: ask firstLists conversation workflow statuses page by page (id, name, description, color, order), filtered by action (open, hold, closed), phone, agent or date range.

Workload report, 1 operation

  • get_hourly_workload_reportGet hourly workload reportGETAgents: ask firstReturns workload per date and hour over a date range: conversations opened and closed and first responses, with an optional comparison to the previous period (totals, percent change, trend).

Use Wasapi from Claude Code, Cursor or Codex

Connect Wasapi in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Wasapi operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Wasapi

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Wasapi once

    Add your Wasapi connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Wasapi integration FAQ

What can you do with the Wasapi integration?

LiveContext exposes 63 operations on Wasapi, covering label, campaign, contact and custom field.

Popular integrations

Browse the whole catalog