Kapso integration
Kapso is a WhatsApp API platform. Send WhatsApp messages of every type (text, media, location, contacts, interactive buttons and lists, templates, reactions) and marketing templates, mark messages read, read messages, conversations, contacts and calls, upload and fetch media, manage message templates, WhatsApp Flows, the business profile, usernames and blocked users through Kapso's proxy of Meta's WhatsApp Cloud API; and on Kapso's platform API manage customers and their onboarding links, project phone numbers and their health, contacts, conversations and assignments, broadcast campaigns, webhooks, project events, workflows with their triggers and executions, and read usage and business verification. Authentication is a project API key from the Kapso dashboard sent in the X-API-Key header. Left out: Kapso agent runs, serverless functions and their secrets, Kapso-hosted flow data endpoints, workflow canvas definitions and execution event logs, API and log search, inbox embeds, notification routing, findings, funding changes, business verification submission, voice call actions, Meta conversion events, connecting a number with Meta credentials and the two-step verification PIN. Webhook secrets and custom headers, setup link tokens and phone number certificates are not returned.
Say what should happen.
The workflow builds itself.
What you can do with Kapso
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.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Webhook, 10 operations
create_phone_number_webhookCreate phone number webhookPOSTSubscribes a URL to a number's WhatsApp events (kind kapso: chosen events, optional buffering; kind meta: Meta's raw payload). Kapso then POSTs each event to it. The secret_key you set is not returned.create_project_webhookCreate project webhookPOSTCreates a project webhook: without phone_number_id it receives project events only; with one, that number's message and conversation events. Kapso then POSTs each event to the URL. Secret not returned.delete_phone_number_webhookDelete phone number webhookDELETEDeletes a number's webhook: Kapso stops sending its events.delete_project_webhookDelete project webhookDELETEDeletes a webhook: Kapso stops sending its events.get_phone_number_webhookGet phone number webhookGETReturns one webhook of a project number: URL, kind, events, buffering and status. The secret and custom headers are not returned.get_project_webhookGet project webhookGETReturns one webhook of your project: URL, kind, events, buffering, status and scope. The secret and custom headers are not returned.list_phone_number_webhooksList phone number webhooksGETLists the webhooks of one project number, most recent first: URL, kind, events, buffering and status. Secrets and custom headers are not returned.list_project_webhooksList project webhooksGETLists every webhook of your project (project-scoped and number-scoped), most recent first: URL, kind, events, buffering and status. Secrets and custom headers are not returned.test_project_webhookTest project webhookPOSTSends a test payload to the webhook's URL now, optionally for one event_type the webhook subscribes to.update_phone_number_webhookUpdate phone number webhookPATCHChanges a number's webhook (URL, events, secret, active, buffering, headers); fields left out keep their value.
Flow, 9 operations
create_flowCreate flowPOSTCreates a draft WhatsApp Flow in a WhatsApp Business Account; upload its Flow JSON with upload_flow_assets, then publish_flow.create_flow_by_phone_numberCreate flow by phone numberPOSTCreates a draft WhatsApp Flow in the business account of your number; upload its Flow JSON with upload_flow_assets, then publish_flow.delete_flowDelete flowDELETEDeletes a DRAFT WhatsApp Flow for good. A published flow cannot be deleted, only deprecated (deprecate_flow).deprecate_flowDeprecate flowPOSTDeprecates a published WhatsApp Flow: it can no longer be sent. Not reversible.get_flowGet flowGETReturns one WhatsApp Flow: name, status, categories, validation errors, versions, endpoint and health; fields selects other fields such as preview. Pass phone_number_id or business_account_id: Kapso uses it to pick the connection.list_flowsList flowsGETLists the WhatsApp Flows of a WhatsApp Business Account: id, name, status and categories; cursor paging.list_flows_by_phone_numberList flows by phone numberGETLists the WhatsApp Flows of the business account your number belongs to: id, name, status and categories; cursor paging.publish_flowPublish flowPOSTPUBLISHES a WhatsApp Flow so it can be sent to users. Not reversible: the flow and its assets become immutable.update_flow_metadataUpdate flow metadataPOSTChanges a WhatsApp Flow's name, categories, endpoint_uri or application_id. Pass phone_number_id or business_account_id: Kapso uses it to pick the connection.
Broadcast, 7 operations
cancel_broadcast_scheduleCancel broadcast schedulePOSTCancels a scheduled broadcast and returns it to draft. Only works while it is scheduled.create_broadcastCreate broadcastPOSTCreates a draft broadcast campaign: a template sent from one number to many recipients. Next add_broadcast_recipients, then send_broadcast or schedule_broadcast. Nothing is sent yet.get_broadcastGet broadcastGETReturns one broadcast with its status, schedule, template and delivery counts; use it to follow a send in progress.list_broadcastsList broadcastsGETLists broadcast campaigns, most recent first, with status, schedule, template and counts (sent, delivered, read, failed, pending, responded); 20 per page.schedule_broadcastSchedule broadcastPOSTSchedules a draft broadcast with recipients to SEND to all of them at a future time (scheduled_at). cancel_broadcast_schedule undoes it.send_broadcastSend broadcastPOSTSENDS a broadcast's template to all its recipients, starting now (asynchronous): follow progress with get_broadcast, stop it with update_broadcast_status.update_broadcast_statusUpdate broadcast statusPATCHChanges a broadcast's status: stopped halts a send in progress (pending recipients stay pending), draft cancels a scheduled broadcast.
Contact, 7 operations
create_project_contactCreate project contactPOSTCreates a WhatsApp contact in your project (a person's phone number with profile and metadata); it sends nothing.erase_project_contactErase project contactDELETEPERMANENTLY erases a contact and all its data (conversations, messages, media), asynchronously. Cannot be undone.get_contactGet contactGETReturns one WhatsApp contact of your number by WhatsApp id: profile name, ids, username and metadata (personal data).get_project_contactGet project contactGETReturns one contact of your project by UUID, phone number or business-scoped user ID: names, numbers, customer and metadata (personal data).list_contactsList contactsGETLists the WhatsApp contacts your number has talked to, with names, WhatsApp ids and metadata (personal data); filter by WhatsApp id or customer; cursor paging (paging.cursors.after).list_project_contactsList project contactsGETLists the WhatsApp contacts of your project with names, phone numbers, customer and metadata (personal data), filterable; page or cursor paging.update_project_contactUpdate project contactPATCHChanges a contact's profile or metadata; fields left out keep their value.
Message, 6 operations
get_messageGet messageGETReturns one message of your number by its WhatsApp message id (wamid), with its content, status, direction and Kapso fields. Personal data.get_project_messageGet project messageGETReturns one message of your project by its WhatsApp message id (wamid): content, direction, status and Kapso fields (personal data).list_messagesList messagesGETLists messages of one of your numbers, newest first, with optional filters (conversation, direction, status, time range); 20 per page by default, at most 100. Next page: pass paging.cursors.after as after. Message content is personal data.list_project_messagesList project messagesGETLists messages across all conversations of your project, newest first, with filters (number, conversation, direction, status, time); cursor paging (limit, after, before). Message content is personal data.mark_message_as_readMark message as readPOSTMarks a received WhatsApp message (and the ones before it) as read: the sender sees blue ticks. Optionally shows a typing indicator, dismissed on your reply or after about 25 seconds.send_messageSend messagePOSTSENDS a WhatsApp message now from your number to a person (to: phone number, or recipient: BSUID). Set type and fill the object of the same name. Outside the 24-hour customer service window only a template is delivered.
Conversation, 5 operations
get_conversationGet conversationGETReturns one conversation of your number with the customer's contact details, message statistics and metadata. Personal data.get_project_conversationGet project conversationGETReturns one conversation of your project with its status, number, contact and metadata (personal data).list_conversationsList conversationsGETLists the conversations of one of your numbers, most recent activity first, filterable by status, activity time and the customer's phone number; cursor paging (paging.cursors.after).list_project_conversationsList project conversationsGETLists conversations across your project, latest activity first, with filters (number, status, customer, time); cursor paging (paging.cursors.after).update_project_conversationUpdate project conversationPATCHCloses a completed conversation or reopens it for follow-up (status), and can update its metadata.
Customer, 5 operations
create_customerCreate customerPOSTCreates a customer: a business of yours that will connect its own WhatsApp number through a setup link (create_customer_setup_link).delete_customerDelete customerDELETEDeletes a customer from your Kapso project.get_customerGet customerGETReturns one customer: name, your external_customer_id and dates.list_customersList customersGETLists the customers of your Kapso project (the businesses whose WhatsApp numbers you manage), most recent first, filterable by name or your own customer id; 20 per page.update_customerUpdate customerPATCHChanges a customer's name or external_customer_id; fields left out keep their value.
Event definition, 5 operations
create_project_event_definitionCreate project event definitionPOSTCreates a definition for a project event name (meaning and property schema); an existing name has its metadata updated, and an archived one is restored.delete_project_event_definitionDelete project event definitionDELETEPERMANENTLY deletes an event definition and every recorded event of it. Cannot be undone.get_project_event_definitionGet project event definitionGETReturns one project event definition: its name, meaning, property schema, last time an event of it was recorded and archive state.list_project_event_definitionsList project event definitionsGETLists the project event definitions: event names, meanings and property schemas.update_project_event_definitionUpdate project event definitionPATCHChanges an event definition's metadata; its name cannot change once events have been recorded.
Phone number, 5 operations
delete_project_phone_numberDelete project phone numberDELETEDisconnects and deletes a WhatsApp number from your Kapso project.get_phone_number_detailsGet phone number detailsGETReturns a phone number's basic details as Meta reports them by default (display number, verified name, quality rating); Meta's optional extra fields are not requested. For limits and status use get_project_phone_number.get_project_phone_numberGet project phone numberGETReturns one number of your project as Kapso stores it: names, business account, customer, quality rating, status, limits, settings and business verification summary.list_business_account_phone_numbersList business account phone numbersGETLists the phone numbers of a WhatsApp Business Account with Meta's basic details (display number, verified name, verification status, quality rating). For limits and status use get_project_phone_number.list_project_phone_numbersList project phone numbersGETLists the WhatsApp numbers of your Kapso project, most recent first: display number, names, customer, quality rating, status, throughput tier; filter by customer, name or messaging. Start here for phone_number_id.
Workflow execution, 5 operations
create_workflow_executionCreate workflow executionPOSTSTARTS an active workflow for a person (phone_number or recipient) with optional variables; it may message them on WhatsApp. Answers 202 with the execution id and a tracking_id: follow it with get_workflow_execution.get_workflow_executionGet workflow executionGETReturns a workflow execution's status, current step, timestamps, conversation and error details. Its execution context (variables) and event log are left out.list_conversation_workflow_executionsList conversation workflow executionsGETLists the Kapso workflow executions of a conversation, most recent first, with status and current step.list_workflow_executionsList workflow executionsGETLists a workflow's executions, most recent first, filterable by status and time; cursor paging.resume_workflow_executionResume workflow executionPOSTResumes a workflow execution that is waiting (at a wait-for-response step or paused), optionally with a message and variables to merge.
Conversation assignment, 4 operations
create_conversation_assignmentCreate conversation assignmentPOSTAssigns a conversation to a project member (from list_project_users); only one assignment can be active per conversation.get_conversation_assignmentGet conversation assignmentGETReturns one assignment of a conversation.list_conversation_assignmentsList conversation assignmentsGETLists a conversation's assignments to team members, most recent first.update_conversation_assignmentUpdate conversation assignmentPATCHChanges an assignment's notes, reassigns it to another member, or unassigns it (active false) without deleting the record.
Message template, 4 operations
create_or_update_message_templateCreate or update message templatePOSTCreates a message template (omit hsm_id) or edits one (hsm_id = its id); Meta reviews it before it can be sent. Name: lowercase with underscores. Body variables are {{1}} or named, written {{'{{1}}'}} in a workflow.delete_message_templateDelete message templateDELETEDeletes a message template by name (every language of it) or by hsm_id (one language). Deletion cannot be undone.get_message_templateGet message templateGETReturns one message template by id: name, language, status, category and components.list_message_templatesList message templatesGETLists the message templates of a WhatsApp Business Account with status, category, language and components, filterable by name, status, category and language; cursor paging.
Workflow trigger, 4 operations
create_workflow_triggerCreate workflow triggerPOSTAdds a trigger to a workflow: inbound messages on a number, an API call, a WhatsApp event or a project event start it automatically from then on.delete_workflow_triggerDelete workflow triggerDELETEDeletes a workflow trigger: the workflow no longer starts from it.list_workflow_triggersList workflow triggersGETLists a workflow's triggers (inbound message on a number, API call, WhatsApp event or project event) with their active state.replace_workflow_triggersReplace workflow triggersPUTREPLACES all of a workflow's triggers with the set sent, in one transaction: every existing trigger is deleted; if one is invalid nothing changes.
Blocked user, 3 operations
block_usersBlock usersPOSTBLOCKS WhatsApp users on your number: they can no longer message it. Meta only lets you block a user who messaged you recently.list_blocked_usersList blocked usersGETLists the WhatsApp users blocked on your number.unblock_usersUnblock usersDELETEUnblocks WhatsApp users on your number so they can message it again.
Broadcast recipient, 3 operations
add_broadcast_recipientsAdd broadcast recipientsPOSTAdds up to 1000 recipients to a draft broadcast, each with a phone number and the template components to fill; duplicates are skipped. Returns counts added and duplicated, and errors.clear_broadcast_recipientsClear broadcast recipientsDELETERemoves ALL recipients from a draft or scheduled broadcast; a scheduled one returns to draft and loses its schedule.list_broadcast_recipientsList broadcast recipientsGETLists a broadcast's recipients with their delivery status, template components and errors (personal data); 20 per page.
Display name request, 3 operations
create_display_name_requestCreate display name requestPOSTRequests a change of a number's display name (the business name WhatsApp users see); Meta reviews most within 24 to 48 hours, some at once. Check with get_display_name_request.get_display_name_requestGet display name requestGETReturns one display name change request with Meta's review status.list_display_name_requestsList display name requestsGETLists a number's display name change requests, most recent first, with Meta's review status.
Media, 3 operations
delete_mediaDelete mediaDELETEDeletes a media file from WhatsApp. Optionally pass phone_number_id to check the media belongs to that number first.download_mediaDownload mediaGETDownloads a media file's bytes with the token from get_media_url's download_url (valid 4 minutes after issue); returns the file.get_media_urlGet media urlGETReturns a media file's details and a download_url (Kapso token, valid 4 minutes) to pass to download_media; the url field is Meta's own link, which expires after 5 minutes.
Setup link, 3 operations
create_customer_setup_linkCreate customer setup linkPOSTCreates a WhatsApp onboarding link for a customer: send them the returned url, a Kapso-hosted page where they connect or get a number. Expires after 30 days by default. The SDK token is not returned.list_customer_setup_linksList customer setup linksGETLists a customer's WhatsApp onboarding setup links, most recent first: status, expiry, URL, setup status and any provisioned number. Tokens are never returned.update_customer_setup_linkUpdate customer setup linkPATCHChanges a customer's setup link: redirects, expiry, status, connection types, provisioning or theme; fields left out keep their value.
Username, 3 operations
delete_usernameDelete usernameDELETERemoves your number's WhatsApp business username.get_usernameGet usernameGETReturns your number's WhatsApp business username and its status; no username field when none is set.set_usernameSet usernamePOSTClaims or changes your number's public WhatsApp business username. transfer_action force_transfer moves a username held by another number of the same business portfolio.
Workflow, 3 operations
create_workflowCreate workflowPOSTCreates a Kapso workflow in draft status, optionally with its graph (nodes and edges). Activate it with update_workflow (status active) and add a trigger with create_workflow_trigger.get_workflowGet workflowGETReturns one workflow's metadata, status, lock_version and execution stats (not its node graph).list_workflowsList workflowsGETLists your Kapso workflows (WhatsApp conversation automations), newest first: name, slug, status (draft, active, archived) and execution stats; filter by status, name or creation date.
Business profile, 2 operations
get_business_profileGet business profileGETReturns your number's WhatsApp business profile as WhatsApp users see it: about, address, description, email, websites, category and profile picture URL.update_business_profileUpdate business profilePOSTChanges your number's public WhatsApp business profile (about, address, description, email, websites, category, profile picture); fields left out keep their value. Visible to every WhatsApp user.
Business verification submission, 2 operations
get_business_verification_submissionGet business verification submissionGETReturns one business verification submission with document metadata and Meta's rejection reasons.list_business_verification_submissionsList business verification submissionsGETLists your project's business verification submissions for a portfolio, newest first.
Marketing preference, 2 operations
get_contact_marketing_preferenceGet contact marketing preferenceGETReturns a contact's marketing message preference on one of your numbers; a 404 'Marketing preference not found' means they never changed it and are subscribed.list_contact_marketing_preferencesList contact marketing preferencesGETLists a contact's marketing message preference per number of yours: one entry per number where they stopped or resumed marketing; an empty list means subscribed everywhere.
Project event, 2 operations
create_project_eventCreate project eventPOSTRecords one timestamped project event (lowercase dotted name, optional flat properties). Webhooks subscribed to project.event and workflows triggered by it react to it.list_project_eventsList project eventsGETLists recorded project events, newest first, filterable by event name, WhatsApp conversation or occurrence time; cursor paging (limit, after, before).
Usage, 2 operations
get_account_usageGet account usageGETReturns the charges recorded for your project on one WhatsApp Business Account, by usage kind (messaging, calling). Free messages and Meta charges paid outside Kapso are excluded.get_portfolio_usageGet portfolio usageGETReturns the charges recorded for your project across a business portfolio's accounts, by usage kind. Other partners' activity is not included.
Account, 1 operation
list_portfolio_accountsList portfolio accountsGETLists the WhatsApp Business Accounts of a Meta business portfolio visible to your project, each with its funding status; cursor paging, newest first.
Business verification, 1 operation
get_business_verificationGet business verificationGETReturns a business portfolio's Meta business verification status, eligibility, attempts left and your project's latest submission.
Call, 1 operation
list_callsList callsGETLists the WhatsApp voice calls of your number recorded by Kapso, filterable by Meta call id, direction, status and time range; cursor paging (paging.cursors.after).
Call permission, 1 operation
get_call_permissionsGet call permissionsGETReturns whether your number may call a given WhatsApp user (permission status) and which call actions are available with their limits.
Flow asset, 1 operation
get_flow_assetsGet flow assetsGETReturns a WhatsApp Flow's assets: its Flow JSON file with a download URL.
Funding, 1 operation
get_account_fundingGet account fundingGETReturns Kapso's recorded funding status for a WhatsApp Business Account (whether paid messages are enabled, and why not). Reads stored evidence only; waba_id is Meta's WABA id.
Marketing message, 1 operation
send_marketing_messageSend marketing messagePOSTSENDS a marketing template message now to a person (to: phone number, or recipient: BSUID) through Meta's marketing messages API. type is template; fill template with an approved marketing template's name, language and parameters.
Phone number health, 1 operation
get_phone_number_healthGet phone number healthGETRuns a health check of a project number through Meta and Kapso and returns status and per-check results; cached 3 minutes per number (timestamp says when it ran).
Thread control, 1 operation
thread_controlThread controlPOSTMoves a conversation between apps on a shared number: action take (only your escalation app may), release, or pass (to the app with control_pass.target_role, else the escalation app). A 502 means the result is unknown.
User, 1 operation
list_project_usersList project usersGETLists the members of your Kapso project (team users) with names and emails (personal data), to assign conversations to.
Username suggestion, 1 operation
list_username_suggestionsList username suggestionsGETReturns usernames Meta has reserved as suggestions for your number, for set_username.
Webhook delivery, 1 operation
list_webhook_deliveriesList webhook deliveriesGETLists webhook delivery attempts of your project, most recent first, with status and response details; cursor paging.
Workflow variable, 1 operation
list_workflow_variablesList workflow variablesGETLists the variables a workflow can use: fixed system and context variables, and variables discovered in past executions with their type and template reference. Sample values are left out.
Showing the first 120 of 128 endpoints. The rest are in the product, searchable from the workflow builder and from chat.
Use Kapso from Claude Code, Cursor or Codex
Connect Kapso in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Kapso operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Kapso
- Create your workspace
Sign up free. Nothing to install.
- Connect Kapso once
Add your Kapso connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- 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.
Kapso integration FAQ
What can you do with the Kapso integration?
LiveContext exposes 128 operations on Kapso, covering webhook, flow, broadcast and contact.
