# Integrations overview

**Integrations** connect your account to the other tools you use. Open **Settings → Integrations**, choose a service, and follow the steps to connect it.

## Watch the walkthrough

{% embed url="https://youtu.be/KXNlnAwSEc8" %}

The ones you'll reach for most:

* **AI Providers** — one page for every AI key. Flow agent replies run on **Anthropic (Claude)** or **DeepSeek** (when both are connected, DeepSeek is used). **OpenAI** powers AI Knowledge (FAQ generation and search), voice-note transcription, image understanding, and article translation — these run on OpenAI only. See [How to get your OpenAI API key](/settings/how-to-get-your-openai-api-key), [Creating a Claude API key](/settings/creating-a-claude-api-key-and-checking-usage-limits) and [Creating a DeepSeek API key](/settings/creating-a-deepseek-api-key).
* **Google Sheets** — connect your Google account and the customer details your AI agent collects land in your own spreadsheet, ready for your team. See [Connecting Google Sheets](/settings/connecting-google-sheets).
* **Lark Base** — send the same details into a Lark (Feishu) Base table, one updating row per customer. See [Connecting Lark Base](/settings/connecting-lark-base).
* **Slack** — get conversations in a Slack channel and reply without leaving it.
* **Webhooks** — push conversation events to your own systems in real time.
* **Dashboard apps** — embed your own tools right inside the conversation view.
* **Google Translate** and **Dialogflow** are also available for translation and bot workflows.

Some features, such as AI Knowledge, require the relevant provider key to be connected first.

## Webhooks

A webhook sends events from your account — new conversations, messages, contact changes and more — to a URL of your own, as they happen.

1. Open **Settings → Integrations** and choose **Webhooks**.
2. Click **Add new webhook**.
3. Enter a **Webhook Name** and your **Webhook URL**.
4. Under **Events**, tick the events you want to receive.
5. Click **Create webhook**.

After you create a webhook, its **Secret** is shown so your system can check that deliveries really come from your account. Copy it then — you can also find it later in the webhook's edit form.

### Sending Flow Agent answers

Tick **Flow submission created or updated** to send the answers your Flow Agents collect to a CRM, a spreadsheet or any automation tool that accepts webhooks.

When a delivery is sent:

* When a customer's answer is collected or changed.
* When the flow finishes.
* A turn that collects nothing new sends nothing.

What each delivery contains:

* Every answer collected so far, so your records stay current before the flow ends.
* Whether the submission is finished or still in progress.
* The contact's name, email and phone number, the Flow Agent's name, the conversation number and the inbox name.

## Send Webhook Event action

Automation rules can call a webhook too. The **Send Webhook Event** action sends the conversation's details to your URL whenever the rule runs — including to CRMs and APIs that need a token in a header or a method other than POST.

1. Open **Settings → Automation**, create or edit a rule, and add the **Send Webhook Event** action.
2. Enter the URL and pick the method beside it: POST, GET, PUT, PATCH or DELETE.
3. For POST, PUT and PATCH, you can enter your own JSON under **Custom payload (optional)** and use **Insert variable** to add conversation details. Leave it blank to send the standard details.
4. Under **Custom headers (optional)**, click **Add header** and enter the header name and value — for example `Authorization` and `Bearer your-token`.
5. Click **Test send** to check that the endpoint accepts the request, then save the rule.

Good to know:

* Up to 10 headers per action. Header names can't contain spaces, values must be a single line, and **Host**, **Content-Length**, **Transfer-Encoding** and **Connection** can't be set.
* GET and DELETE requests are sent without a body, so put any parameters in the URL.
* **Test send** uses the same method and headers, filled with data from one of your conversations. You need at least one conversation in your account to test.
* The same options appear on the **Send Webhook Event** action in **Macros** and **Inbound Webhooks**, and on a Reply SLA's breach automation.

## What you can insert into the payload

Click **Insert variable** above the payload box to add a placeholder where the cursor is. The menu is grouped, and you can search it:

* **Contact** — ID, name, first and last name, email, phone, Facebook and Instagram IDs, company name, city, country, and when the contact first chatted with you.
* **Inbox** — ID, name, channel type, and the business phone number the chat came in on (WhatsApp, SMS and Twilio inboxes).
* **Assignment** — the assigned agent's name and email, the team, and the Flow Agent handling the chat.
* **Conversation** — ID, link, status, priority, labels (comma-separated), when it started and when it was last active, and the Meta ad ID when the customer came from a Meta Click-to-Message ad or post.
* **Chat history (last 10 messages)** — the conversation's latest messages from the customer, your agents and the bot. See below.
* **Flow answers** — every answer your Flow Agents collect, one placeholder per answer.
* **Custom attributes** — your contact and conversation attributes.

Times are sent in ISO 8601 format with their timezone offset, for example `2026-09-29T10:02:00+08:00`.

### Sending the chat history

There are two ways to send the last 10 messages. Both run oldest to newest and leave out private notes and activity lines such as assignments:

* `{{conversation.chat_history}}` sends the messages as a list. Each message has its `role` (`customer`, `agent` or `bot`), `sender`, `content`, `attachments` and `created_at`. Put it **without** quotes, for example `"history": {{conversation.chat_history}}`.
* `{{conversation.chat_history_text}}` sends the same messages as one block of text, one line per message, such as `[2026-09-29 10:02] Customer (Aisyah): Is the 3-bedroom unit available?`. Put it **inside** quotes. It suits a CRM notes or description field.

If you put `{{conversation.chat_history}}` inside quotes, the editor shows **Chat history is a list: remove its quotes, or use {{conversation.chat_history_text}} for text.** and **Test send** stays off until you fix it.

## Related

* [Labels, attributes and automation](/settings/labels-attributes-and-automation)
* [Inbound Webhooks](/settings/inbound-webhooks)
* [Reply SLA](/settings/reply-sla)
* [Connecting Google Sheets](/settings/connecting-google-sheets)
* [Connecting Lark Base](/settings/connecting-lark-base)

---
Source: https://help.mampuai.com/settings/integrations
