Set up AI Agent actions — Human Handoff, Smart Data Gathering for lead generation, and Custom API Actions to connect external tools.
Define what your Al Agent can do during conversation. From answering questions using real-time API data, collecting leads and market research data, to performing custom tasks.
Human Handoff
Section titled “Human Handoff”The Human Handoff feature ensures that conversations requiring human attention are seamlessly transferred to a Human Agent.
It is particularly useful for handling questions beyond the AI Agent’s Knowledge Base or when users explicitly request to speak to a person. During Human Handoff, the AI Agent pauses, and the Human Agent takes over the conversation via the Inbox.
Here’s what happens on the user’s side:
- The user interacts with the AI Agent.
- If the request is beyond the AI’s capability or the user explicitly requests a human, the AI notifies the user about the transfer.
- The conversation is unassigned from the AI and assigned to a Human Agent.
- The Human Agent resolves the query or reassigns the AI Agent to continue.

And here’s what you’ll see inside the Quickchat AI interface:
- The unassigned conversation appears in the Inbox.
- Your team member reviews the AI Summary to understand the conversation so far.
- The team member takes over the conversation and handles the user’s request.
- The team member either marks the conversation as resolved or reassigns.

Enable Human Handoff
Section titled “Enable Human Handoff”Navigate to Actions & MCPs in the left sidebar, find the Human Handoff card under Quickchat AI Actions, and toggle the switch to “on.” Click Edit Action to configure the details.

You can then configure the following options:
Human Agent’s Availability
Define the availability of Human Agents to ensure that Handoff requests are only initiated during working hours.
- Specify Working Hours: Set start and end times and select working days.
- Select Time Zone: Ensure the schedule matches your region.
- Configure an Out-of-Hours Message: Let users know when no Human Agents are available.

Question
Section titled “Question”Define the question the AI will ask before initiating Handoff.
*Example: Would you like me to connect you with our Customer Support team?*

Confirmation
Section titled “Confirmation”Specify the confirmation message sent when the Handoff is initiated.
*Example: I understand. I will transfer you to our Customer Support team. Please wait while I connect you.*

AI Summary
Section titled “AI Summary”Enable AI Summaries to automatically generate a short note summarizing the conversation so far. This summary provides the Human Agent with all the context needed to quickly address the user’s request.

Handoff Rules
Section titled “Handoff Rules”Describe the situations in which Human Handoff should be triggered. Each rule has a Name, a plain-language Description, and a State toggle so you can enable or disable rules without deleting them.
Quickchat AI ships with a default set of rules covering the most common handoff triggers:
- Media Message — the user sent an image, file, or other media the AI can’t process.
- User Frustration — the user is explicitly angry, frustrated, or dissatisfied.
- Customer Support Suggestion — the AI Agent has told the user to contact customer support as the next step, or has clearly ended AI-based assistance.
- Lack Of Knowledge — the AI Agent has acknowledged it doesn’t have the necessary information.
- Irrelevant Advice — the AI Agent has repeatedly tried to help but the user is still not satisfied.
You can toggle any of these on or off, and add your own rules with a custom Name and Description that tells the AI when to trigger.
In addition to rules, you can list Keywords that will always force a Human Handoff regardless of context — useful for compliance words like “lawsuit”, “GDPR”, or “chargeback” that you never want the AI to handle.
Topic routing
Section titled “Topic routing”When Human Handoff fires, Topic routing sends the conversation to the human agent best suited to handle that topic instead of leaving it unassigned in a shared queue.
Configure routing by mapping each topic (defined under Insights → Manage Topics) to one or more team members. When a handoff is triggered, Quickchat reads the conversation’s detected topic and routes the conversation to one of the agents assigned to that topic. If no rule matches, the conversation is left unassigned for any teammate to pick up from the Inbox.
Email Notifications
Section titled “Email Notifications”Configure email addresses to receive notifications when a new conversation requires a Human Handoff.
Here’s how it looks:

Smart Data Gathering / Lead Generation
Section titled “Smart Data Gathering / Lead Generation”Smart Data Gathering allows your AI Agent to collect user information seamlessly during conversations. It engages with users naturally, asking relevant questions to gather details like name, email, phone number, or any other information you require. This data can then be sent to your CRM or other systems, enabling you to follow up effectively and convert potential leads into customers.
How it works
Section titled “How it works”Smart Data Gathering operates within the existing conversation flow, ensuring that the interaction feels natural and non-intrusive.
When a user interacts with your AI Agent, it:
- Detects opportunities to collect information, such as when a user expresses interest in your services or products.
- Asks specific questions tailored to your needs, like:
- “Can I have your name to better assist you?”
- “What’s the best email to contact you on?”
- Gathers and stores the responses, making them available for review or integration with your CRM system.
The feature is designed to minimize friction while maximizing the quality of leads captured.
Setting it up
Section titled “Setting it up”Enable Smart Data Gathering
Section titled “Enable Smart Data Gathering”- Navigate to the Actions & MCPs tab
- Find Smart Data Gathering card
- Toggle the feature on

Data to Collect
Section titled “Data to Collect”Select contact details to capture.
- Email address
- First name
- Phone number

When to Ask for Data
Section titled “When to Ask for Data”Define when the AI Agent should ask for contact details.
- After exchanging a few messages
- Immediately after the user expresses interest

How to Ask for Data
Section titled “How to Ask for Data”Customize how the AI Agent asks for information.
- Subtle: Integrates questions naturally into the conversation
- Direct: Explicitly requests the information in a straightforward manner

Smart Lead Generation enables your AI Agent to collect user contact details efficiently while ensuring compliance and providing a seamless conversational experience.
Exporting the captured contact details
Section titled “Exporting the captured contact details”Follow these steps to export the details captured by your AI Agent:
- Go to the Inbox
- Click the export file icon to access export options.
- Select Export Gathered Data from the dropdown menu.
- Set Date Range: Specify the start and end dates for the data you want to export.
- Choose Format: Select the file format for your export (CSV, XLSX).
- Download: Click Download to save the exported data to your computer.
Custom Actions
Section titled “Custom Actions”Custom Actions let your AI call external tools during a conversation — search internal systems, create tickets, trigger alerts, or fetch fresh data that isn’t in the Knowledge Base. Find them in Actions & MCPs under the Custom Actions section.
Click + Add Action to create one. The dropdown offers:
- API Action — call any REST endpoint over HTTP. The most general option; use this for anything that has a URL and accepts JSON.
- MCP — connect an external MCP server in one click and let the AI use the tools it exposes. See MCP Actions below.
- HubSpot Action — pre-built connection to your HubSpot CRM. Use it to look up contacts, deals, or tickets without managing API tokens yourself.
- Google Sheets — read and write a spreadsheet you connect.
- Shopify MCP — connect a Shopify store via the Shopify MCP server so the AI can query products, orders, inventory, and customers. Only one Shopify MCP action per scenario.
How Custom Actions work
Section titled “How Custom Actions work”- Choose an action type: API Action, MCP, HubSpot Action, Google Sheets, or Shopify MCP. Configure the connection and instructions the AI needs.
- During a chat, the AI uses the action description and available tool or parameter details to decide when to run it.
- Quickchat executes the call and returns the result to the AI. The AI reads the response and replies to the user in natural language.
- Test or connect the action from its editor before using it in conversations.
Create an API Action
Section titled “Create an API Action”- Go to Actions & MCPs.
- Click + Add Action in Custom Actions and choose API Action.
- Fill in Details:
- Name: clear and descriptive.
- Description: when to use it and what to include in parameters.
- Configure Connection:
- Action Type: HTTP method (GET, POST, etc.).
- Action endpoint URL: full API URL.
- Headers: add any required headers like
Authorizationorcontent-type: application/json.
- Define Parameters: give each parameter a name, location (query, body, or header), and a description that tells the AI how to compose the value. Path values aren’t a parameter location; insert them directly in the endpoint URL using
{{placeholder}}templating. - Test request and verify the response. Then click Done.
Beyond the request itself, an API Action has three optional settings worth knowing: Save to memory, Run only when, and Response filter.
Save to memory
Section titled “Save to memory”Capture a value from the API response and store it in the conversation’s memory under a key you choose. Later Actions can reuse it as {{metadata_<key>}}, and it appears in the conversation details (Inbox, the API, and exports).
Reach for this when one Action produces something a later Action needs. A lookup Action can save a customer_id from its response; a follow-up Action then sends {{metadata_customer_id}} without the AI having to copy the value across.
In the Save to memory section of the API Action editor, give the captured value a memory key and point it at the part of the response you want to keep. From then on it’s a metadata variable like any other.

Run only when
Section titled “Run only when”Restrict an Action so it runs only when conditions on the conversation metadata hold. The conditions are checked on our side, at call time, after the AI has decided to call the Action but before any request is sent, so they can’t be talked around from the chat.
This is the right tool for privileged or irreversible Actions (banning a member, issuing a refund, deleting a record). A line in your prompt that says “only admins can do this” is a helpful instruction, but it isn’t a security boundary: a determined user can argue with the model or attempt a prompt injection. A run-condition is deterministic and lives outside the prompt, so it holds regardless of what the conversation says.
- The run-condition is the boundary. It’s evaluated server-side and isn’t part of the prompt the model reads. This is what actually stops the Action from running.
- The prompt rule is the user experience. Keep a line in your prompt too, so the AI declines politely and explains why instead of going silent.
Add conditions in the Run only when section of the Action editor. Click Add condition, pick a metadata key (for example telegram_sender_is_admin), and choose how to compare it:
| Condition | Passes when the metadata value… |
|---|---|
| is true | is truthy |
| is false | is falsy |
| exists | is present on the conversation |
| does not exist | is absent |
| equals | matches a value you specify |
| does not equal | differs from a value you specify |
The Action runs only when every condition holds. A condition on a key that isn’t set on the conversation doesn’t pass.

When a condition fails, no request is sent and the AI tells the user it can’t do that. Below, the same ban request is blocked for a non-admin and allowed for an admin, with nothing changed but who is asking:


Response filter
Section titled “Response filter”By default the AI sees the full API response. Add JSONPath expressions in the Response filter section to limit the AI to specific parts of it.
Two common reasons to filter:
- Hide sensitive fields. Keep customer emails, payment details, or internal ids out of the model’s context when the endpoint returns more than the AI needs.
- Shrink the prompt. Chatty APIs can return large payloads; filtering to the few fields that matter keeps the response small and the AI focused.
Add one or more JSONPath expressions and the AI receives only the matched parts. For example, $.data.items[*].name keeps just the item names from a larger response.

Best practices
Section titled “Best practices”- Be explicit in descriptions. Tell the AI when to use the action and what each parameter should contain.
- Keep scopes minimal. Only include the headers and tokens the endpoint needs. For Jira, use the Basic header derived from your Atlassian email and API token.
- Test before rollout using the Test request panel. Confirm status codes and sample payloads look right in the target tool.
Tutorials
Section titled “Tutorials”- Connect an AI Agent to Jira tickets (canonical reference) or the narrated blog walkthrough
- Send Slack notification with an AI Action
MCP Actions
Section titled “MCP Actions”MCP (Model Context Protocol) is an open standard that lets an AI use another service’s tools directly. Instead of you describing an endpoint and its parameters by hand, an MCP server publishes its own tools, and your AI Agent discovers and uses them.
Connecting one takes a single click for most services. Go to Actions & MCPs, click + Add Action, and choose MCP.
Connect from the catalog
Section titled “Connect from the catalog”The MCP screen opens on a searchable catalog of well-known services, grouped by category (Popular, Customer support, CRM & sales, Scheduling, E-commerce, Payments & billing, Marketing & email, Communication, Productivity, Data & analytics, Search & web, Travel & booking, Design, Developer & infra).
- Find the service you want, by browsing or with the search box.
- Click its tile. Quickchat checks the server and discovers the tools it offers.
- If the service requires you to sign in, an Authorization required panel appears. Click Connect with <service>, approve access in the popup that opens, and the panel switches to connected.
- The action is created, enabled, and its tools are listed. Your AI Agent can use them from the next message on.
Connect a server that is not in the catalog
Section titled “Connect a server that is not in the catalog”Click Enter a URL manually below the catalog, then:
- Paste the MCP server URL (must start with
https://). - If the server authenticates with a static token rather than a sign-in flow, open Connection headers (optional) and add the header it expects, for example
Authorization: Bearer <your-token>. - Click Connect.
Use Browse the catalog to go back to the tile view. If a service you need is missing, Missing an integration? Suggest one opens a pre-filled email to our team.
Choose which tools the AI can use
Section titled “Choose which tools the AI can use”Once connected, the action lists every tool the server exposes, each with its own toggle. Turn off anything you do not want the AI to call — a booking server’s read-only lookups can stay on while its cancellation tool stays off.
Default tool activation decides what happens when the server adds a new tool later: on, and new tools are available immediately; off, and you enable each one deliberately.
What visitors see
Section titled “What visitors see”While a tool runs, the chat widget shows a short status line describing what the AI is doing, derived from the tool’s name — a tool called search_flights shows “Searching flights…”. This gives the visitor something meaningful during the pause instead of a bare typing indicator. It is generated automatically; there is nothing to configure.
Reconnect and disconnect
Section titled “Reconnect and disconnect”- Reconnect — runs the authorization again. Use it if the connection expired, if you want to authorize a different account, or if the server’s tool list changed and you want to pick the new tools up.
- Disconnect — revokes the stored authorization and takes the action offline. The action itself stays in your list, so you can reconnect later without setting it up again.
Changing the MCP server URL on a connected action clears its authorization and switches the action off, because credentials issued by one server are never reused against another. Authorize again to bring it back online.
Troubleshooting
Section titled “Troubleshooting”| What you see | What it means |
|---|---|
| Authorization failed | The sign-in did not complete. Try Reconnect; if the popup was closed early, nothing was saved. |
| Connected, but loading tools failed | Authorization succeeded but the tool list did not load. Click Reconnect. |
| No tools were found on this server. Try reconnecting. | The server authorized but published no tools. Confirm the account you approved has access to the data you expect. |
| Enter a valid URL, starting with https:// | The URL could not be read. Use the server’s full https:// address. Quickchat always connects over https so credentials are never sent unencrypted. |
| The action switched itself off | Its authorization expired or was revoked at the provider. Open the action and click Reconnect. |