Search Results for 'wordpress'
Found 143 results
How to Change Your Email Address in Chatwoot
Chatwoot allows you to update the email address associated with your account at any time. This includes changing the original email address you used when creating your Chatwoot account. Follow this step-by-step guide to securely update your email address. Important: After changing your email address, you'll need to verify the new address before it becomes active. Step 1: Access Your Profile Click on your avatar image in the bottom left corner of the screen to open your profile menu. Step 2: Open Profile Settings From the profile menu, select "Profile Settings" to view all your profile configuration options. Step 3: Update Your Email Address In the Profile Settings page, locate the "Email Address" field. Clear your current email address and enter your new one, making sure it's spelled correctly. Step 4: Save Your Changes - Click the "Update" button to save your new settings - Wait for the confirmation message Step 5: Verify Your New Email Address Email verification is required: - Check your new email inbox for a verification message from Chatwoot - Open the verification email - Click on the verification link provided in the email - This will confirm your new email address Final Step: Sign In with Your New Email Once verification is complete: - Sign out of your current Chatwoot session - Sign back in using your new email address and existing password Success! Your email address has been updated and verified. You can now use your new email for all Chatwoot communications and logins.
👝 Setup accountA complete guide to teams in Chatwoot
A team is a group of agents in your account, organized around a shared responsibility — for example, a Sales team, a Support team, or an Engineering team. Teams are an account-level concept: they live across inboxes, and a single agent can belong to as many teams as makes sense. You use teams when you want to route a conversation to a group of agents, not a specific person — so that anyone on the right team can pick it up. Common patterns: - "Send all billing questions to the Finance team." - "Anything from Enterprise customers goes to the Senior Support team." - "Bug reports get routed to Engineering." A team has three things: - A name (required, unique within your account) - An optional description - An auto-assign toggle that controls whether conversations sent to the team are automatically distributed to a member, or left for someone to pick up manually A conversation can have both a team and an individual assignee. The team scopes who can be auto-assigned; the assignee is the one specific agent currently responsible for the reply. Either, both, or neither can be set on a conversation at any time. Permissions: only administrators can create, edit, or delete teams. Regular agents can see the list of teams and the conversations assigned to teams they belong to, but cannot manage teams. Managing teams Creating a team Creating a team is a three-step wizard. Step 1 — Open the create flow. Go to Settings → Teams and click Create new team in the top-right of the page. Step 2 — Set the basics. Fill in the form: Field What it's for Team Name A short, recognizable name. E.g. Sales , Support , Engineering . Required and must be unique in your account. Team Description A one-line description of what the team handles. E.g. "Resolves queries related to sales of Hopkins products." Allow auto assign for this team When ticked, conversations assigned to this team are automatically distributed to its agents. When unticked, conversations stay in the team's queue as unassigned until someone picks them up. Click Create team. Step 3 — Add agents. Pick the agents who should be members of this team. Tick the checkbox next to each agent and click Add agents. Only agents you add here will see the team's conversations and be eligible for auto-assignment from it. Step 4 — Finish. Click Finish on the confirmation screen. Your new team appears in the team list at Settings → Teams. Editing a team 1. Go to Settings → Teams. 2. Find the team you want to edit and click the settings icon next to it — two horizontal sliders (tooltip: Edit team). 3. You'll be taken back through the same multi-step flow used during creation: - Edit the basics — change the name, description, or auto-assign setting. Click Update team. - Edit agents — add or remove members by ticking/unticking the checkboxes. Click Update agents in team. - Finish — confirm the changes. To discard changes mid-flow, use the Back button at the top-left of the screen. Deleting a team 1. Go to Settings → Teams. 2. Find the team you want to delete and click the trash (bin) icon next to it (tooltip: Delete). The icon turns red on hover. 3. A confirmation modal appears with the title "Are you sure you want to delete the team?" and the message "Deleting the team will remove the team assignment from the conversations assigned to this team." 4. Type the team's name into the confirmation field — this is required to enable the delete button. Then click Delete to confirm, or Cancel to back out. What happens to existing conversations when you delete a team? The conversations themselves are not deleted — but their team assignment is cleared. Each conversation that was assigned to the deleted team will simply have no team going forward; their individual assignees and other attributes are unchanged. If you want the conversations re-routed to a different team, do that before deleting. Note: there's no requirement that a team be empty before deletion. You can delete a team that still has agents assigned to it — the agents just lose their membership; their user accounts stay intact. How to use teams Once a team exists, it becomes available almost everywhere conversations get routed, filtered, or analyzed. Here's the full set of places you can use a team in Chatwoot. 1. Assign a conversation to a team The most direct use. Open any conversation, find the Team field in the conversation actions panel on the right sidebar, and pick a team from the dropdown. - If the team has auto-assign enabled, an agent on that team is picked automatically and becomes the assignee. - If the conversation has an existing assignee who is not a member of the new team, the assignee is cleared so auto-assignment can pick a valid one. - If auto-assign is off, the conversation stays unassigned but is now scoped to the team — anyone on the team can pick it up. You can change or remove the team at any time from the same dropdown. 2. Assign teams in bulk In the conversation list, select multiple conversations using the checkboxes and use the bulk action bar at the top to assign a team to all of them at once. Useful during incidents — bulk-route every affected conversation to the team that owns the fix. 3. Filter conversations by team In the conversation list, you can narrow what you see to a specific team: - Use the Team filter in the conversation list filter panel. - Or save a folder with a team condition for one-click access. Common saved folders worth building: - My team's open queue — Team = Support, Status = Open - Engineering bugs — Team = Engineering, Label = bug-report - Unassigned in my team — Team = Support, Assignee = None 4. Use teams in automation rules Automation rules integrate with teams in two ways: - As a condition — "If team is Engineering, do X." - As an action — "Assign team Engineering", or "Remove assigned team." This is how you wire up rules like: - "Any conversation containing the word invoice → assign team Finance." - "Any conversation labeled vip → assign team Senior Support and set priority High." 5. Use teams in macros When building a macro, the action picker offers: - Assign Team — set the team - Remove Assigned Team — clear it So a macro like Escalate to engineering can in one click: assign team Engineering, set priority High, add label escalated, and send a templated message. 6. Filter and scope reports Under Reports → Team, you get a dedicated Team Report that shows the six core metrics (Conversations Created, Incoming Messages, Outgoing Messages, Avg First Response Time, Avg Resolution Time, Resolutions Count) scoped to a single team. Pick a team from the filter, set a date range, and you're comparing team-level performance with the same toolkit as inboxes and agents. CSAT and SLA reports also accept a team filter, so you can answer: - "How does Engineering's CSAT compare to Support's?" - "How often is the Senior Support team breaching SLA?" How teams interact with inboxes and assignees It's easy to mix these three concepts up. The difference matters: Concept Scope What it controls Inbox Per channel Which agents can see and reply to conversations on that channel Team Account-wide Which agents should handle a conversation, used for routing and reporting Assignee Per conversation Which one specific agent is currently responsible for replying Frequently asked questions Can an agent be in multiple teams? Yes. Agents can belong to as many teams as you want. A single agent can be in Support, Engineering, and VIP Response simultaneously. Can a conversation belong to multiple teams? No. A conversation has at most one team at a time. If you need multi-team awareness, use labels alongside team assignment. What happens if I turn auto-assign off? New conversations assigned to the team after the change won't be auto-distributed; they'll wait in the team's unassigned queue. Existing assignments are unaffected. If I remove an agent from a team, what happens to their conversations? Conversations they were already assigned to stay assigned to them — being removed from the team doesn't yank existing work. New auto-assignments in that team will skip them. Can a non-admin create or edit a team? No. Team management is administrator-only. Non-admins can see teams and work on team-assigned conversations, but cannot modify the team list or membership. Why does the assignee disappear when I switch a conversation's team? If the current assignee isn't a member of the new team, Chatwoot clears the assignee so auto-assignment can pick a valid team member. This prevents conversations being "stuck" with an agent who no longer belongs to the responsible team. Are deleted teams recoverable? No. Team deletion is permanent. The conversations survive (with their team field cleared) but the team record itself is gone. Re-create it with the same name if needed, but it's a brand-new team. Is there a limit on how many teams I can create? There's no hard cap in the product. Practical advice: keep the count small enough that the team list fits on one screen. If you find yourself with twenty teams, you've probably split too finely.
🔎 Advanced features explainedService Level Agreements
As the service provider, your Service Level Agreements (SLAs) are contractual arrangements between you and your customers that define the level of service you commit to deliver. Your SLAs specify the expected performance metrics, such as response times, availability, and resolution times, that you have agreed to provide. These SLAs hold you, as the service provider, accountable for the quality of service you deliver, ensuring a consistent and reliable level of support for your customers. Chatwoot allows you to track the following metrics: - FRT (First Response Time): This metric refers to the time it takes for the agent to respond to a customer's initial inquiry or request. It is a critical measure of responsiveness, as customers expect prompt attention to their issues or questions. - NRT (Next Response Time): This metric focuses on the time between the customer's follow-up message and the agent's subsequent response. It ensures that the provider maintains a consistent level of engagement and keeps the conversation moving forward. - RT (Resolution Time): This metric captures the total time it takes for the agent to fully resolve the customer's issue or query, from the initial contact to the final resolution. It is a key indicator of the provider's efficiency and effectiveness in addressing customer needs. Creating an SLA You can configure SLAs from the settings page, an admin is allowed to create and delete SLAs, please note that you cannot modify or change an SLA once it's created. To create an SLA, you need to add at-least one metric to be tracked. Applying an SLA You can use an automation rule to assign an SLA when a conversation event is triggered. Here's an example of assigning the "Enterprise P0" SLA when a conversation is created by a specific email address and the priority is set to Urgent. Once a conversation matches the SLA conditions and the events, the SLA policy is automatically applied. Once an SLA is applied, it cannot be removed from the conversation. Conversations with an active SLA, which is close to a threshold will show up in the UI as follows Applying SLA for a Team You can use Automation Rules to automatically apply specific SLAs to conversations handled by different teams. In the example above, the automation rule monitors the assigned team and the conversation status. When a conversation is assigned to the Sales Team, the Enterprise PO SLA is automatically applied, and SLA tracking begins immediately. Similarly, you can create automation rules to apply different SLAs based on inboxes, companies, contacts, assignees, custom attributes, and more. By combining Automation Rules with SLAs, you can tailor response and resolution targets to match your unique support and business workflows.
🔥 CaptainAdd FAQs and review FAQ suggestions in Captain
Discover FAQs are question and answer pairs your assistant uses to reply. You can write them yourself, and Captain suggests new ones from your documents and from questions customers keep asking. Plan & access: Startups, Business or Enterprise Pricing & Plans. Administrators write and edit FAQs. Anyone can review FAQ suggestions; agents see only suggestions from conversations they can access. Set up & try Before you start - An assistant with some documents. See Add documents to Captain's knowledge. - For suggestions from conversations, turn on Generate FAQs from resolved conversations in the assistant. See Set up a Captain assistant and connect your inboxes Write an FAQ 1. Go to Captain > FAQs. 2. Click Create new FAQ. 3. Enter the question and the answer, choose the assistant, and click Create. Review FAQ suggestions Captain groups recurring customer questions into suggestions and ranks them by customer demand. Suggestions are written in your account's language. Suggestions only come from resolved conversations where an agent replied. Conversations Captain handles on its own do not create suggestions. 1. Go to Captain > FAQs and click Review suggestions (or open FAQ suggestions). 2. Open a suggestion. Source conversations shows the conversations behind it. 3. Edit the question or answer if needed and click Save changes. 4. Click Approve to add it to Captain's knowledge, or Dismiss to drop it. FAQs Captain generates from a document are listed under that document's Related FAQs. FAQs created from your documents go live straight away and need no approval. Test it Ask the approved question in the assistant's Playground and check it uses your answer. Get value - Review suggestions weekly. They come from real customer questions, so they fill the gaps that matter most. - Keep answers short and specific. One question per FAQ. - The assistant's Overview shows Knowledge coverage: approved FAQs against suggestions waiting for review. A banner appears when suggestions are ready. - Search with Search FAQs..., and select several to delete at once. Troubleshoot Symptom Likely cause What to do No suggestions ever appear Generate FAQs from resolved conversations is off, or few conversations have been resolved yet. Or no agent replied in the resolved conversations. Suggestions need at least one agent reply. Turn it on in the assistant and give it time Assistant still gives the old answer The FAQ is a suggestion, not approved Approve it Cannot create or edit an FAQ You are not an administrator Ask an administrator, or approve suggestions instead An agent sees fewer suggestions than an admin Agents see only suggestions from conversations they can access Expected No accessible source conversations were found. The conversations are in inboxes you cannot see, or were deleted Ask an administrator with access to review it More causes: Troubleshoot Captain.
🔥 CaptainSet up a Captain assistant and connect your inboxes
Discover An assistant answers customers in the inboxes you connect it to, and hands the conversation to your team when it cannot help. Plan & access: Startups, Business or Enterprise Pricing & Plans. Administrators create, edit and delete assistants. Agents can view them and use the Playground. Each inbox can have one assistant. Set up & try Before you start - At least one inbox to connect (live chat, WhatsApp, Instagram, email and others). - Some knowledge to add straight after: website pages, PDFs or FAQs. Without knowledge the assistant has little to answer from. - Captain credits: every assistant reply to a customer uses credits. 1. Create the assistant 1. Go to Captain > Assistants. 2. Start the new assistant: - No assistant yet: click Create a new assistant on the empty page. - You already have an assistant: open the assistant switcher next to the assistant's name and click Create Assistant. 3. Fill in: Name, Description and Product Name are required. Description can be up to 500 characters. - Name: an internal name, for example "Support assistant". - Description: what the assistant is for. Write a purpose, not instructions. - Product Name: the product it supports. It uses this when it talks about your product. Captain only answers questions about the product you name here, so use your brand or product name, not one narrow feature. 4. Choose features (all start off): - Generate FAQs from resolved conversations: Captain suggests new FAQs from resolved conversations. See Add FAQs and review FAQ suggestions in Captain. - Capture key details as memories from customer interactions. See Use Captain Memories. - Include source citations in responses: the reply shows which document it used. 5. Click Create. - If this is your first assistant, Chatwoot opens its FAQs. - If you used the switcher, Chatwoot stays on the assistant you were viewing. Select the new assistant in the switcher before the next step. 2. Connect an inbox 1. Select the new assistant in the assistant switcher, then go to Inboxes. 2. Click Connect a new inbox, choose the inbox, and confirm. Until an inbox is connected, the assistant's Overview shows: "This assistant isn't connected to any inbox yet, so it won't respond to conversations." 3. Set what it says and when it closes Open the assistant's Settings. - Basic settings: turn on Allow access to contact information if the assistant should use the contact's details when replying. - System settings: - Handoff message: what the assistant says when it passes the conversation to your team. - When customers stop replying: choose the Action when the customer stops replying and how long to wait (5 minutes to 24 hours; the default is 60 minutes). - Let Captain review it (recommended): Captain decides whether to resolve or hand off. This is the default. - Always resolve: Captain resolves every conversation after the wait. - Wait for the customer: Captain never resolves on its own. It can still hand off if the customer asks. - Send a message when resolving (on by default) sends the Resolution Message before Captain resolves. Test it 1. Open the assistant and go to Playground. 2. Ask the questions your customers ask most. Check the answers are accurate, short and in your tone. 3. Ask something it should not know. Check it says it cannot help and offers to connect you with your team. It hands off when you accept. 4. The reply can take a few seconds to appear; you can keep the page open while it works. 5. Then send a real message to the connected inbox, for example from your website widget, and watch the reply arrive. Playground messages use credits, the same as replies to customers. Try changes before you save them In the Playground, open Test setup to try changes without touching the assistant. Changes apply only to this playground session unless you save them. - Knowledge: paste text into Reference text to test an answer before it is a document. Click Add document permanently to keep it. - Scenarios, Guidelines and Guardrails: add a temporary item with Add to test (↵), or use Include in this test to switch saved ones on or off for this test. Click Add scenario permanently, Add guideline permanently or Add guardrail permanently to keep one. - Under each reply, Run details shows the scenarios and rules used, tool calls and any handoffs. - Reset test setup clears everything temporary. Get value - Add knowledge next: Add documents to Captain's knowledge. - Decide who it replies to and when: Control who Captain replies to and when. - Shape its answers: Set Captain's guardrails, guidelines and scenarios. - Check the assistant's Overview for conversations handled, Knowledge coverage and a Captain summary. - Hand a conversation to the assistant yourself: in the conversation's assignee dropdown, choose the assistant (only the assistant connected to that inbox is listed). The conversation moves to pending and the assistant takes over, even if the audience or schedule rules would have skipped it. To take it back, assign it to a person. - Use the assistant switcher (Switch between assistants) if you run several, for example one per brand or language. - The assistant reads the conversation's earlier public messages, including ones sent before it was connected. It never sees private notes. - To see how the assistant is doing, use its Overview. See Captain Overview and reports. Troubleshoot Symptom Likely cause What to do Assistant never replies No inbox connected Connect one in Inboxes Cannot connect an inbox The inbox already has an assistant Disconnect it from the other assistant first Replies are vague or wrong Little or no knowledge added Add documents and FAQs, then test again in the Playground Cannot see Create a new assistant or Create Assistant You are not an administrator Ask an administrator More causes, including silent ones: Troubleshoot Captain.
📚 Features explainedHow to use Agent bots?
AgentBot lets you connect external AI agents and custom bot logic directly to your Chatwoot inbox. It allows your bot to listen to customer conversations, process incoming queries, and respond through Chatwoot in real time. Once an AgentBot is connected to an inbox, new conversations are automatically assigned a pending status. Chatwoot then sends conversation events to your configured bot URL as webhook events. Your AgentBot can process these events, generate the right response using your own logic or AI systems, and send messages back to the conversation using Chatwoot APIs. This makes it easy to bring your own AI agent, automation workflow, or external customer support bot into Chatwoot while still keeping human handoff available when needed. How does the AgentBot work? Explained below in a typical workflow of an AgentBot. 1. The AgentBot receives events such as widget_triggered, message_created, and message_updated based on customer interactions. 2. The AgentBot processes the received information to generate an appropriate response. 3. The AgentBot can also utilize external system APIs to gather additional customer information, such as order status or booking triggers. 4. The AgentBot can integrate AI models like OpenAI, Claude, Gemini or tools like Amazon Lex to understand what the customer wants. 5. The AgentBot can post the generated response back into the widget by utilizing Chatwoot APIs such as Create New Message. 6. The AgentBot can toggle a conversation status to open to hand off the conversation to a human agent. 7. It continues to monitor open conversations to provide contextual information to the support agent. How does the Human-Agent handoff work? When an agent bot is connected to an inbox, conversations are created with a "pending" status, allowing it to triage the conversation before passing it on to a human agent. If the bot determines that a human agent's assistance is needed or if the customer explicitly asked for human help, it can use the conversation update API to change the status to "open" which would make the conversation available to a human. Sometimes the agents would want to push back a conversation which was handed off, back again into the bot queue. Agents can return a handed-off conversation to the bot queue by changing the status back to "pending”. How can I use the AgentBot? Listed below are a few examples. 1. Businesses with high volume customer support queries can utilize an AgentBot to authenticate and filter queries, reducing the workload on human agents and improving the efficiency of customer support. 2. E-commerce websites can integrate the AgentBot with their existing databases, providing customers with real-time updates on order and shipping status, as well as answering other related queries. 3. News and content websites can use the AgentBot to send recommendations to users via card messages. 4. Hotel and movie booking websites can use the AgentBot to handle bookings, reservations and answering related queries, providing customers with a seamless and convenient booking experience. Examples 1. Hotel booking implementation using Dialogflow. 2. Example implementation using Rasa. Also, look into interesting ways to leverage bot-message types on Chatwoot. Creating agent bots How to create agent bots in your Chatwoot account? You can create agent bots from the account settings. Go to Settings -> Bots. You will see an option like the one below. Click on "Add Bot" to create a new bot. You will see an option to provide a name, avatar and a webhook URL. How to connect an inbox to a bot? Open the inbox where you want to link the bot. In Bot Configuration, pick the bot that should manage the conversations. After you click Save, you’ll start getting webhook events each time a new conversation or message is created. For more details about the events that are supported in the webhooks, please visit the Webhook documentation here. Webhook Verification Once you create an agent bot, we automatically generate a secret that you can use to verify the payload your application receives. You can read more about webhook verification here.
đź’¬ Website live chatHow to enable identity validation in Chatwoot?
Identity validation helps ensure that the conversations between your customers and support agents are private. It also helps with disallowing impersonation. Identity validation can be enabled by generating an HMAC. The key used to generate HMAC for each web widget differs and can be copied from Inboxes -> Settings -> Configuration -> Identity Validation -> Copy the token shown there. You can generate HMAC in different languages, as shown below. Generate HMAC​ PHP​ <?php $key = '<webwidget-hmac-token>'; $message = '<identifier>'; $identifier_hash = hash_hmac('sha256', $message, $key); ?> Javascript (Node.js)​ const crypto = require('crypto'); const key = '<webwidget-hmac-token>'; const message = '<identifier>'; const hash = crypto.createHmac('sha256', key).update(message).digest('hex'); Ruby​ require 'openssl' require 'base64' key = '<webwidget-hmac-token>' message = '<identifier>' OpenSSL::HMAC.hexdigest('sha256', key, message) Elixir​ key = '<webwidget-hmac-token>' message = '<identifier>' signature = :crypto.hmac(:sha256, key, message) Base.encode16(signature, case: :lower) Golang​ package main import ( "crypto/hmac" "crypto/sha256" "encoding/base64" "encoding/hex" ) func main() { secret := []byte("<webwidget-hmac-token>") message := []byte("<identifier>") hash := hmac.New(sha256.New, secret) hash.Write(message) hex.EncodeToString(hash.Sum(nil)) } Python​ import hashlib import hmac import base64 secret = bytes('<webwidget-hmac-token>', 'utf-8') message = bytes('<identifier>', 'utf-8') hash = hmac.new(secret, message, hashlib.sha256) hash.hexdigest()
🔥 CaptainUse Captain Memories
Discover With memories on, the assistant saves key details from a conversation as notes on the contact, so your team, and Copilot, have context next time. The assistant does not read these notes when it replies to customers. Plan & access: Startups, Business or Enterprise (Pricing & Plans). An administrator turns it on per assistant. Set up & try Before you start - An assistant. See Set up a Captain assistant and connect your inboxes. Turn on memories 1. Go to Captain > Assistants, open the assistant, and go to Settings. 2. Turn on Capture key details as memories from customer interactions. 3. Save. What gets saved Details that help next time, such as: - Preferences, and the products or plan the customer uses. - Recurring questions or issues. - Special needs, such as an integration they rely on. - Context such as team size. Test it Have a conversation where you mention a preference, for example "We use the Pro plan and prefer email", and resolve it. Then open the contact and check Notes. Get value - Memories appear in the contact's Notes with "Bot" as the author and the time they were saved. Agents see them in the conversation sidebar. - Memories are saved when a conversation in a connected inbox is resolved, whether the assistant or an agent handled it, as long as the account has credits. - Agents can delete a memory but cannot edit it. - Tell customers what you store, in line with your privacy policy. Troubleshoot Symptom Likely cause What to do No notes appear The toggle is off, the conversation is not resolved yet, or nothing worth saving came up Check the setting; resolve the conversation Memories stopped Credits ran out See Captain AI credits and usage Notes appear for some contacts only Only resolved conversations in inboxes connected to the assistant create memories Expected More causes: Troubleshoot Captain.
⚡ Apps and IntegrationsHow to track Issues and Features with Linear Integration?
If your company, account, or project uses Linear as a project tool, you can integrate it with Chatwoot to manage all conversations in your Linear workspace. You can create new Linear issues directly from your conversation window or link to existing ones for streamlined tracking. To begin setup, follow the steps below. If you're using a self-hosted Chatwoot instance, please follow this guide. How to Connect Linear Integration? Step 1. Go to Settings → Integrations → Linear. Click on the "Configure" button Step 2. Click the Connect button. When the consent prompt appears, click Authorize to grant permissions. Once complete, you'll be redirected to the Chatwoot app. Voilà ! You can now use Linear in your Chatwoot account. Supported Features Create issues from the conversation To create a new issue, open any conversation and click the Linear button in the conversation header. Then fill in the issue details, including title, description, and team. After filling in the details, click the Create button to add the issue to your Linear workspace with the linked conversation. The issue will be created in your Linear workspace with the linked conversation. Link existing issues. To link a conversation with an existing ticket, click the link issue tab, search for the ticket, and click "Link" to connect it with the Linear ticket.
⚡ Apps and IntegrationsHow to bring your Dialogflow chatbot to Chatwoot?
Chatbots are valuable for many customer engagement teams. They efficiently handle trivial questions and free human agents to focus on more pressing issues. Dialogflow and Rasa.ai are leading NLP (Natural Language Processing) platforms for building customized chatbots. In this guide, we explain how you can create a bot in Dialogflow and easily integrate it with Chatwoot in seconds. How to create a Dialogflow bot? Step 1. Go to your Dialogflow Console. We will be using Dialogflow Essentials for this article. Click on "Create Agent". You will see options like these: Step 2. You will need to create intents based on how you want your bot to respond. There will be 2 default intents in the project called "Default Fallback Intent" and "Default Welcome Intent", as shown below. This completes the basic bot configuration. Let us create a service account and connect it with Chatwoot. You can also create additional intents for your specific use cases. Chatwoot also supports advanced intents that enables agent handoff, interactive messages, etc. refer: Scroll down to "Advanced Intents". Step 3. Create a service account​. To connect this bot with Chatwoot, you need to create a service account on your Google Cloud console. Navigate to the project console in Google cloud by clicking on the Project ID in the project settings. Navigate to IAM & Admin -> Service Accounts. You will see a view like the one shown below. Click on "Create Service Account". Provide a Service Account name and description as shown below. To provide access, select Dialogflow API Client from the dropdown. Continue and click on "Done". Now, you would be able to see the service listed in the dashboard. The next step is to create a key so that it can be shared with Chatwoot. Click on the service account and click on the "Keys" tab. Then, click on "Add Key". You will be able to see a screen like the one below. Click on "JSON" and click on "Create". It will generate a key for your service account. Download the key and save it for use later. Setting up Dialogflow Integration in Chatwoot​ Chatwoot has a native Dialogflow integration. You can connect your bot with Chatwoot in two quick steps. Step 1. Go to "Settings -> Applications -> Dialogflow". Click on "Configure". Step 2. Click the "Add a new hook" button. it will open up a setup modal. You need to add "Project ID," "Project Key file," and an inbox to create a hook. Copy the contents of the key file downloaded earlier and paste it into the text area. That's it! The integration is complete. Test out the website inbox to see if the bot handles the initial query. Advanced Intents​ Creating a handoff intent​ Once the user requests to talk to the agent, Dialogflow must inform Chatwoot that an agent can take over the conversation. Create an intent named "Handoff Intent" with training phrases like "Talk to an agent" or "Speak with an agent," etc. To handle the handoff intent, we will create a "Custom Payload" response, as shown below. { "action": "handoff" } Upon triggering an intent with the above payload, Chatwoot will toggle the status of the conversation to open and hand it off to an agent. Interactive Messages​ Note: Interactive messages are supported only in the website inbox currently. Chatwoot-Dialogflow integration also supports interactive messages. The following types of interactive messages are supported. 1. Options (follow-up supported) 2. Cards 3. Articles Creating an interactive message Intent​ You can create other interactive messages by changing the payload as mentioned in the interactive messages guide. Create an intent with required training phrases and a "Custom Payload" response, as shown below for an options message. ## example for an options interactive message { "content_type": "input_select", "content": "Select your favorite food from below", "content_attributes": { "items": [ { "value": "I like sushi", "title": "Sushi" }, { "title": "Biryani", "value": "I like biryani" }, { "title": "Pizza", "value": "I like pizza" } ] }, "private": false } When a user interacts with input messages and selects a value, it returns to Dialogflow. This allows for configuring follow-up intents, such as creating an intent with the training phrase "I like biryani" for cases where the contact selects the "biryani" option. How can an agent transfer the conversation back to Dialogflow bot?​ When the Dialogflow bot is connected to an inbox, conversations are created with pending status instead of open. This lets the initial triaging happen via the bot before the conversation is passed on to an agent. When handoff happens, the conversation status is changed to open and the bot stops responding to it. Sometimes the agents would want to push back a conversation that was handed off, back again into the bot queue. They can do this by changing the conversation status back to pending. This will make the bot start responding to that conversation again.