Documentation navigation
Documentation

Chatlio for Discord

Chatlio puts a chat widget on your website and delivers each visitor’s messages to a Discord channel you choose. Your team answers from Discord, and visitors see the replies in the widget, without needing a Discord account.

Plans and prices are on the pricing page.

Related pages: Discord /chatlio commands and Discord troubleshooting.

Before you start

You need:

  • A Chatlio account. Sign up or open the dashboard.
  • A Discord server where you are allowed to add apps.
  • A text channel for visitor conversations, or let Chatlio create one during setup. Everyone who can see this channel can read visitor conversations, so read Privacy before you pick one.

Install Chatlio in your Discord server

  1. Open the Chatlio dashboard and start a new widget.
  2. Click Add Chatlio to Discord. If you do not see that button, contact us.
  3. Discord shows its authorization screen. Pick your server, review the permissions (listed below) and approve them.
  4. Back in Chatlio, Choose a channel:
    • Create a new Discord channel: enter a channel name and click Create and select channel. Make it private (recommended) is selected to begin with, so only Chatlio, your operator role and server admins can see the channel.
    • Use an existing channel: pick a channel from the list. Channels already connected to another Chatlio widget are not listed. If the list says Chatlio can’t use a channel yet, add Chatlio in that channel’s permissions in Discord, allow the permissions the list names, then click Refresh list.
  5. Under Install your widget, copy the code and add it to your website. The setup guide covers WordPress, Shopify, React and other platforms.
  6. Select Open test page, send a message as a visitor, and reply in Discord to check everything works.
  7. To go offline outside your working hours, open Set hours under After you install, choose your days, hours and timezone, then click Save hours. You can change them later under Operating Hours.

Setup also creates a role named Chatlio Operators in your server, or reuses a role with that name. It gives the role to you and selects it as the widget’s operator role. The widget then shows online only while someone with that role is online in Discord. See Automatic presence. If Chatlio cannot create or assign the role, setup still finishes, and you choose a role yourself later.

Permissions Chatlio asks for

Discord permission Why Chatlio needs it
View Channels See the channel you connect, and the list of channels to choose from during setup.
Send Messages Post the conversation card for each new visitor in the channel.
Create Public Threads Start a thread for each visitor conversation.
Send Messages in Threads Post visitor messages and Chatlio notices inside each thread.
Read Message History Build chat transcripts from the thread.
Attach Files Pass files that visitors send into the thread.
Manage Webhooks Post visitor messages under the visitor’s name and avatar, so they are easy to tell apart from your team.
Manage Channels Create the channel during setup, and rename it from the Channel settings page.
Manage Roles Create the Chatlio Operators role during setup, or reuse a role with that name, and give it to the person who installs Chatlio.
Mention Everyone Only used to add @here to Chatlio alerts when you turn on channel notifications (/chatlio settings notify-channel-on-msg).

The authorization also tells Chatlio which Discord user is installing it, so Chatlio can give that person the operator role.

Chatlio does not ask for the Administrator permission.

How conversations work

When a visitor sends their first message, Chatlio posts a conversation card in your channel and starts a thread for that visitor. The thread is named after the visitor: their name if they have given one, otherwise their visitor handle.

The conversation card shows:

  • Status: Unanswered, In Progress or Closed. It updates as the conversation moves along.
  • Visitor: name and handle.
  • Conversation: a link to the visitor’s thread.
  • Operator: the first person on your team who replied.
  • First message, and the page the visitor is on.

Replying to visitors

  • In the thread. Open the visitor’s thread and type. Messages you send there go to that visitor.
  • Notes to your team. To write a note the visitor does not see, mention a teammate in the message and pick them from Discord’s mention list, for example @sam can you take this one?. The message stays in Discord and is left out of transcripts. If you type @sam as plain text without picking the person, the message is a normal reply and the visitor sees it. Replying with Discord’s Reply button to one of the visitor’s messages is also a normal reply.
  • From the main channel. Start a message with the visitor’s handle, for example @visitor-12 Thanks, looking into it now. Chatlio sends the text after the handle to that visitor. This only works while the visitor has an open conversation.

What the visitor sees:

  • Typing. While you type in the thread, the visitor sees a typing indicator.
  • Names. By default replies appear under your widget’s agent label. To show each operator’s name instead, turn on operator names with /chatlio settings operator-name or on the widget’s Behavior page. Visitors then see your Discord server nickname, or your display name or username if you have no nickname, together with your Discord avatar. Check that this is a name you want visitors to see.
  • Edits and deletes. While the conversation is open, an edit changes the visitor’s copy to the new text, and a delete replaces it with “Message deleted”. Edits and deletes you make after the conversation has ended do not change what the visitor sees.
  • Saved replies and question groups. Send them with /chatlio reply <name> and /chatlio question-group <name> in the thread. Both depend on your plan; see pricing.

A saved reply with Send automatically selected is sent by Chatlio whenever a visitor’s message contains one of its trigger phrases, in upper or lower case. Chatlio posts a note in the thread when it does. An automatic reply does not count as your team’s first reply, so the conversation card stays Unanswered.

Files

Files work both ways:

  • Files a visitor sends from the widget appear in their thread, up to 10 MB each. Visitors can send files only while Allow file uploads is selected on the widget’s Behavior page.
  • Files you attach to a message in the thread (or to an @handle reply in the main channel) are sent to the visitor, up to 25 MB each. Chatlio sends the text of your message first, so the text can arrive even when a file does not.

Ending a conversation

  • /chatlio end in the visitor’s thread ends the conversation and runs your post-chat actions, such as emailing the transcript or posting it to your webhook. Chatlio then archives the thread and marks the conversation card Closed.
  • /chatlio discard ends it the same way without running post-chat actions.
  • You can also type @chatlio end as a message in the thread.
  • When a visitor’s thread is closed or archived in Discord, Chatlio ends that conversation too and runs your post-chat actions.
  • Chatlio closes conversations nobody ended. By default, every 30 minutes it ends conversations that started more than 12 hours ago and had no message in the last 15 minutes, and runs your post-chat actions.

To get a transcript after each conversation, open the widget’s Behavior page and find Chat transcripts under Webhooks and post-chat actions. Enter an email address and select Enabled, or enter a webhook address and select Automatically post to webhook when a Discord conversation has ended.

If the visitor writes again later, Chatlio starts a new thread for the new conversation. In an ended thread you can still use /chatlio ban and /chatlio unban. Other commands answer that the conversation has ended: run commands about the visitor in their open thread, and commands about the widget, such as /chatlio status, in your Chatlio channel.

Availability: when the widget shows online

Three things decide whether visitors see the widget as online:

  • The on/off switch. Run /chatlio off and /chatlio on in Discord, or use the on/off button on the widget’s Behavior page in the dashboard. While Chatlio is off, the widget is offline whatever else is set.
  • Operator presence. A new widget has an operator role and detects presence automatically: it shows online only while at least one member of that role is online in Discord. See the next section. A widget with no operator role, or with presence detection set to Manual, shows online whenever Chatlio is on.
  • Operating hours. Set the days and hours you answer chat under Operating Hours, and turn the schedule on (or run /chatlio settings op-hours-schedule). Outside those hours the widget is off. With operator presence, both apply: the widget is online only inside your hours and while an operator is online.

How the commands fit in:

  • With operating hours on, /chatlio on and /chatlio off are manual overrides that last until the next start or end of your hours.
  • With automatic presence, /chatlio on switches Chatlio on, but the widget still shows online only while an operator is online.
  • /chatlio auto depends on your setup. With an operator role, it switches Chatlio on and checks operator presence right away. It does not look at your operating hours, which apply again at the next start or end of your hours. Without an operator role, it follows your operating hours right away, or switches Chatlio on if you have no schedule.

While the widget is offline, visitors either see a contact form or no widget at all. Choose Show a contact form or Hide the widget on the Behavior page under When Chatlio is off.

/chatlio status shows whether the widget is on, its availability, which mode is in control and what visitors see.

Automatic presence with a Chatlio Operators role

Setup creates the Chatlio Operators role, gives it to you and turns on automatic presence. To finish:

  1. Give the role to everyone who answers chat. In Discord, open Server Settings, then Members. On each teammate’s row, click + under Roles and pick Chatlio Operators.
  2. Run /chatlio who-is-here to check who counts as available.

To use a different role, or if setup could not create the role, open the widget’s Behavior page in the Chatlio dashboard. Under Presence detection, choose the role from Discord operator role, select Detect presence automatically, and save. If your server has no role to choose, create one in Discord under Server Settings, then Roles, give it to everyone who answers chat, and reload the page.

To stop using presence, select Manual there instead. Chatlio then stays online whenever it is on, and you turn it on and off yourself.

How it works:

  • A role member counts as available only while their Discord status is Online. Every other status counts as unavailable.
  • The widget is online while at least one role member is available, and offline when none are. Operating hours, if turned on, also apply.
  • /chatlio who-is-here lists the role’s members and whether each one counts as available.
  • In very large servers, someone who was already online when Chatlio connected may not show as available until their status next changes. Switching your Discord status to Invisible and back once fixes that.

The role also decides who can see a private channel that Chatlio created during setup. See Privacy.

Who can use /chatlio

Out of the box, only server members with the Administrator permission can run /chatlio. To let your support team use it, open Server Settings → Integrations → Chatlio, select the /chatlio command, and add your support role (or specific members). Anyone who can post in a visitor’s thread can reply to that visitor, whether or not they can run /chatlio.

Privacy: who can see visitor conversations

Visitor threads are public threads inside the channel you connected. Anyone in your server who can view that channel can open the threads and read every visitor conversation, including names, emails and any files visitors send.

A channel Chatlio created during setup. With Make it private selected, only Chatlio, your operator role and server admins can see the channel. Give the Chatlio Operators role to teammates who answer chats, or add other people in the channel’s permissions in Discord.

A channel you already had. Chatlio does not change its permissions, and the Chatlio Operators role gives nobody access to it. If your server includes community members, customers or anyone outside your support team, make the channel private yourself:

  1. In Discord, open the channel’s settings (Edit Channel, then Permissions) and make the channel private.
  2. Add your support role or team members.
  3. Add the Chatlio app so it can still see and post in the channel. If you skip this, visitor messages stop arriving.

Uninstall

  1. Remove the Chatlio widget code from your website.
  2. In the Chatlio dashboard, open the widget and go to Channel. Under Delete widget, click Delete, then confirm with Delete widget. This deletes the widget and its settings for good. If it is your only widget, Chatlio disconnects and resets it instead, so you can set it up again.
  3. In Discord, open Server Settings → Integrations, select Chatlio and remove it from your server.

Deleting the widget does not delete your Discord channel or its threads. Delete the channel in Discord if you no longer need them.