This is the full developer documentation for Fufa
# Every conversation in one inbox.
AI agents that sell.
> Connect WhatsApp, live chat, Instagram, email, Telegram and phone, answer from one inbox, and let AI agents reply, recommend products and hand over to your team.
## Get your store live
[Section titled “Get your store live”](#get-your-store-live)
These pages take you from sign-up to a store that answers customers on its own. Follow them in order.
1. **[Create a workspace](/start/create-a-workspace/)**\
Sign up and finish setup in the inbox.
2. **[Connect WhatsApp](/channels/whatsapp/)**\
Link your business number through Meta.
3. **[Add live chat](/channels/live-chat/)**\
Put a chat on your website or Shopify theme.
4. **[Reply from the inbox](/inbox/reply/)**\
Answer, take over from the agent, close.
5. **[Invite your team](/workspace/team/)**\
Share the inbox with the right roles.
6. **[Create an agent](/agents/create-an-agent/)**\
Teach it, test it, turn it on.
7. **[Connect Shopify](/commerce/shopify/)**\
Bring in products and orders.
## What is Fufa
[Section titled “What is Fufa”](#what-is-fufa)
Fufa is an AI customer platform for online stores. Messages from WhatsApp, your website’s live chat, Instagram, email, Telegram and phone calls arrive in one shared inbox. AI agents answer them with your catalogue, stock and orders, and hand the conversation to a person when it needs one.
## What you can do with Fufa
[Section titled “What you can do with Fufa”](#what-you-can-do-with-fufa)
* **Answer every channel in one place.** Connect [WhatsApp](/channels/whatsapp/), [live chat](/channels/live-chat/), [Instagram](/channels/instagram/), [email](/channels/email/), [Telegram](/channels/telegram/) and [phone](/channels/phone/), then [reply from the inbox](/inbox/reply/).
* **Let an AI agent take the first reply.** [Create an agent](/agents/create-an-agent/), teach it your policies and products, and turn it on per channel. It looks up orders, recommends products and recovers carts.
* **Know your customers.** Every conversation is tied to a contact with tags, attributes and segments.
* **Send campaigns.** Message opted-in customers with approved WhatsApp templates.
* **Automate the rest.** Workflows run steps on their own, such as confirming cash-on-delivery orders or following up on abandoned carts.
* **Sell from conversations.** [Connect Shopify](/commerce/shopify/) so agents and your team see products, orders and carts.
## Reading these docs with an AI assistant
[Section titled “Reading these docs with an AI assistant”](#reading-these-docs-with-an-ai-assistant)
Every page is written as one task. Its title is the task and its first paragraph is the result.
* Add `.md` to any page URL for plain markdown, for example [`/channels/whatsapp.md`](/channels/whatsapp.md).
* [`/llms.txt`](/llms.txt) lists the docs. [`/llms-full.txt`](/llms-full.txt) holds the full text of the docs in one file.
## Common questions
[Section titled “Common questions”](#common-questions)
### Who is Fufa for?
[Section titled “Who is Fufa for?”](#who-is-fufa-for)
Fufa is built for online stores, especially Shopify stores, that talk to customers on WhatsApp, Instagram and their website. It works for one founder answering chats alone and for a support team that shares an inbox.
### Which channels does Fufa support?
[Section titled “Which channels does Fufa support?”](#which-channels-does-fufa-support)
[WhatsApp Business](/channels/whatsapp/), [website live chat](/channels/live-chat/), [Instagram direct messages](/channels/instagram/), [email](/channels/email/), [Telegram](/channels/telegram/) and [phone calls](/channels/phone/). Each connects to an inbox from **Settings → Inboxes**.
### Do I need an AI agent to use Fufa?
[Section titled “Do I need an AI agent to use Fufa?”](#do-i-need-an-ai-agent-to-use-fufa)
No. You can run Fufa as a shared inbox only. Agents are optional, and you choose which channels an agent replies on.
# Create a workspace
> Sign up with your email or Google, name your workspace, and Fufa opens your inbox with a setup thread that connects your store and creates your website chat.
You end up with a Fufa workspace and an inbox. A setup thread from Fufa is pinned at the top of the inbox. It connects your Shopify store, creates a website chat that knows your catalogue, and tells you when the chat is live on your site.
A workspace holds everything for one business: its channels, inbox, contacts, agents and team. If you run two brands, create a workspace for each.
## Before you start
[Section titled “Before you start”](#before-you-start)
* An email address you can receive a verification code at, or a Google account.
* Your company name.
* Optional: your Shopify store address, such as `your-store.myshopify.com`.
## Sign up
[Section titled “Sign up”](#sign-up)
1. Go to [apps.fufa.ai](https://apps.fufa.ai).
2. Enter your email address and continue. Fufa emails you a verification code. You can also choose **Continue with Google** instead.
3. Enter the code under **Verification code** and select **Verify Code**.
4. Fill in **First name**, **Last name** and **Company name**, then select **Create Workspace**.
Fufa opens your inbox.
## Finish setup in the inbox
[Section titled “Finish setup in the inbox”](#finish-setup-in-the-inbox)
The pinned setup thread asks a few questions. Answer them right in the thread.
1. **Connect your Shopify store.** Enter your store address. Fufa imports your products, stock and orders, then creates a website chat that answers as your store. If you don’t use Shopify, skip this and [add live chat](/channels/live-chat/) yourself.
2. **Check two settings before it goes live.** Choose what happens when the chat can’t help: **Hand over to a team in the inbox**, or **Close the conversation and offer other ways to get help**. Then choose when the chat asks for the customer’s email: **As soon as the chat opens**, **After their first message**, or **Never ask**.
3. **Put the chat on your store.** Turn on the Shopify app embed, copy the snippet, or email it to your developer. The thread updates to **Live on your site** the moment it sees the chat load on your store. Nothing is visible to customers until you install it.
4. **Connect more channels.** Add [WhatsApp](/channels/whatsapp/), [Instagram](/channels/instagram/), [email](/channels/email/) or [Telegram](/channels/telegram/) to the same inbox now, or later from **Settings → Inboxes**.
You can choose **I’ll do it later** at any step. The chat stays ready until you install it.
## What happens next
[Section titled “What happens next”](#what-happens-next)
* [Connect WhatsApp](/channels/whatsapp/) so customers can message you there.
* [Invite your team](/workspace/team/) to share the inbox.
* [Create an agent](/agents/create-an-agent/) or open the one the setup thread made to change how it answers.
## Common questions
[Section titled “Common questions”](#common-questions)
### Is there a password?
[Section titled “Is there a password?”](#is-there-a-password)
No. Fufa signs you in with a code sent to your email each time, or with Google.
### Can I create more than one workspace?
[Section titled “Can I create more than one workspace?”](#can-i-create-more-than-one-workspace)
Yes. Your workspaces are listed under **Your Workspaces**, where **Create Workspace** starts a new one. Each workspace has its own channels, contacts, agents, team and billing.
### I installed Fufa from Shopify. Do I still need to sign up?
[Section titled “I installed Fufa from Shopify. Do I still need to sign up?”](#i-installed-fufa-from-shopify-do-i-still-need-to-sign-up)
No. Installing from Shopify creates your workspace, or reuses one you already have, and signs you in. You land in the inbox with your store already connected.
### I was invited to a workspace. Should I create my own?
[Section titled “I was invited to a workspace. Should I create my own?”](#i-was-invited-to-a-workspace-should-i-create-my-own)
No. Open the invitation email and sign in with the address it was sent to. You join the existing workspace instead. See [Invite your team](/workspace/team/).
# Create an agent
> Describe what your AI agent should do, and Fufa writes its instructions, tone and boundaries. Then you teach it your content, test it in the chat, and turn it on per channel.
You have an AI agent that answers customers on the channels you choose. It uses your instructions, your knowledge and, if you sell on Shopify, your live catalogue and orders. When it can’t help, it hands the conversation to your team.
## Before you start
[Section titled “Before you start”](#before-you-start)
* You need the **Owner**, **Admin** or **Supervisor** role to set up and change agents.
* At least one connected channel, such as [WhatsApp](/channels/whatsapp/) or [live chat](/channels/live-chat/), before the agent can answer customers.
* Optional but recommended: [Connect Shopify](/commerce/shopify/) first, so the agent can look up products and orders.
## Create it
[Section titled “Create it”](#create-it)
[](/clips/agents/create-an-agent.webm)
1. Open **Agents**. Open the agent menu at the top of the agent’s sidebar and select **New agent**. On a new workspace, you’ll see **Create your first agent** instead.
2. Pick a template, such as **Customer Support** or **Sales Assistant**, or select **From scratch**.

3. Under **Describe your agent**, write what it should do in a sentence or two. For example: *Support agent for my clothing store that answers order status, returns and sizing questions, in a warm, short style.* Then select **Generate agent**.

Fufa writes the agent’s name, instructions, style and boundaries, and opens it on **Identity**.
## Shape how it talks
[Section titled “Shape how it talks”](#shape-how-it-talks)
Open **Identity** and change anything Fufa wrote, then select **Save changes**:
* **Name** is what customers see.
* **Instructions** describe how the agent behaves, its goals and what it helps with.
* **Style & Language** sets the tone, for example *Friendly and concise. Use simple language.*
* **Boundaries** lists what the agent must not do or say, such as approving refunds without checking the policy.

## Teach it your business
[Section titled “Teach it your business”](#teach-it-your-business)
Open **Data Sources** and select **Add content**:

* **Add URL** or **Crawl website** to read your site’s pages, such as FAQs, shipping and returns.
* **Upload files** for PDFs and documents.
* **Add text** for anything that isn’t written down elsewhere.
* **Add Q\&A** for exact answers to common questions, such as *What is your return policy?*
Each source shows **Pending** while Fufa reads it, then **Ready**. The agent uses a source only once it’s ready.

## Give it things to do
[Section titled “Give it things to do”](#give-it-things-to-do)
Open **Tools**:
* **Actions** are built-in things the agent can do, such as looking up an order. Turn on the ones it should use.
* **Connectors** let the agent call your own HTTP APIs and MCP servers. Select **Add connector** to add one.
## Test it
[Section titled “Test it”](#test-it)
The **Test chat** sits beside every agent page. Talk to the agent the way a customer would. Select **Guest** to pick a real contact instead and see answers that use their history and orders. The restart button begins a new test conversation. Nothing in the test chat is sent to customers.

Caution
Connected apps run for real in the test chat. If the agent creates or changes something through a connector, the change happens in that app.
## Turn it on
[Section titled “Turn it on”](#turn-it-on)
Open **Deploy**:

1. Under **Where Fufa replies**, turn on each channel the agent should answer. It starts replying there right away.
2. Under **When Fufa can’t help**, choose **Hand to your team** or **Close the conversation**. If you hand over, the agent tells the customer a teammate will reply.
Your team can take over any conversation from the inbox. See [Reply from the inbox](/inbox/reply/#take-over-from-the-ai-agent).
## Check it’s working
[Section titled “Check it’s working”](#check-its-working)
The agent’s **Overview** shows conversations, revenue influenced, and **Questions Fufa couldn’t answer**. Select **Add answer** on any of those questions to teach the agent for next time.
## Common questions
[Section titled “Common questions”](#common-questions)
### Does the agent replace my team?
[Section titled “Does the agent replace my team?”](#does-the-agent-replace-my-team)
No. It takes the first reply and the repetitive questions. When it can’t help, it hands over in the inbox, and anyone on your team can take over a conversation at any time.
### How do I stop the agent?
[Section titled “How do I stop the agent?”](#how-do-i-stop-the-agent)
Turn its channels off on the **Deploy** page, or switch off **Agent is active** under **Settings**.
### Can the agent answer phone calls?
[Section titled “Can the agent answer phone calls?”](#can-the-agent-answer-phone-calls)
Yes. Turn on **Enable voice** on the agent’s **Voice** page, choose a voice, language and greeting, then [connect a phone number](/channels/phone/).
### Can I have more than one agent?
[Section titled “Can I have more than one agent?”](#can-i-have-more-than-one-agent)
Yes. Create an agent per job, for example one for support and one for sales, and turn each one on for different channels.
## Related
[Section titled “Related”](#related)
* [Connect Shopify](/commerce/shopify/)
* [Reply from the inbox](/inbox/reply/)
* [Add live chat to your website](/channels/live-chat/)
# Connect email
> Give a Fufa inbox an email address, either a ready-made Fufa address or your own domain, so customer emails land in the inbox and you or your agent reply from it.
Customers email an address you choose, and those emails arrive in a Fufa inbox as conversations. You or your AI agent reply from Fufa, and the reply goes out from the same address.
## Before you start
[Section titled “Before you start”](#before-you-start)
* You need the **Owner** or **Admin** role in the workspace.
* To use your own domain, such as `support@yourstore.com`, you also need access to your domain’s DNS settings to add 3 records, and access to the mailbox’s settings to turn on forwarding. Allow about 10 minutes. Fufa saves your progress if you stop halfway.
## Connect an address
[Section titled “Connect an address”](#connect-an-address)
1. Go to **Settings → Inboxes** and open an inbox.
2. Under **Channels**, select **Add channel**, then **Email**.
3. Choose how to start:
* **Use a Fufa address** works instantly, with nothing to configure. You can add your own domain later, and conversations stay in the same inbox.
* **Use your own domain** lets customers see your brand, and replies are signed for your domain so they land in the inbox rather than spam.
4. Enter the **Email address** and the **Sender name** customers see next to it, then finish the steps on screen.
## Set up your own domain
[Section titled “Set up your own domain”](#set-up-your-own-domain)
If you chose your own domain, the channel page walks you through two things.
**DNS records.** Add the records shown on the page at your DNS provider: the **Signing records**, the **Bounce records**, and a **DMARC policy**. Each record shows **Waiting** until Fufa finds it, then **Found**. DNS changes can take a while to show up.
**Mailbox forwarding.** Forward your existing mailbox to the address Fufa gives you, so emails customers send you reach the inbox. Choose your provider for the exact steps: **Gmail / Google Workspace**, **Microsoft 365** or **Other**. Gmail sends a confirmation link before forwarding starts. Open it under **Mailbox forwarding** and select **Confirm**.
## Set your sender details
[Section titled “Set your sender details”](#set-your-sender-details)
Under **Sender**, set the **Sender name** and a **Signature**. They’re used on every reply, whether you or your agent sends it.
## Check it works
[Section titled “Check it works”](#check-it-works)
Send an email to the address from another account. It appears in the inbox as a new conversation. Reply from Fufa, and the reply arrives in that account’s mailbox from your address.
## Common questions
[Section titled “Common questions”](#common-questions)
### Should I start with a Fufa address or my own domain?
[Section titled “Should I start with a Fufa address or my own domain?”](#should-i-start-with-a-fufa-address-or-my-own-domain)
Start with a Fufa address if you want to be live in a minute. Switch to your own domain when you’re ready. Your own domain looks more trustworthy to customers, and signed replies are less likely to land in spam.
### Where do I put the address?
[Section titled “Where do I put the address?”](#where-do-i-put-the-address)
On your contact page, in your order confirmation emails, and anywhere else customers look for help. Messages sent to it land in the inbox, and replies go out from it.
### Why does the page say Sending is paused?
[Section titled “Why does the page say Sending is paused?”](#why-does-the-page-say-sending-is-paused)
Fufa paused sending from this address, for example because of bounces. Fix the cause shown on the page, then select **Try sending again**.
### Can an AI agent reply to emails?
[Section titled “Can an AI agent reply to emails?”](#can-an-ai-agent-reply-to-emails)
Yes. Open the agent’s **Deploy** page and turn on email under **Where Fufa replies**. See [Create an agent](/agents/create-an-agent/).
## Related
[Section titled “Related”](#related)
* [Reply from the inbox](/inbox/reply/)
* [Add live chat to your website](/channels/live-chat/)
* [Create an agent](/agents/create-an-agent/)
# Connect Instagram
> Link your Instagram professional account through Meta so direct messages arrive in your Fufa inbox, where you or your AI agent reply.
Your Instagram account is connected to a Fufa inbox. Direct messages customers send you arrive in the inbox, and your replies go back to them in Instagram.
## Before you start
[Section titled “Before you start”](#before-you-start)
* You need the **Owner** or **Admin** role in the workspace.
* An Instagram professional account (Business or Creator) linked to a Facebook Page.
* A Facebook account that can manage that Page.
* Your phone with the Instagram app, to allow message access.
## Connect your account
[Section titled “Connect your account”](#connect-your-account)
1. Go to **Settings → Inboxes** and open the inbox Instagram messages should land in.
2. Under **Channels**, select **Add channel**, then **Instagram DMs**.
3. Fufa sends you to Meta. Sign in with Facebook, choose the Facebook Page and the Instagram account linked to it, and approve access.
4. Meta sends you back to Fufa, which shows **Channel connected successfully!**
## Allow access to messages
[Section titled “Allow access to messages”](#allow-access-to-messages)
Instagram only delivers DMs to tools you allow.
1. In the Instagram app, open **Settings and activity → Messages and story replies → Message controls → Connected tools**.
2. Turn on **Allow access to messages**.
Without this, Instagram won’t deliver DMs to Fufa, even though the channel shows as connected.
## Check it works
[Section titled “Check it works”](#check-it-works)
From another Instagram account, send your business account a DM. It appears in the inbox within a few seconds. Reply from Fufa, and the reply shows up in Instagram.
The channel’s **Setup** card shows the connection status. **Connected** means Fufa can receive and reply to messages.
## Common questions
[Section titled “Common questions”](#common-questions)
### Why aren’t Instagram DMs arriving in Fufa?
[Section titled “Why aren’t Instagram DMs arriving in Fufa?”](#why-arent-instagram-dms-arriving-in-fufa)
Check that **Allow access to messages** is turned on in the Instagram app, under **Settings and activity → Messages and story replies → Message controls → Connected tools**. Then open the channel in **Settings → Inboxes** and check the **Setup** card. If it shows **Access revoked**, **Expired** or **Needs attention**, select **Reconnect**.
### Can I connect a personal Instagram account?
[Section titled “Can I connect a personal Instagram account?”](#can-i-connect-a-personal-instagram-account)
No. Instagram only gives message access to professional accounts. Switch your account to Business or Creator in the Instagram app, link it to a Facebook Page, then connect it.
### What does Reconnect do?
[Section titled “What does Reconnect do?”](#what-does-reconnect-do)
It sends you through Meta’s sign-in again and renews Fufa’s access. Use it when the status shows **Access revoked** or **Expired**, for example after changing your Facebook password or Page roles.
### Can an AI agent answer Instagram DMs?
[Section titled “Can an AI agent answer Instagram DMs?”](#can-an-ai-agent-answer-instagram-dms)
Yes. Open the agent’s **Deploy** page and turn on Instagram under **Where Fufa replies**. See [Create an agent](/agents/create-an-agent/).
## Related
[Section titled “Related”](#related)
* [Connect WhatsApp](/channels/whatsapp/)
* [Reply from the inbox](/inbox/reply/)
* [Create an agent](/agents/create-an-agent/)
# Add live chat to your website
> Create a Fufa chat widget, style it to your brand, and paste one script tag on your site, or turn on the Shopify app embed, so visitors can chat with you and your agent.
A chat button appears on your website. Visitors open it to message you, and every conversation lands in your Fufa inbox, where you or an AI agent reply.
If you connected Shopify while [creating your workspace](/start/create-a-workspace/), Fufa already made this chat for you. Skip to [Put the chat on your site](#put-the-chat-on-your-site).
## Before you start
[Section titled “Before you start”](#before-you-start)
* You need the **Owner** or **Admin** role in the workspace.
* Access to your website’s code, or to your Shopify theme editor.
## Create the chat
[Section titled “Create the chat”](#create-the-chat)
1. Go to **Settings → Inboxes** and open an inbox.
2. Under **Channels**, select **Add channel**, then **Live Chat**.
3. On the **General** tab, enter the **Name** shown in the chat header and add an **Avatar**.
4. Under **Allowed origins**, add every site the chat will run on, with its full address including `https://`, for example `https://shop.example.com`. The chat only loads on these sites.
5. If you sell on Shopify, choose your **Connected store** so the chat knows your products and orders.
6. Select **Create Live Chat Widget**. Fufa shows **Live chat channel created**.
Each inbox can hold one live chat.
## Make it look like your brand
[Section titled “Make it look like your brand”](#make-it-look-like-your-brand)
All of these are optional. The **Live preview** shows changes before you select **Save changes**.
* **Appearance**: the **Brand color**, the launcher’s color, size, icon and **Placement** on the page.
* **Conversation**: the **Greeting**, **Quick suggestions** that visitors can tap before they type, and **Linked channels** such as your WhatsApp number, offered as other ways to reach you.
* **Proactive messages**: messages that greet visitors before they start a chat, triggered immediately, on scroll, after a delay, or on exit intent.
* **Access & leads**: whether visitors sign in with an email code, a phone code or Google, and whether the chat asks for their name, email or phone. You can also allow file uploads and voice calls.
## Put the chat on your site
[Section titled “Put the chat on your site”](#put-the-chat-on-your-site)
**On any website**: open the chat’s **General** tab and copy the **Embed snippet**. Paste it just before `