Home Advanced features explained
🔎

Advanced features explained

Pranav Raj Muhsin Keloth Shivam Mishra
By Pranav Raj and 2 others
• 11 articles

How to use pre-chat forms?

Pre chat form is used to collect information about a contact/conversation before initiating a conversation. The Pre chat form is available only in website live chat. How to add a pre-chat form? Step 1. Go to Settings → Inboxes. Click on the specific settings of a website inbox. Step 2. Go to the “Pre Chat Form” tab. There are two types of fields possible with the pre-chat form. 1. Standard fields: These are the primary contact fields––Email, Phone number, and Full name. 2. Custom fields: These are the fields that are created with custom attributes. The Pre chat form settings list down both the standard and custom fields. The columns in the settings of pre-chat forms are described below. - Key Field unique identifier - Type Type of the field (Text, List, Number, Date, Link, Boolean) - Required Is the field required or not - Label The label that will be displayed to the visitor on the widget - Placeholder The placeholder value All the fields would be displayed under the pre-chat form settings by default. The admin will be able to do the following. - Enable/disable fields - Change the order of fields - Update label/placeholder - Enable/Disable validation Customize your pre-chat form according to your needs. In order to add more fields, add more custom attributes. What does a pre-chat form look like? Once the pre-chat form is enabled, it would ask your customers to fill out a form like the one shown below when they start a conversation through live chat. Also, read: Pre chat form + Automations = 🚀

Last updated on Apr 10, 2024

How to use Campaigns?

The Campaigns feature is a way for you to send outbound messages to your customers. There are two types of campaigns in Chatwoot: I. Ongoing campaigns You can use ongoing campaigns to send frequent outbound messages via website live chat. You can set specific conditions that trigger these messages, like when a user spends a certain amount of time on a specific page. By sending these messages, you can increase the likelihood of conversions and keep the conversation flowing with your prospects. II. One-off campaigns You can use one-off campaigns to send an SMS campaign to a group of contacts. This is an effective way to reach many customers at once and make announcements or promote your products/services or specific offers. How to create an Ongoing Campaign? Step 1. Click on the "Campaigns" tab in the sidebar. Select "Ongoing" -> "Create an ongoing campaign" button. Step 2. You will see a modal where you can input the campaign details. Here is an example of creating a campaign for the Pricing page: The fields seen in the form are explained below. 1. Title Name your campaign for internal reference. 2. Message Type your outbound message. This is precisely what your customers will see when the campaign is triggered. 3. Select Inbox Select your website inbox from the dropdown. 4. Sent by You can send your outbound messages either by a bot or an agent. Make your pick. 5. URL Enter the URL of the page where this campaign should be triggered. Imp: You can also enter wildcard URLs to run the campaign on subdomains or sub-directories. See this guide to learn more about building a wildcard pattern. 6. Time on page (seconds) How many seconds should the visitor spend on the given URL before triggering the campaign? 7. Enable campaign The flag shows whether the campaign is enabled or not. Step 3. Test it out. Visit the URL specified in the campaign and wait for the time configured in the campaign. How to create a One-off Campaign? Step 1. Click on the "Campaigns" tab in the sidebar. Select "One off" -> "Create a one off campaign" button. Step 2. You will see a modal where you can input the campaign details. The fields seen in the form are explained below. 1. Title Name your campaign for internal reference. 2. Message Type your SMS message to be sent to the customers. 3. Select Inbox Select your SMS inbox from the dropdown. 4. Audience You can send this campaign to your contacts grouped under a specific label. 5. Scheduled time Set a Campaign execution time. Once you have filled out the fields, click the "Create" button. It will appear on your One-off campaigns page. How to edit or delete campaigns? To edit or delete campaigns, open the list of campaigns by visiting "Campaigns" -> Selecting the campaign type. Scroll laterally to find the edit and delete options.

Last updated on Apr 10, 2024

How to create interactive messages?

Chatwoot lets you create interactive message types like cards and forms inside your Chatwoot Web Widget using the APIs. You can create these messages using the New Message API. Payload Samples​ Use the following payload samples as the values to create various interactive messages. 1. Options​ { "content": "Select one of the items below", "content_type": "input_select", "content_attributes": { "items": [ { "title": "Option1", "value": "Option 1" }, { "title": "Option2", "value": "Option 2" } ] }, "private":false } 2. Form​ { "content": "form", "content_type": "form", "content_attributes": { "items": [ { "name": "email", "placeholder": "Please enter your email", "type": "email", "label": "Email", "default": "xyc@xyc.com" }, { "name": "text_aread", "placeholder": "Please enter text", "type": "text_area", "label": "Large Text", "default": "Sample text" }, { "name": "text", "placeholder": "Please enter text", "type": "text", "label": "text", "default": "sample input" }, { "name": "select", "label": "Select Option", "type": "select", "options": [ { "label": "🌯 Burito", "value": "Burito" }, { "label": "🍝 Pasta", "value": "Pasta" } ] } ] }, "private": false } 3. Cards​ { "content": "card message", "content_type":"cards", "content_attributes":{ "items":[ { "media_url":"https://assets.ajio.com/medias/sys_master/root/hdb/h9a/13582024212510/-1117Wx1400H-460345219-white-MODEL.jpg", "title":"Nike Shoes 2.0", "description":"Running with Nike Shoe 2.0", "actions":[ { "type":"link", "text":"View More", "uri":"google.com" }, { "type":"postback", "text":"Add to cart", "payload":"ITEM_SELECTED" } ] } ] }, "private":false } 4. Articles​ { "content": "articles", "content_type": "article", "content_attributes": { "items": [ { "title": "API start guide", "description": "A random start api guide", "link": "http://google.com" }, { "title": "Development docs", "description": "Development docs and guidelines", "link": "http://google.com" } ] }, "private":false }

Last updated on Apr 10, 2024

How to use Automation?

Chatwoot's automation feature streamlines team workflow by automating repetitive tasks and saving time. It allows for various actions such as assigning labels, and teams and routing conversations to the most suitable agent, enabling the team to focus on their core responsibilities and spend less time on manual tasks. How does Automation work? An automation rule is made up of three things––An Event, Conditions, and Actions. The Event is the trigger for automation to perform itself. The conditions are criteria that must be met before the actions are executed. The Actions are tasks that will be executed when the conditions are met. Automation Events Automation Events are triggers that initiate the execution of automation. Chatwoot currently offers three types of events. 1. Conversation created: A trigger/event initiated when a new conversation is created. This includes conversations created in all channels. 2. Conversation updated: A trigger/event initiated when a conversation is updated. 3. Message created: A trigger/event initiated when a new message in a conversation is created. 4. Conversation opened: A trigger/event initiated when a previously snoozed, resolved, or pending conversation is opened again. Automation Conditions Conditions are the criteria that must be met before the actions are performed. They are evaluated in the order they are defined. Conditions depend on the type of event you select. Here is a comprehensive list: Automation Actions Actions are tasks/processes that are executed whenever respective conditions are met. Chatwoot currently supports the following actions: - Assign to agent - Assign a team - Add a label - Send an email to team - Send an email transcript - Mute conversation - Snooze conversation - Resolve conversation - Send Webhook Event - Cancel - Send Attachment - Send a message These actions are available irrespective of the Events or Conditions you choose. How to create an Automation rule? Step 1. Go to Settings → Automation. Click on the “Add Automation Rule” button. Step 2. An automation rule creation modal will open up. Start filling the fields as listed below. 1. Give your automation a name to easily refer to it later. 2. Add a description (optional). 3. Select an event from the dropdown menu. 4. Add conditions. Use equal to or not equal to operators to define the conditions. 5. Add actions. You can add multiple conditions and actions as well. Use AND, OR operators to do this. Example You want to assign all new conversations to the France sales team whenever the Browser language is French. Here’s how you can create an automation rule for this – 1. Add a name and a description. 2. Select event as Conversation Created. 3. Add two conditions and join them with the AND operator. Condition 1: Conversation Status is Open, and Condition 2: Browser Language is Francais (fr) from the dropdown. 4. Add an action - Assign a team and select the team France sales from the dropdown. (You need to create your team first). How to pause, edit, clone, and delete automation rules? Your list of Automation rules appears under “Automations”. You can view this page by going to Settings → Automation. You will find a set of quick actions here: To pause an automation rule: Toggle the switch off under the “Active” column. To edit a rule: Click on the pencil icon. To clone a rule: Click on the copy icon. To delete a rule: Click on the red cross icon.

Last updated on Apr 10, 2024

How to setup a WebSocket connection?

WebSockets establish a continuous connection between the client and server, enabling bi-directional communication. Chatwoot utilizes this connection to provide real-time updates about platform events. To connect to the Chatwoot WebSocket, simply provide a token and follow the setup instructions outlined in this guide. Note: This feature is experimental, and the documentation may change with each release. Additionally, backward compatibility cannot be guaranteed, so it is important to ensure you are using the latest version of the implementation. Why should I use a WebSocket connection? A WebSocket connection allows for real-time data updates, making it ideal for clients such as an Android or iOS client SDK for Chatwoot. This helps update the dashboard without the need to reload the page. Hence, it can enhance the user experience and improve an agent's productivity. How to set up a WebSocket connection with Chatwoot? To set up a WebSocket connection with Chatwoot, you need to initiate a connection with the authentication PubSub token provided by Chatwoot. The URL for the connection is wss://<your-installation-url>/cable. If you are using Chatwoot Cloud, you can use wss://app.chatwoot.com/cable as the URL. A PubSub token is a token that is used to authenticate a client when connecting to a PubSub (publish-subscribe) service. The client must present this token to the service in order to establish a connection and begin publishing or subscribing to messages. There are two types of PubSub tokens available in Chatwoot, as listed below. 1. User PubSub Token: This token has the privileges of an agent/admin and would receive all of the events listed later on the page. You can get the PubSub token by calling the Profile API. 2. Contact PubSub Token: Chatwoot generates a unique PubSub token for each session a contact has. This token can be used to connect to the WebSocket and receive real-time updates for the same session. When a contact is created through the public APIs, the pubsub_token is included in the response payload. This token only grants access to events related to the current session, such as conversation.created,  conversation.status_changed, message.created, message.updated, conversation_typing_on, conversation_typing_off and presence.update. Please refer Client APIs to build real time customer facing integrations using Chatwoot. Note: This token may be rotated regularly based on your installation type. Please ensure that you are using the latest token. How to connect to Chatwoot WebSocket? To connect to the Chatwoot WebSocket, use the command subscribe and include your pubSubToken, accountId, and userId (if using a user token) in the connection request. Here is an example of how you can connect with Chatwoot. // Add a helper method to convert JSON to a string const stringify = (payload = {}) => JSON.stringify(payload); const pubSubToken = "<contact/user-pub-sub-token>"; const accountId = "<your-account-id-in-integer>"; const userId = "<user-id-in-integer-if-using-user-token>"; const connection = new WebSocket( "wss://app.chatwoot.com/cable" ); connection.send( stringify({ command: "subscribe", identifier: stringify({ channel: "RoomChannel", pubsub_token: pubSubToken, account_id: accountId, user_id: userId, }), }) ); // The expected string in connection.send is of the format: // {"command":"subscribe","identifier":"{\\"channel\\":\\"RoomChannel\\",\\"pubsub_token\\":\\"your-pubsub-token\\",\\"account_id\\": account_id_integer,\\"user_id\\":user_id_integer }"} Publishing presence to the WebSocket server To keep your users’ status online in Chatwoot, you can send a presence update event to Chatwoot every 30 seconds. This action would keep the status of the agent/contact online. How to update the presence of an agent/admin? To update the presence of an agent or admin, send the following payload to the server: const userPayload = stringify({ command: "message", identifier: stringify({ channel: "RoomChannel", pubsub_token: "<user-pubsub-token>", account_id: accountId, user_id: userId, }), data: stringify({ action: "update_presence" }), }); connection.send(userPayload); // The expected string in connection.send is of the format: // {"command":"message","identifier":"{\\"channel\\":\\"RoomChannel\\",\\"pubsub_token\\":\\"your-pubsub-token\\",\\"account_id\\": account_id_integer,\\"user_id\\":user_id_integer ","data":"{\\"action\\":\\"update_presence\\"}"} How to update the presence of a contact? To update the presence of a contact, send the following payload to the server: const agentPayload = stringify({ command: "message", identifier: stringify({ channel: "RoomChannel", pubsub_token: "<user-pubsub-token>", }), data: stringify({ action: "update_presence" }), }); connection.send(agentPayload); // The expected string in connection.send is of the format: // {"command":"message","identifier":"{\\"channel\\":\\"RoomChannel\\",\\"pubsub_token\\":\\"your-pubsub-token\\","data":"{\\"action\\":\\"update_presence\\"}"} WebSocket Payload Objects An event can contain any of the following objects as payload. Different types of objects supported in Chatwoot are as follows. Conversation The following payload will be returned for a conversation. { "additional_attributes": { "browser": { "device_name": "string", "browser_name": "string", "platform_name": "string", "browser_version": "string", "platform_version": "string" }, "referer": "string", "initiated_at": { "timestamp": "iso-datetime" } }, "can_reply": "boolean", "channel": "string", "id": "integer", "inbox_id": "integer", "contact_inbox": { "id": "integer", "contact_id": "integer", "inbox_id": "integer", "source_id": "string", "created_at": "datetime", "updated_at": "datetime", "hmac_verified": "boolean" }, "messages": ["Array of message objects"], "meta": { "sender": { // Contact Object }, "assignee": { // User Object } }, "status": "string", "unread_count": "integer", "agent_last_seen_at": "unix-timestamp", "contact_last_seen_at": "unix-timestamp", "timestamp": "unix-timestamp", "account_id": "integer" } Contact The following payload will be returned for a contact. { "additional_attributes": "object", "custom_attributes": "object", "email": "string", "id": "integer", "identifier": "string or null", "name": "string", "phone_number": "string or null", "thumbnail": "string" } User The following payload will be returned for an agent/admin. { "id": "integer", "name": "string", "available_name": "string", "avatar_url": "string", "availability_status": "string", "thumbnail": "string" } Message The following payload will be returned for a message. { "id": "integer", "content": "string", "account_id": "integer", "inbox_id": "integer", "message_type": "integer", "created_at": "unix-timestamp", "updated_at": "datetime", "private": "boolean", "status": "string", "source_id": "string / null", "content_type": "string", "content_attributes": "object", "sender_type": "string", "sender_id": "integer", "external_source_ids": "object", "sender": { "type": "string - contact/user" // User or Contact Object } } Notification The following payload will be returned for a notification. { "id": "integer", "notification_type": "string", "primary_actor_type": "string", "primary_actor_id": "integer", "primary_actor": { "can_reply": "boolean", "channel": "string", "id": "integer", "inbox_id": "integer", "meta": { "assignee": { "id": "integer", "name": "string", "available_name": "string", "avatar_url": "string", "type": "user", "availability_status": "string", "thumbnail": "string" }, "hmac_verified": "boolean" }, "agent_last_seen_at": "unix-timestamp", "contact_last_seen_at": "unix-timestamp", "timestamp": "unix-timestamp", }, "read_at": "unix-timestamp", "secondary_actor": "object/null", "created_at":"unix-timestamp", "account_id": "integer", "push_message_title": "string" } Identifier Each event will have an identifier attribute in the following format. { "identifier": "{\\"channel\\":\\"RoomChannel\\",\\"pubsub_token\\":\\"token\\",\\"account_id\\":id,\\"user_id\\":user_id}" } Message Each event will include a message attribute which we return the event name as well as the data associated with it. To see the list of events, refer the documentation below. Types of Events conversation.created This event is triggered when a new conversation is initiated. If subscribing to the contact's PubSub token, this event will only include data related to the specific session associated with the PubSub token. Available to: agent/admin, contact { "message": { "event": "conversation.created", "data": { // Conversation object will be available here } } } conversation.read This event is triggered and sent to the agents/admins who have access to the inbox, when a contact has read a message. Available to: agent/admin { "message": { "event": "conversation.read", "data": { // Conversation object will be available here } } } message.created This event is triggered and sent to the agents, admins, contacts when a new message is created in a conversation they have access to. Available to: agent/admin, contact { "message": { "event": "message.created", "data": { // Message object will be available here } } } message.updated This event is triggered and sent to the agents, admins, contacts when a message is updated in a conversation they have access to. Available to: agent/admin, contact { "message": { "event": "message.updated", "data": { // Message object will be available here } } } conversation.status_changed This event is sent to the agents, admins, contacts when a conversation status is updated. Available to: agent/admin, contact { "message": { "event": "conversation.status_changed", "data": { // Conversation object will be available here } } } conversation.typing_on This event is sent to the agents, admins, contacts when a contact or an agent starts typing a response. Available to: agent/admin, contact { "message": { "event": "conversation.typing_on", "data": { "conversation": { // Conversation object will be available here }, "user": { // Contact / Agent,Admin User object will be available here. }, "is_private": "boolean", // Shows whether the agent is typing a private note or not. "account_id": "integer" } } } conversation.typing_off This event is sent to the agents, admins, contacts when a contact or an agent ends typing a response. Available to: agent/admin, contact { "message": { "event": "conversation.typing_off", "data": { "conversation": { // Conversation object will be available here }, "user": { // Contact / User object will be available here. }, "account_id": "integer" } } } assignee.changed This event is sent to the agents/admins with access to an inbox when the assigned agent is changed. Available to: agent/admin { "message": { "event": "assignee.changed", "data": { // Conversation object will be available here } } } team.changed This event is sent to the agents/admins with access to an inbox when the assigned team is changed. Available to: agent/admin { "message": { "event": "team.changed", "data": { // Conversation object will be available here } } } conversation.contact_changed This event is sent to the agents/admins when two contacts are merged all their conversations are consolidated under one contact. Available to: agent/admin { "message": { "event": "conversation.contact_changed", "data": { // Conversation object will be available here } } } contact.created This event is sent to the agents/admins when a contact is created. Available to: agent/admin { "message": { "event": "contact.created", "data": { // Contact object will be available here } } } contact.updated This event is sent to the agents/admins when a contact is updated. Available to: agent/admin { "message": { "event": "contact.updated", "data": { // Contact object will be available here } } } presence.update Available for both agent and the contact, this event provides real-time updates on the availability status of the users in the system. The event delivered to contacts will not include information about other contacts' availability status. Available to: agent/admin { "message": { "event": "presence.update", "data": { "account_id": "integer", "users": { "user-id": "string" }, "contacts": { "contact-id": "string" } } } } notification_created This event is sent to the agents/admins when a notification is created. Available to: agent/admin

Last updated on Apr 17, 2023

How to use template variables?

With template variables, you can personalize your messages by inserting dynamic content tailored to each recipient. By adding placeholders in your messages, you can easily customize your communications with information such as a customer's name, order number, or other details. For e.g., If you send a message Hey {{ contact.name }}, how may I help you?, Chatwoot will pick the contact name and send a message like Hey John, how may I help you?. You can also utilize variables in canned responses, macros, and automation. Creating template variables To use a variable, type two double curly brackets {{ when composing a new message or creating a canned response. The variables will appear, and you can select the one you'd like to use. The available template variables are: - conversation.id ~ For the numeric version of the conversation ID. - contact.id ~ For the numeric version of the contact ID. - contact.name ~ For the contact's full name. - contact.first_name - contact.last_name - contact.phone_number - agent.name - agent.first_name - agent.last_name - agent.phone_number What if I send a non-existent variable? If you try to send an undefined variable, Chatwoot will show a warning. How to add a fallback text? If a defined variable cannot be populated by the system, a fallback text can be used to replace the intended value. For e.g., if the variable contact.first_name cannot be populated, a suitable fallback text could be 'there'. When defining a fallback text, make sure you surround it with single quotes. Here is an example: {{ contact.first_name || 'there'}}.

Last updated on May 15, 2023

How to use Macros?

A macro is a set of sequential saved actions, like labeling a conversation, sending an email transcript, sending an attachment, etc., which you can define from your dashboard. As a support agent, you will find that you need to repeat the same set of actions often. Here is an example: Whenever you receive a demo request, you assign the Sales team, send a standard message on how to book a slot, add the Sales label, and snooze the conversation. Or, whenever you receive spam, you send the same message about how they've come to the wrong place, assign the Spam label, and close the conversation. Doing all these actions one-by-one, and multiple times a day can be painful and time-consuming. Instead, you can run a macro. This guide explains, with examples, how to create macros––personal or public––and how to use them. How to create a macro? Step 1. Go to Settings -> Macros -> "Add a new macro". Step 2. You'll see a macro setup screen. Here, you can create a flow of the actions that must be performed when this macro is executed. You can also name your macro for internal reference in the right sidebar. You can start by selecting an action from the dropdown. The currently available actions are shown below. Select an action and set it up accordingly. When done, continue adding more actions. An example setup of a macro Here is an example of the sequential actions performed whenever the Paper Layer team receives a query from a customer on the free plan. Please note that the order in which you set these actions defines the order in which they will be performed. Step 3. Set the visibility for your macro. If you are creating it for your personal use, set "Private". If you want your team to be able to use it, set the visibility to "Public." Step 4. Click the "Save macro" button on the bottom-right of the setup page. Your macro is now ready to use! How to execute a macro? Step 1. Locate the "Macros" section in the right sidebar of your chat window. Click the plus sign to expand it. This will show you the list of the macros created for your account – both private to you and public. Step 2. Preview the macro if you are unsure of the actions it would perform. To preview, click the "i" icon. It would pop up a preview of the actions set in the specific macro. Step 3. Execute the macro by clicking the play button. This would automatically perform all the actions in the defined sequence in a split second. You'll be able to see the respective success messages for different actions. Here's an example: How to edit or delete a macro? To edit or delete macros, open the list of macros by visiting Settings -> Macros. Find the specific macro and use the corresponding edit or delete button, as shown in the screenshot below.

Last updated on Apr 10, 2024

How to use Audit Logs?

Audit Logs is an Enterprise feature. This keeps a record of the activities occurring in your account, which you can track to audit your account, team, or services. Essentially, audit logs answer the four W's for you: - Who - What - When - Where Or, who did what, when and from where? Where to find the Audit Logs within Chatwoot? Step 1. If the feature is available to you, you can find it by going to 'Settings' -> 'Audit Logs'. Step 2. Browse through your logs. Scroll down to find your desired entries or use the navigation to switch pages. Pro tip: Use cmd/ctrl + F to quickly search for a desired entry. You will find the entries under three headers: Activity, Time and IP Address. Activities tracked through Audit Logs Whenever any of the following activities occurs within your account, an entry is created along with the date and timestamp, and the IP address. See the full list below. User activity logs - <Name | Email> changed self status to online, offline, busy - <Name | Email> signed in - <Name | Email> signed out - <Name | Email> changed the availability status of <Name | Email> to <online | offline | busy> - <Name | Email> invited the user as an <agent | admin> - <Name | Email> changed the role of the user to <agent | admin> Account activity logs - <Name | Email> updated the account configuration. Automation rule logs - <Name | Email> created a new automation rule (#rule-id) - <Name | Email> updated an automation rule (#rule-id) - <Name | Email> deleted an automation rule (#rule-id) Macro logs - <Name | Email> created a new macro (#macro-id) - <Name | Email> updated a macro (#macro-id) - <Name | Email> deleted a macro (#macro-id) Inbox logs - <Name | Email> created a new inbox (#inbox-id) - <Name | Email> updated an inbox (#inbox-id) - <Name | Email> deleted an inbox (#inbox-id) - <Name | Email> added <Name1 | Email1>, <Name2 | Email 2> to the inbox (#inbox-id) - <Name | Email> removed <Name1 | Email1>, <Name2 | Email 2> from the inbox (#inbox-id) Webhooks logs - <Name | Email> created a new webhook (#webook-id) - <Name | Email> updated a webhook (#webhook-id) - <Name | Email> deleted a webhook (#webhook-id) Team logs - <Name | Email> created a new team (#team-id) - <Name | Email> updated a team (#team-id) - <Name | Email> deleted a team (#team-id) - <Name | Email> added <Name1 | Email1>, <Name2 | Email 2> to the team (#team-id) - <Name | Email> remove <Name1 | Email1>, <Name2 | Email 2> from the team (#team-id)

Last updated on Apr 10, 2024

Wildcard URL support in website live-chat campaigns

The website live-chat campaigns support wild card URL patterns. While building a URL pattern, consider the following behavior in mind. In Chatwoot, every URL pattern should start with http:// or https://. Running the campaign on the exact URL​ If you add an exact URL like https://chatwoot.com/app, then the URLs with trailing slashes or the URL params or the hash params would not match. Some examples for exact match definitions are as follows. - https://chatwoot.com/app would match https://chatwoot.com/app/ or ``https://chatwoot.com/app?test_param=1` - https://chatwoot.com/app?test_param=test_value would not match https://chatwoot.com/app or https://chatwoot.com/app#test_hash_param Running the campaign ignoring the URL parameters​ To ignore the URL params or hash params, you can add a trailing slash in the URL. For eg: https://chatwoot.com/app/ would match all the following URLs. - https://chatwoot.com/app/ - https://chatwoot.com/app - https://chatwoot.com/app/?test=1 - https://chatwoot.com/app/#test Running the campaign in all sub-directories​ You can use the * character in the URL if you want to match all the sub-directories. For eg: https://chatwoot.com/* would match to the following URLs - https://chatwoot.com/ - https://chatwoot.com/app - https://chatwoot.com/app/subdirectory Running the campaign in all subdomains​ To match the current domain and subdomains, you can use the pattern {*.}? in the URL. For eg: https://{*.}?chatwoot.com/ would match to the following URLs - https://chatwoot.com - https://app.chatwoot.com - https://www.chatwoot.com

Last updated on Apr 10, 2024

Service 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

Last updated on Apr 15, 2024