# Introduction

<a href="https://dashboard.eesel.ai/api/auth/signup?returnTo=v2" class="button primary">Sign up</a> <a href="http://calendly.com/eesel/30" class="button secondary">Demo</a>

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Integrations</strong></td><td>Browse our integrations and learn about how to use them.</td><td><a href="/pages/IoeZDcaR5mALyHHvOtaD">/pages/IoeZDcaR5mALyHHvOtaD</a></td></tr><tr><td><strong>Products</strong></td><td>An overview of our main products, with some helpful tips.</td><td><a href="https://github.com/eeselapp/slack/blob/develop/docs/1.0/broken-reference/README.md">https://github.com/eeselapp/slack/blob/develop/docs/1.0/broken-reference/README.md</a></td></tr><tr><td><strong>Integration Guides</strong></td><td>Specific guides for each integration.</td><td><a href="/pages/kwvpwdsyxEYYuCeMcA6z">/pages/kwvpwdsyxEYYuCeMcA6z</a></td></tr><tr><td><strong>Pricing, admin and more</strong></td><td>FAQs, billing, account admin and more.</td><td><a href="https://github.com/eeselapp/slack/blob/develop/docs/1.0/broken-reference/README.md">https://github.com/eeselapp/slack/blob/develop/docs/1.0/broken-reference/README.md</a></td></tr></tbody></table>

## What is eesel AI?

eesel AI is a platform that allows you to create multiple AI bots that you can connect across your platforms. Your AI can connect with:

* Helpdesks
* Wikis
* Internal chats
* Docs, PDFs, and websites

You can train your AI with lots of sources, including your past tickets, and have it respond based only on the knowledge you give it.

Your AI can also take actions, like creating tickets, updating information, retrieving order info, and more.

With eesel, you can improve your support productivity, automatically handle tickets or incoming queries, or even streamline internal processes.

Create an internal bot to help your team, and a customer facing bot to help your customers self-serve. Create chat bubbles, embed the AI on pages, and more!

## Starting your free trial and creating your first AI bot

To get started, simply:

1. Start a free trial [here,](https://dashboard.eesel.ai/api/auth/signup?returnTo=v2) no payment information required.
2. Click the plus button next to "integrations" on the left sidebar to begin exploring what you want to train the bot with.
3. Add knowledge to the bot with one of the integrations (like uploading a PDF or training on your website).
4. Chat with the bot in the "Chat" tab to see how it responds.
5. Open up the "customize" sidebar to change the way it sounds, structures its responses, and more.
6. Click "create new action" to add in simple actions you want the bot to take.
   1. Make sure to describe in the prompt when and how you want the bot to take these actions.
   2. For more information about this, see our prompts or actions pages.
7. Add the bot to your [Slack](/legacy/integrations/slack), or helpdesk, create a [chat bubble](/legacy/products/ai-chat-bot), or more in order to have it start automatically handling or leaving notes for your teams or customers. See [integrations](https://github.com/eeselapp/slack/blob/develop/docs/1.0/broken-reference/README.md) for more details.

Your free trial will give you 7 days of testing, and will then pause automatically. If you want to extend this trial please login again and click "extend trial" to receive a further 7 days for testing.

Reach out to the team to find out more <hi@eesel.app>


# FAQ

Here are some answers to some common eesel AI questions. Not finding your question here? Reach out via the in-app support channel to ask us directly.

<details>

<summary>How do I change the name of the Default Bot or another Bot?</summary>

The Administrator of the account will need to be the one who changes the name for Bots. With the administrator role, you can then:

1. Head to Settings > Bots
2. Click on the Bot you want to rename
3. Type out the new name of the bot in the name field
4. You're all set!

</details>

<details>

<summary>Can we get an extension on trial? How long will the trial last?</summary>

When you're successfully signed up for the eesel dashboard, you will get 7 days of trial as a business plan so you can explore the eesel product. After that time, the trial will automatically pause if you want to extend it further you can login again to your account and click "extend trial" and you will receive a further 7 days.

\
**Note:** You can't extend the trial after 14 days.

</details>

<details>

<summary>Why did the crawl get stuck?</summary>

Crawling issues usually come down to one of these reasons:

* The URL is private, so our crawler can’t access it.
* The link contains a large number of pages or heavy content, which can take longer to crawl. You can either wait for it to finish or try re-adding the links by refreshing the page.
* The sitemap hasn’t been picked up properly.
* The URL is for a help center or other platform and should be used by our help center crawler instead (see: integrations)

If you are facing these issues, you can try a few ways by using our [Browser extension](https://chromewebstore.google.com/detail/eesel-ai-chatgpt-sidebar/ejhkkbilnpifailgngpkgmiofhioacjd?hl=en) to add specific pages by open the AI Copilot sidebar when you open the specific page and click "add page" (This way will work for private/authenticated sites as well). Re-add the sitemap directly to the crawler.

</details>

<details>

<summary>How do I correct the bot's responses?</summary>

To provide specific instructions to correct your AI bot's responses, you can use our edit button. To do so:

1. Ask the AI a question in the "chat" tab of the dashboard.
2. Click the "edit" button at the bottom of the response you'd like to correct.
3. This will open up a new chat interface where you can have a conversation with the bot about what to change in its response.
4. You should explain to the bot what parts were bad, and what it should have said instead.
5. The bot will revise its response, and confirm whether you are happy with it.
6. Make sure you confirm you'd like that to be the updated way it response to similar queries.
7. The bot will update its Articles to incorporate this new training, and future responses will use this knowledge.

</details>

<details>

<summary>What are Articles? How do I use them?</summary>

Articles are a quick, simple way of adding straightforward knowledge to your bot. They will be used as a source of information to answer questions. You can draft articles, edit them, and set them live to be used to answer queries.

Articles are also what is generated when you have used the [past ticket training](#what-is-the-process-of-training-on-past-tickets-issues) feature, and the [corrections ](#how-do-i-correct-the-bots-responses)feature when you edit the AI's response.

**How to create, edit, and use Articles**

1. To create an Article, simply head to the Article tab and click "New Article".
2. Ensure it contains a straight forward and clear title
3. Write out any content that you'd like the bot to know in plain text
4. Click "Add article" to create the Draft.
5. Select any articles you want to go live with, and hit "Set status to live" to enable the bot to use the Articles in its responses.

At any point in time you can had back to the Articles tab, set the Articles back to draft or edit them live to ensure the bot has the most up to date information.

</details>

<details>

<summary>How do I train on past tickets/issues?</summary>

**What is past ticket training?**

Training your AI bot with past tickets allows eesel to pull selected tickets from your helpdesk and convert them into help articles. You can specify which tickets using a query for ticket parameters like a date range, closed, which agent handled them, specific tags, and more.

The AI processes the selected tickets, and then articles are created based on them. These articles are then used to improve your bot's accuracy and provide more relevant, context-aware responses. The past ticket training will not include any attachments or internal notes by default.

The articles will not be adding live instantly, nor are they added to your public help center. The articles will only appear inside the eesel dashboard for the bot to use. You can find them on the "Articles" tab on the left sidebar.

Once the ticket training is completed, you can:

* Review the articles that were generated
* Edit or remove any that don't suit what you want the bot to know
* Set them live for the bot to use for its responses

**Who can use past ticket training?**

Past ticket training is available for certain helpdesks users, who are also:

* Trial users (with limited usage, and only for some helpdesks)
* Business Plan customers
* Custom Plan customers

The following helpdesks have trial versions available for testing:

* Zendesk
* Gorgias
* Freshdesk
* Jira

For other helpdesk inquiries, we may be able to conduct past ticket training upon request. Please reach out to <hi@eesel.app> with the helpdesk you'd like to run the past ticket training for and we can review your request.

**How do I use past ticket training?**

In order to complete past ticket training you must have the following:

* Your helpdesk domain added to the bot you want to train
* A query or set of parameters you want to use as a filter for the tickets
* A trial account or paid account with eesel AI

Once you've completed the above, you can then head to the Integrations on the sidebar, select your helpdesk and select "sources" or "tickets".

From there, simply:

1. Input the query of your choice
2. Preview the tickets to ensure you are capturing the ones you'd like to process
3. Select process, and wait for the training to be completed (Usually 10-20 minutes, depending on the volume)
4. Once completed, review the "Articles" tab and review all the newly drafted articles.
5. Edit, remove or set live each article that you'd like.
6. Test your bot!

When you use our past ticket training feature, the output from this training is in the form of [Articles](#what-are-articles-how-do-i-use-them).

Once you've finished running the past ticket training, you will see a set of Articles with the AI symbol to demonstrate that they've been generated by AI.

It's best practice to quickly review the generated Articles before going live with them, so you can edit or delete any that may not contain knowledge you want the bot to know.

</details>

<details>

<summary>How do I get in touch with support?</summary>

If you've reviewed our help center and are still unable to find an answer to your question, then please reach out. To get in touch with support, please:

1. Head to your dashboard
2. Click Help and Support in the bottom left.
3. Click "Chat with us".

</details>

<details>

<summary>What are the eesel support hours?</summary>

The eesel AI team usually operates between 9AM-5PM AEST as we're primarily based in Australia.

However, some of our team will be online after 5PM on some days to help accommodate other time zones.

We'll do our best to ensure we get to your questions as soon as we can! We aim to get back to you within 24 hours.

</details>

<details>

<summary>What kind of support will I get for configuring our setup?</summary>

Each customer of ours will be able to get setup support for default integrations without extra cost. However, for more complex prompt engineering and actions, we do have limited availability.

We can offer an Engineering Consultation Add-On for prompt engineering support and complex configuration. For more details about this, check out our [pricing page](https://www.eesel.ai/pricing) or [pricing help page](/legacy/pricing-admin-and-more/pricing).

</details>

<details>

<summary>I want to delete my account and/or data.</summary>

You can delete your account by heading to your settings (top left bot dropdown menu) > Settings > General and click “Delete workspace”. Please note: you cannot undo this action.

If you just want your data removed, you can remove specific links using the integration menu on the left hand side - or if you head to the "overview" page for integrations, you can uninstall specific integrations there also

If you’re looking for custom data retention options, this is a custom item. Let me know what kind of custom data retention you’re looking for and we can explore a custom add-on once on a paid plan.<br>

</details>

<details>

<summary>I want to have a call/meeting with your team for a demo or to discuss other things.</summary>

You can find our demo meeting times here: <https://calendly.com/eesel/30>. If those times aren't suitable for your timezone, can you please provide the timezone you’re operating in and what range of times and dates you are available? We’ll aim to find a timeslot that works. Please make sure you provide details about what you’re looking to discuss and what platforms you’re using.

If you're looking to call one of our team members about a bug, feature request, or issue with your setup, our engineers have limited availability but we would love to get your questions or issues sorted ASAP. The fastest way to get a response is via the in-app chat, with a detailed description of what you're looking for. This will help us determine the best person to connect you with.

For context, most of our team operates around AEST, though we have a 8AM-11PM range of times available in our time to help accommodate other time zones.

</details>

<details>

<summary>Can I train the AI over more than 100 web pages or product pages in the trial?</summary>

Unfortunately, there is a crawl limitation on the trial (though the crawler by default does have a rather large 'leeway' range for larger sites). Once on a paid plan, we can crawl your entire website to ensure that bot has all the knowledge contained there.

</details>

<details>

<summary>Can I sync my knowledge bases/website/help center?</summary>

Syncing is available upon request as part of a paid plan. You won’t be able to enable live syncing on a trial account. You can 'recrawl' your site manually using the website crawler as needed on the trial, then once on a paid plan please share how frequently you'd like it to be crawled and what bots and URLs you would like to apply this sync for.

</details>

<details>

<summary>Can you exclude PII when training on past tickets?</summary>

It's possible for us to exclude PII when training on past tickets, upon request and only on a paid plan. Trial users who use the past ticket training tool will not be able to alter this.\
\
We recommend that in order to train the AI on past tickets accurately, it needs to be able to see the human agent replies, the original customer query and any relevant fields that directed the response, and how the ticket was resolved.

</details>

<details>

<summary>Can I extend my trial?</summary>

Trial accounts have 1 week of trial time by default. If you need more time to test specific features, or other extenuating circumstances have prevented you from testing during that week, please reach out to the team to ask for an extension via the in-app messaging system or by emailing <hi@eesel.app>.\
\
If your trial has already expired, you can also request a trial extension upon sign in and reach out to let us know what you'd like to continue testing.

</details>

<details>

<summary>How to change the avatar/logo/image of the chat bubble?</summary>

You can search for your company’s logo or picture on the internet, or upload an image to Imgur. Right click and select "copy image address".

After you have the link, paste it into the Avatar link field in your chat bubble config page. Feel free to reach out to <hi@eesel.app> if you can't get this avatar working.

</details>

<details>

<summary>How do I get the bot to read internal notes and use all data from a ticket?</summary>

You can use the "Read Context" tool/action to pull full information from ticket fields in order to use that as part of the response. See info about how to use this action [here.](/legacy/getting-started/prompt-and-actions#suggested-prompts)

**What is this?**

This tool allows your bot to access context information that was passed from the triggering system (like a helpdesk webhook). It provides access to metadata and additional information about the current conversation or ticket.

**Common use cases:**

1. **full\_ticket** - Access complete ticket information including all comments with public/internal labels
2. **ticket\_id** - Get the current ticket ID
3. **current\_user\_email** - Access the email of the ticket requester

**Why use this?**

1. Access rich context that may not be available in the conversation history
2. Distinguish between public customer comments and internal staff notes
3. Get structured data about the ticket for more informed responses

</details>

<details>

<summary>Are there user based permissions or access levels? How do I change the admin of an account?</summary>

Right now, the admin of an account is only differentiated from a regular member of an account by their ability to delete the workspace or rename bots.

The majority of features in the eesel dash are available for all members to use as well.

We can offer user access controls, on request, as a custom item on a paid plan. Please send through the details of what sort of UAC you'd prefer to <hi@eesel.app>, once you've subscribed.

</details>

<details>

<summary>Does eesel AI support voice calls?</summary>

No, and it's not on our roadmap at the moment.

</details>

<details>

<summary>How many users can I invite/add on each plan?</summary>

There are no limitations to the number of users or seats you can have. However, as all users can edit and customize bot prompts and knowledge, we generally recommend limiting it to those required for backend processes. Your agents will be able to test and review responses via the integrations you add the bots to.

</details>

<details>

<summary>Is there a limit to the training or integrations added to a bot?</summary>

There are some limitations for trial accounts in terms of training volume for default integrations, but all default integrations have no strict limits on a paid account. For custom integrations, we will provide a quote based on volume.

</details>

<details>

<summary>How do I change or customize the welcome message for the Zendesk Messaging Chat Widget?</summary>

1. Open your eesel AI dashboard.
2. Go to Zendesk Integration > AI Agents > AI Agents for Messaging.
3. Under Appearances, find the Welcome Message field.
4. Add or edit your custom greeting there.

</details>

<details>

<summary>Is there an HTML/source view for the prompt editor?</summary>

No, there isn’t an HTML or source view for the prompt editor at the moment. We’re working on a feature that’ll let you copy prompts between bots while keeping the rich text formatting, but it’s not available just yet.

</details>

<details>

<summary>Does eesel support ERP?</summary>

No, not out of the box. However, you can use our [Custom API add-on](/legacy/integrations/new-or-custom-integration/custom-actions-apis) to build integrations and actions across platforms we don't have integrations with and customise your agent's responsibilities and tasks.

</details>


# Integrations

The magical thing about eesel AI is that it can work with nearly any tool. Train the AI on different "Sources" from any app, and plug the AI into different "Destinations" on any app.

<h2 align="center">Help desks</h2>

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Zendesk</strong></td><td><a href="/pages/kwvpwdsyxEYYuCeMcA6z">/pages/kwvpwdsyxEYYuCeMcA6z</a></td><td><a href="/files/u7SA8EUIzYnTEXPd3V3g">/files/u7SA8EUIzYnTEXPd3V3g</a></td></tr><tr><td><strong>Freshdesk</strong></td><td><a href="/pages/G42s2ymGWqXjyD1IxFBT">/pages/G42s2ymGWqXjyD1IxFBT</a></td><td><a href="/files/3tsGP5XL961jqioTjDJg">/files/3tsGP5XL961jqioTjDJg</a></td></tr><tr><td><strong>Intercom</strong></td><td><a href="/pages/SzUecadqmHY9ObrdZ0j1">/pages/SzUecadqmHY9ObrdZ0j1</a></td><td><a href="/files/ZptNn4vI3jQCW880NFPz">/files/ZptNn4vI3jQCW880NFPz</a></td></tr><tr><td><strong>Gorgias</strong></td><td><a href="/pages/cyldAErei5CZ8utS6wFL">/pages/cyldAErei5CZ8utS6wFL</a></td><td><a href="/files/j7DSMpO80K7m3ruF4lKn">/files/j7DSMpO80K7m3ruF4lKn</a></td></tr><tr><td><strong>Jira Service Management</strong></td><td><a href="/pages/iL2j9jvPgswCct1ifAPr">/pages/iL2j9jvPgswCct1ifAPr</a></td><td><a href="/files/7IqC1oUYlemPk4xKx1BR">/files/7IqC1oUYlemPk4xKx1BR</a></td></tr><tr><td><strong>Front</strong></td><td></td><td><a href="/files/n9PZ2eZv6iFR6aeiYVut">/files/n9PZ2eZv6iFR6aeiYVut</a></td></tr><tr><td><strong>Custom Integration</strong></td><td><a href="/pages/dDFpTNuqXuqN2OEjoHIB">/pages/dDFpTNuqXuqN2OEjoHIB</a></td><td><a href="/files/G7UKQOl3dnUD20Qc1Dsy">/files/G7UKQOl3dnUD20Qc1Dsy</a></td></tr></tbody></table>

***

<h2 align="center">Wikis</h2>

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Website</strong></td><td><a href="/pages/Y0MNAyNGfLmeXOUNUTof">/pages/Y0MNAyNGfLmeXOUNUTof</a></td><td><a href="/files/lcEjZFyLXcmBT5BC1x0C">/files/lcEjZFyLXcmBT5BC1x0C</a></td></tr><tr><td><strong>Confluence</strong></td><td><a href="/pages/dzBorU2KT4mgILxs93Lt">/pages/dzBorU2KT4mgILxs93Lt</a></td><td><a href="/files/dnZTUfscZ3yjlZARFMAt">/files/dnZTUfscZ3yjlZARFMAt</a></td></tr><tr><td><strong>Notion</strong></td><td><a href="/pages/MZ9ishsbPEHfQEZBt5CG">/pages/MZ9ishsbPEHfQEZBt5CG</a></td><td><a href="/files/icdfOOFC0Nht6p8GnCcF">/files/icdfOOFC0Nht6p8GnCcF</a></td></tr><tr><td><strong>Google Drive/Docs</strong></td><td><a href="/pages/DNf9Utjo6nnF0U9yFx1s">/pages/DNf9Utjo6nnF0U9yFx1s</a></td><td><a href="/files/icf6XwZTLekfmQcF2Mng">/files/icf6XwZTLekfmQcF2Mng</a></td></tr><tr><td><strong>PDFs</strong></td><td><a href="/pages/5uZTNY5XmcP6s5g4yN0G">/pages/5uZTNY5XmcP6s5g4yN0G</a></td><td><a href="/files/7vuvWxMeuGQctDRUxt0f">/files/7vuvWxMeuGQctDRUxt0f</a></td></tr><tr><td><strong>Sharepoint</strong></td><td><a href="/pages/GkHFiR65KJKGoAaHVhWg">/pages/GkHFiR65KJKGoAaHVhWg</a></td><td><a href="/files/hTPRLdQ9PH4KklR7Wb7o">/files/hTPRLdQ9PH4KklR7Wb7o</a></td></tr><tr><td><strong>Custom Integration</strong></td><td></td><td><a href="/files/G7UKQOl3dnUD20Qc1Dsy">/files/G7UKQOl3dnUD20Qc1Dsy</a></td></tr></tbody></table>

***

<h2 align="center">Internal team chats</h2>

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Slack</strong></td><td><a href="/pages/D0TwUOqeLfvAsv2FUdFA">/pages/D0TwUOqeLfvAsv2FUdFA</a></td><td><a href="/files/3KCdzhG2cc7PiDFkVf99">/files/3KCdzhG2cc7PiDFkVf99</a></td></tr><tr><td><strong>Teams</strong></td><td><a href="/pages/h6S7Z80bjWjLwXFRijXr">/pages/h6S7Z80bjWjLwXFRijXr</a></td><td><a href="/files/8rndYhcHeTSPQuz3yKg4">/files/8rndYhcHeTSPQuz3yKg4</a></td></tr><tr><td><strong>Custom Integration</strong></td><td><a href="/pages/dDFpTNuqXuqN2OEjoHIB">/pages/dDFpTNuqXuqN2OEjoHIB</a></td><td><a href="/files/G7UKQOl3dnUD20Qc1Dsy">/files/G7UKQOl3dnUD20Qc1Dsy</a></td></tr></tbody></table>

***

<h2 align="center">More</h2>

<table data-view="cards" data-full-width="false"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Website</strong></td><td><a href="/pages/Y0MNAyNGfLmeXOUNUTof">/pages/Y0MNAyNGfLmeXOUNUTof</a></td><td><a href="/files/lcEjZFyLXcmBT5BC1x0C">/files/lcEjZFyLXcmBT5BC1x0C</a></td></tr><tr><td><strong>Custom Integration</strong></td><td><a href="/pages/dDFpTNuqXuqN2OEjoHIB">/pages/dDFpTNuqXuqN2OEjoHIB</a></td><td><a href="/files/G7UKQOl3dnUD20Qc1Dsy">/files/G7UKQOl3dnUD20Qc1Dsy</a></td></tr><tr><td><strong>Shopify</strong></td><td><a href="/pages/O3sKiIGDOoduPGTQm0Yz">/pages/O3sKiIGDOoduPGTQm0Yz</a></td><td><a href="/files/Alhr7QQuAlA5E8PqShJT">/files/Alhr7QQuAlA5E8PqShJT</a></td></tr><tr><td><strong>YouTube</strong></td><td><a href="/pages/1HZn4xFdgByKWtJo1JTZ">/pages/1HZn4xFdgByKWtJo1JTZ</a></td><td><a href="/files/3b9knuRiwcmmENk5ZcEo">/files/3b9knuRiwcmmENk5ZcEo</a></td></tr></tbody></table>


# Prompt and actions

## What is the prompt?

For each bot, there is a Customization section on the sidebar of your dashboard.

Once there, you will see a text box for your to craft a prompt for your bot. This prompt will be used for this specific bot across all Destinations you’ve assigned it to.

You can use this customization box to provide instructions on things like:

* Tone
  * Describe what kind of bot it is. “You are a bubbly and kind bot working for Acme.”
* Instructions
  * Provide simple instructions about what to do in certain scenarios. “If you can’t help, inform them you’re unable to answer and suggest they contact <support@acme.com>”
* Parameters and rules
  * Don’t answer in any other language unless specifically requested to.
  * Always use a relevant emoji at the start and end of your message.

The prompt has a very long context window, so you can be as specific as you like. You can create conditional scenarios, add in simple FAQs that the bot should know about, and explain how to handle different types of tickets.

The following prompt ideas are helpful for lots of different types of AI bots. For more specific examples, or prompts that work for specific integrations, see our [integrations page](https://github.com/eeselapp/slack/blob/develop/docs/1.0/getting-started/broken-reference/README.md).

### Suggested Prompts

<details>

<summary><strong>Business Hours</strong></summary>

The bot is aware of the time in UTC time zone. You can use the prompt to explain to the bot what your business's hours are, and what it should do if it's within or outside of those hours.

Make sure you add the **"think" action** through the 'create new action' button, and then mention the "think" action in the prompt.

You also need to include your time zone based around UTC.

An example prompt might be:\
\
`"Business hours context to ALWAYS follow: our business operates on Monday - Friday. The time zone we operate in is UTC-4. Always use the think tool to think about the current time and our business hours before making a decision on whether its in business hours."`

</details>

<details>

<summary><strong>Clarifying Questions</strong></summary>

Your bot is able to ask clarifying questions that enable the AI to ensure it's addressing the right questions with the right information.

An easy way to use the prompt to ensure it is asking clarifying questions is to include something like:

"If a user asks a question, always ensure you clarify with them what product they are referring to (if they haven't already specified)."

Or, you can add in more specific guidelines for clarifying questions:

`"At the start of every conversation, always ask the user to provide the following:`

* `Email address`
* `Product name`
* `A summary of their issue`

`Once this has been provided, then you can assist with their query."`

</details>

<details>

<summary><strong>Language</strong></summary>

By default, eesel AI has access to 80+ languages and is able to respond and understand all of these languages.

Using the prompt, you can tell the bot to either:

`"Always respond in the language of the user."`

Or

`"Only ever respond in English".`

If you'd like to provide a translation of the messages, like as an internal note or to the user, you can then specify that the bot should answer the query, and also provide a translated version etc.

</details>

<details>

<summary><strong>What to do when the AI doesn't know the answer</strong></summary>

Having guardrails for when the bot doesn't know the answer is always recommended to include. Depending on how you want the AI to handle things in this instance, there are a few options:

* Ask clarifying questions (see above) to ensure the AI understands what is being asked
* Let the user know that it's unable to answer their query and they should contact another support channel
* Let the user know that it's unable to answer their query, and that they will escalate them to an agent to handle
* Let the user know that it's unable to answer their query, and if they would like to create a support ticket.

In each instance, these can be used in conjunction with the suitable actions that align with the integrations you have. For example, using the `zendesk_create_ticket` action or the `freshdesk_assign_ticket` action.

</details>

<details>

<summary><strong>Escalation</strong></summary>

Escalation is important for instances where you'd like the user to be able to access a chat with a live human. In more instances, this is highly recommended to avoid frustration with customers who prefer to speak to humans.

Within the prompt, you can add in a simple `"If the user asks to speak to a human, then always use 'zendesk_assign_ticket' action with new_assignee='[Sales Team Assignee ID]'"` (or the equivalent) helpdesk action.

This will allow you to assign tickets to an agent or a team, based on the ID of that agent or team.

</details>

<details>

<summary><strong>When you don't want the bot to reply</strong></summary>

In certain circumstances, you may not want the bot to reply. This might be useful if:

* You don't want the bot to reply to spam, or harmful messages
* You don't want the bot to attempt to handle sensitive tickets, so that it can hand off immediately

To do this, you can use the **"do not reply" action.** Simply add the action via "create new action" and add to the prompt something like:

`"If the user's question is about purchasing a custom plan, then use 'do_not_reply'. Then, use 'zendesk_internal_note' to leave a note about why you didn't leave a reply, and what the suggested response might be."`

</details>

## What are actions?

Actions are things the bot can do or tools it can use when it's triggered. They can be used during conversations, triggered by the user's messages, or can be done under certain conditions. Some actions are platform specific and others are for the bot to take on its own (like increasing reasoning for certain conditionals, or using info from another bot.)

### How to enable actions

1. Head to the Customize tab
2. Click "Create new action"
3. Select the action you'd like to enable, and click 'enable'.
   1. Some actions require information like API keys or domains to be connected
4. Add the 'action' name in the prompt. For example, "Use 'create\_ticket' action when XYZ".

### Integration actions

Integration actions are those that take actions inside other platforms. This is useful for teams looking to take actions inside help desks to help triage tickets, or action things like pulling Shopify order information during a conversation.

Some examples:

* Assigning a ticket to an agent or team
* Creating a ticket
* Pulling order information
* Updating a ticket status or field

If you head to the 'create new action' screen, you should be able to filter by each platform we currently have actions for.

Actions with helpdesks require you to connect your helpdesk domain. Actions to Shopify and other platforms also require things like an API key etc. to enable.

These actions also require mention in the prompt of when and how to use these actions, once enabled. Explore information about your specific [integration](https://github.com/eeselapp/slack/blob/develop/docs/1.0/getting-started/broken-reference/README.md) for more details.

We're constantly adding to our action menu, so keep your eyes on new actions!

### Available Actions (non-integration specific) and how to use them

<details>

<summary><strong>Think</strong></summary>

**Think** action: add the think action to enable the bot to spend more time reasoning, useful for complex conditionals.

Example: "Use the '`think`' action when you decide which set of instructions you follow below, based on the product the user has specified."

</details>

<details>

<summary><strong>Do not reply</strong></summary>

**Do not reply** action: add this action to tell the bot in which instances it should not reply at all.

Example: "If the query is using rude words, is confrontational, and extremely negative, then use the '`Do not reply`' action."

</details>

<details>

<summary><strong>Read full document</strong></summary>

**Read full document** action: add this action if you want eesel to read an entire document in certain scenarios to ensure it's able to pull full context from important documents.

Example: Always use the `retrieve_full_document` tool to find the most relevant product document and read it fully, before responding to the query.

</details>

<details>

<summary><strong>Use knowledge from another bot</strong></summary>

**Search documents of another bot**

1. This is used if you want a new bot but want it to be able to access the training resources/knowledge of another bot.
2. Example prompt: "If the question is to do with "Product A", then always use `retrieve_sibling_documents` with "2da11eac-5585-4837-91b9-09b97f631288" to retrieve the relevant documents for "Product A" before answering"

</details>

<details>

<summary><strong>Consult/direct query to another bot</strong></summary>

**Consult another bot**

1. This is used if you want a new bot but you want it to be able to access the training and *actions/customization* of another bot. Useful in instances where you want one bot to welcome/triage the queries, and then consult another bot to handle it entirely.This is useful when:
   1. Situations when adding all Sources one bot alone leads to inaccurate answers.
   2. Helpdesk triaging needs to be set up
   3. You want to ask several clarifying questions before routing
2. Example prompt: "If the question is about "Product A", then always use consult\_bot with bot ID:123489 to answer the question."
3. The bot ID can be found by going to the chat page of the dashboard of the target bot, looking at the URL of the bot and copying the string of letters and number found between /v2/ and /chat.

</details>

<details>

<summary>Generate suggestions</summary>

Use this action to allow your bot to generate contextual quick suggestions (chips/buttons) to guide the user to next best steps.

Example prompt: If someone asks about looking for help with a product, always use ui\_generate\_suggestions after answering, to generate relevant questions that might help better direct the user's query.

</details>

<details>

<summary>Read context</summary>

`read_context`

* **Purpose:** Reads context information from the current ticket invocation, including the full ticket details with internal notes.
* **Key Params:** `key: str` (the context key to retrieve, e.g., "full\_ticket", "ticket\_id", "current\_user\_email")
* **When/How to Use:** Use this tool to access detailed ticket information that isn't available in the standard conversation context. The most useful key is "full\_ticket" which provides the complete ticket data including subject, description, and all comments (both public and internal notes). This is particularly valuable when you need to understand the full context of a ticket, including internal notes that agents have left, or when you need specific ticket metadata.
* **Example Prompt Instruction:**

  > If you need to understand the complete ticket history including internal notes from agents, or if you need specific ticket details beyond what's in the conversation, call read\_context with key='full\_ticket'. This will give you access to the complete ticket structure including all internal communications.
  >
  > To get the current ticket ID, call read\_context with key='ticket\_id'.
  >
  > To get the current user's email address, call read\_context with key='current\_user\_email'.

**Available Context Keys:**

* `full_ticket`: Complete ticket data including subject, description, and all comments (public and internal)
* `ticket_id`: The current ticket's ID
* `current_user_email`: Email address of the ticket requester

</details>

## FAQ

<details>

<summary>Can I adjust the bot's tone based on the channel?</summary>

Yes! The way to do this depends on what platform the bot is using to respond.

For helpdesks, you can use one of the helpdesk actions to pull context about the 'channel'. (Like the 'get field values' action or the ['read context' action](#read-context)), and then adding to the prompt to explain to the bot what kind of tone or formatting it should use based on what that action returns.

For other platforms, it's recommended to create unique bots for different channels or audience segments. That way you can either connect a bot completely uniquely prompted for that channel's tone, or use the '[consult bot' action](#consult-direct-query-to-another-bot) to route conversations to the right bot that is prompted to handle things differently, based on the context of the query.

</details>


# AI Agent

How to set up eesel AI as an AI Agent

<figure><img src="/files/AWjCOtZyTSoyRU0Bi0ot" alt=""><figcaption></figcaption></figure>

eesel AI plugs into Zendesk, Freshdesk, Jira or other help desk tools, learns from your past replies and other docs, and starts handling your frontline support. You can:

* Automatically handle frontline support
* Take actions across your platforms to automate your workflow
* Escalate to your agents

You can check out each integration [here](broken://pages/Kz5HLYgSs2fqeDtZAQxA).

## Setting up AI Agent

1. **Create** an eesel AI account
2. **Create an AI bot** and start training it on your knowledge
   1. Add your help center, Confluence pages, website, and more
3. Connect your **help desk domain**
   1. Optional: [train on past tickets](/legacy/getting-started/faq#id-like-more-information-about-past-ticket-training)
4. Test and customize the [prompt](/legacy/getting-started/prompt-and-actions) in the "chat" tab.
5. Add [actions](/legacy/getting-started/prompt-and-actions) to enable your bot to automate more than just replies
   1. We recommend adding an 'assign ticket' action for escalations as a good starting point.
6. Click your **helpdesk integration** in the left sidebar > **AI agent**
7. Click **"Leave public replies"** and click **"live"** when you're ready for it to respond.

By default, eesel AI will automatically respond to all incoming tickets. Some helpdesks allow for trigger and condition changes to alter the tickets eesel responds to, but for more guidance about how to do this please reach out to <hi@eesel.app> or our in-app support channel.

## FAQ

<details>

<summary>Can we set up a delay for responses to look more human?</summary>

At the moment, we're working on a delay for responses.

</details>

<details>

<summary>Can the AI Agent leave a public reply and an internal note/comment at the same time?</summary>

Yes, this is possible. The bot can be set up so that one action leaves an internal note, while the AI Agent sends a public reply to the customer.

You need to set the bot to leave public replies as a default behaviour and then add the 'leave internal note' action to the prompt in the Customize tab. Then, explain in the prompt that the AI should always leave a note with "X" information each time it receives a ticket.

For example, it will reply to the customer with an answer and leave a note with a translated version of the ticket.

</details>


# AI Copilot

What is AI Copilot with eesel AI?

<figure><img src="/files/woURwJMojrpZfiqlRQva" alt=""><figcaption></figcaption></figure>

AI Copilot will help you get things done without needing to switch tabs. You can:

* Draft replies instantly without switching tabs
* Chat over your docs and other sources
* Conversationally edit and rewrite responses

You can either use our AI Copilot sidebar extension, or have AI connect to your helpdesk

## How to set up the eesel AI Copilot in your browser

1. Head over to the Chrome Web Store listing [here](https://chromewebstore.google.com/detail/eesel-ai-chatgpt-sidebar/ejhkkbilnpifailgngpkgmiofhioacjd?hl=en) and click "**Add to Chrome**"
2. **Open your extensions** (click the puzzle icon) and select the eesel AI extension. **Pin it** to your browser window.
3. **Login** to your eesel AI account, or create one if you don't already have one.
4. Select the bot you want to chat with or draft replies with.
   1. If you haven't trained the AI with anything, then you should select some [integrations](/legacy/getting-started/integrations) to help add all your sources. You can also use the extension to add web page as sources quickly.
5. Navigate to a ticket in your helpdesk.
6. Open the extension and click "Draft response."
7. Copy and paste to send, or conversationally edit in the browser.

You have your own style in how the AI Copilot behaves and sounds, using the [prompt](/legacy/getting-started/prompt-and-actions#what-is-the-prompt) for your bot.

## How to set up AI Copilot in your helpdesk

You can also use eesel AI to leave drafted replies inside you helpdesk. These replies will be left as internal notes as each ticket comes in. The AI can:

* Leave an internal note with a perfectly drafted reply
* Tag, route, update fields, and more automatically

To add the AI to your helpdesk for internal notes, simply:

1. Connect your helpdesk domain by heading to the **eesel dashboard** > **Integrations** > **your help desk**
2. Click the **connect/start setup** button and **allow access** to your helpdesk domain.
3. Train the bot over your help center, or other platforms (like [Confluence](/legacy/integrations/confluence) or [Notion](/legacy/integrations/notion))
4. Click your helpdesk integration on the left sidebar
5. Click **AI Agent**
6. Select **"Leave internal note"**
7. Click **"Live"**
8. Customize how it sounds and acts in the Customize tab of the dashboard. (See help for this [here](/legacy/getting-started/prompt-and-actions), and on your specific [integration pages](broken://pages/Kz5HLYgSs2fqeDtZAQxA))

Internal notes will now be left for all incoming tickets. For more specific configuration, see your [integration page](broken://pages/Kz5HLYgSs2fqeDtZAQxA) of this help center or reach out to [support](/legacy/getting-started/faq#how-do-i-get-in-touch-with-support).


# AI Triage

Automatically triage and route your tickets

<figure><img src="/files/DI8BTISEqxh6eMSclO3S" alt=""><figcaption></figcaption></figure>

eesel AI plugs into your Zendesk, Freshdesk, and other helpdesk tools, and based on your workflows route, tag, edit and close tickets. Get a perfectly organised help desk, all automatically.

Our AI triaging operates using the bot's prompt and actions. Once you've added your AI bot to your helpdesk, it can:

* Tag
* Close
* Update ticket fields
* Assign to agents or teams

And more!

## To set up AI triage:

1. **Create an AI bot** in your eesel dashboard
2. **Train it** on some knowledge so that it has context of your company, and its role.
3. **Connect your helpdesk domain** via Integrations in the sidebar.
4. Head to the **Customize** tab.
5. Enable the [actions](/legacy/getting-started/prompt-and-actions) you want to use, and update the prompt to explain to the bot how and when to use those actions.
   1. For example: add in the "Tag" action, and add to the prompt: "For every new conversation, use 'zendesk\_tag\_ticket' action, using the relevant tag from the following options: "Billing", "Bug", "Support".
   2. You can find integration specific actions on the [integration page](https://github.com/eeselapp/slack/blob/develop/docs/1.0/products/broken-reference/README.md) of your helpdesk. You can also find non-integration specific actions (like 'do not reply') [here](/legacy/getting-started/prompt-and-actions).
6. Head to the **AI Agent** tab of the helpdesk integration on the left sidebar
7. Click "No reply", and click "Live" to enable it to act live on incoming tickets, without leaving notes or public replies.
   1. AI Triage can operate at the same time as AI Agent or AI Copilot, so you can select "Leave public replies" or "Leave internal notes" and have AI Triage still operate.


# AI Internal Chat

How to set up an internal AI bot

<figure><img src="/files/6OfO28orIted3fFy6KT9" alt=""><figcaption></figcaption></figure>

With eesel AI, you can set up an AI bot that is trained on your internal documentation and designed for your team.

In most instances, companies like to have some public/customer facing bots, and have a separate bot for their internal teams. This way, you can have each bot trained, prompted, and designed specifically for your employees while keeping everything for your customers completely separate.

Internal chat AI is great for:

* Onboarding new employees
* Finding company documentation, policies or procedures instantly
* Streamlining support, sales, HR, or other teams in their workflows

At the moment, we currently have integrations for:

* [Slack](/legacy/integrations/slack)
* [Teams](/legacy/integrations/teams)

eesel AI is added as an app to your workspace, and can be @ mentioned in channels or privately messaged. The responses are based on the way you train your AI bot.

Multiple bots can be added to different channels. For more information, visit each help page for [Slack](/legacy/integrations/slack) and [Teams](/legacy/integrations/teams) and reach out if you need more guidance, either via our support chat or <hi@eesel.app>.


# AI Chat Bubble

How to create and customize an AI chat bubble on your website

<figure><img src="/files/CETbLy3ND6ZRxhaOGSv0" alt=""><figcaption></figcaption></figure>

## What is an AI chat bubble?

eesel AI can be added as a chat bot to your website, help center or other pages in different ways. It is a useful chat bot that helps to answer queries based on the knowledge you train it on.

You can customize it to answer in certain ways, create tickets in certain circumstances, deflect questions, escalate, and more.

An AI chatbot is useful for:

* Ecommerce sales and product inquiries
* Self-service of order inquiries or other questions from customers
* As a guide for your help center and support questions

## What implementation options are there for an AI chat bubble?

eesel AI has our own options for creating a new chat bot for your sites or apps:

1. **Chat bubble**
   1. This is a simple code snippet you can configure to add eesel to your site or help center.
2. **Chat inline**
   1. This is an embedded version of the chat bot that you can add to your site.

Some helpdesk also have their own version of a chatbot/widget that you may be able to integrate eesel AI with. For example, [Zendesk's messaging widget](/legacy/integrations/zendesk/zendesk-messaging-widget-integration). For help integrating with an existing widget, reach out to support.

## How to set up and customize your chat bubble

1. **Log in** to your eesel AI dashboard.
2. **Choose or create a bot** you want to power your chat bubble. We recommend having a specific bot for your chat bubble in order to have a unique prompt and knowledge that suits the intended audiance and medium.
3. **Add knowledge** sources such as your website product pages, Google Drive folders, or Notion pages. The AI will use these to find answers.
4. Navigate to the **Integrations tab** and search for Chat Bubble > click install/enable. This will add the integration to the left sidebar.
5. **Configure** basic appearance and greeting options in the "configure" menu.
   1. Welcome message: this is the initial message that greets the user when they open the chat.
   2. Title: The name of the chat bubble.
   3. Image: the avatar the chat bubble has. It will display this icon at the bottom right of your site to click on. This image needs to be added via URL, so you can upload your desired image to a site like imgur, or find it on Google Images, open the image on a web page or right click and copy the image URL.
   4. Colour: theme colour for the button and other components on the chat bubble.
   5. Hide branding: for removing 'eesel AI' branding at the bottom.
   6. Suggested questions: Leave blank to let the bot create its own, or specify what questions you want to appear by default upon opening the chat bubble.
6. **Customize** your chat bubble prompt and **add actions.** See the [Shopify](/legacy/integrations/shopify), [Magento](/legacy/integrations/magento), or [Picquer](/legacy/integrations/picqer) integration pages for platform specific actions, or [helpdesk integration](/legacy/getting-started/integrations) pages for escalating conversations via 'create ticket' actions.
7. **Preview** the chat bubble to make sure everything looks and works as expected.
8. **Copy the code snippet** and paste it into the `<body>` tag of your website.

***

### Tips

* Use clear instructions for tone and role:\
  \&#xNAN;*Example*: “Respond concisely, stay friendly, and answer only based on verified sources.”
* Include a transparent and easy way for customers to escalate. (See the relevant [integration pages](https://github.com/eeselapp/slack/blob/develop/docs/1.0/products/broken-reference/README.md) for the actions to escalate)

***

**Important Notes**

* You need an active eesel AI account to access chat bubble setup.
* Some customization options like branding removal may depend on your subscription tier.
* Ensure your sources are well-structured and up to date to provide accurate responses.
* For issues with embedding or design compatibility, reach out to eesel support for assistance.

## Changing the position of the chat bubble

The eesel AI widget is fully customizable in terms of position. You can adjust it using CSS or JavaScript to fit your layout or avoid overlapping with other elements.

### 🎨 Example 1: Move the widget with CSS <a href="#h_9c4190d819" id="h_9c4190d819"></a>

```
#eesel-oracle-widget > div {
   right: 40px;
   bottom: 80px; 
}
```

### 📱 Example 2: Responsive position with a media query <a href="#h_ef82f07cab" id="h_ef82f07cab"></a>

```
@media (max-width: 768px) { 
   #eesel-oracle-widget > div {
      right: 10px;
      bottom: 20px;
   }
}
```

### 🔧 Example 3: Adjust with JavaScript <a href="#h_ccb334b034" id="h_ccb334b034"></a>

```
document.querySelector("#eesel-oracle-widget > div").style.right = "40px"; document.querySelector("#eesel-oracle-widget > div").style.bottom = "80px";
```

You have full control — just target `#eesel-oracle-widget > div` in your styles or scripts.

## Custom metadata

It is possible for you to pass in extra metadata for your chat bubble. Simply add `EESEL_EXTRA_METADATA` inside of `EESEL_WIDGET_V2_CONFIG` within the code snippet.

```javascript
window.__EESEL_WIDGET_V2_CONFIG__={
  // ... the rest of the config
  EESEL_EXTRA_METADATA: {
    "custom_key_a": "value",
    "custom_key_b": "value",
  }
}
```

Note that we currently only support fixed values for the metadata.

## Frequently asked questions

<details>

<summary>Can eesel AI chat bubble be added to a mobile app?</summary>

This is not possible natively, but we can arrange for this as a custom item.

</details>


# Zendesk

AI agents and copilot to streamline support

eesel AI instantly plugs into your Zendesk, learns from your past tickets, macros, help center and more, and seamlessly joins in like a new teammate.

eesel doesn't get added as a direct app or side view - instead, eesel is connected via webhook which you can find under your triggers in Zendesk.

***

## Training your AI with Zendesk

{% tabs %}
{% tab title="Help Center" %}
**Help Center**

For **public help centers**:

1. Choose the bot, or create a new bot, to connect with your help center.
2. Click the integrations menu on the sidebar.
3. Click Zendesk.
4. Click "Setup integration".
5. Enter you help center URL and click "Start crawling"

The bot will then crawl your help center and start adding links to your bot to use as knowledge within minutes.
{% endtab %}

{% tab title="Macros" %}
**Macros**

When you connect your Zendesk domain to your eesel AI bot, it will automatically index your macros and ad them to your AI bot.

1. Go to your eesel dashboard and unfurl the Zendesk integration on the left sidebar
2. Click Sources
3. Click Macros
4. Set them live or as drafts to enable or disable them.
5. Click re-sync to update them after any changes in Zendesk.
   {% endtab %}

{% tab title="Past Tickets" %}
**Past Tickets**

Training on past tickets requires you to connect your Zendesk domain to the bot you want to train. Once that's done, click on your Zendesk integration on the left sidebar > Click 'Sources' > 'Past Tickets'.

We recommend filtering your tickets using the query in order to get the best quality results. When training on past tickets, eesel AI reads the full public comment history on each ticket (the entire conversation), not just the initial message. Internal notes are not included in training.

**Writing a Ticket Filter Query**

Read more about it in [Zendesk's official documentation](https://support.zendesk.com/hc/en-us/articles/4408886879258-Zendesk-Support-search-reference).
{% endtab %}

{% tab title="Restricted Help Center" %}
**Restricted Help Center**

1. Install our browser extension
2. Open up the tabs you want to train the AI with
3. Click 'Add sources' > 'Add all tabs in browser'.

**On a paid plan**, reach out to us through support and we can automatically crawl and update your restricted help center.
{% endtab %}
{% endtabs %}

***

## Create a Zendesk AI Agent

<figure><img src="/files/k2mXABZ2MRmHEzsSJKTX" alt=""><figcaption></figcaption></figure>

To set up eesel as an AI agent inside Zendesk, see our [AI Agent guide](/legacy/products/ai-agent).

eesel AI, once connected to your Zendesk domain, acts as an agent inside Zendesk. It will operate as a "web hook" in your triggers.

If you want to alter what tickets it responds to, we recommend cloning your trigger and editing the conditions there to achieve the desired result.

eesel will 'appear' in Zendesk as the user who has added/authorized it initially. To change who eesel appears as, or to use a new agent ID specifically for the bot, you can add in the user ID in the AI Agent tab of the Zendesk integration in the eesel dash.

***

## Create a Zendesk AI Copilot

<figure><img src="/files/woURwJMojrpZfiqlRQva" alt=""><figcaption></figcaption></figure>

Check out our [setup guide](/legacy/products/ai-copilot) for using AI Copilot in your Zendesk.

eesel AI can act as an AI copilot for your Zendesk by using our [browser extension](https://chromewebstore.google.com/detail/eesel-ai-chatgpt-sidebar/ejhkkbilnpifailgngpkgmiofhioacjd?hl=en).

The AI can automatically pick up on the content of a ticket, and generate a response based on the knowledge it has access to.

You can use the browser extension to select the bot you want to use for its answer, and then draft a response and chat with the bot to edit before you paste is as a reply.

***

## Zendesk Messaging Widget Integration

eesel AI can operate inside your existing Zendesk Messaging Widget. It will be able to operate inside the widget without changing the widget itself in any way.

To do so, you must be on a paid Business Plan. You must also have access to Conversations APIs.

Once you have the above ^ you can then:

1. Click open the Zendesk integration menu on the left sidebar
2. Click AI Agent
3. Click AI Agents for messaging
4. Click "Configure API keys", and input the field values you get after creating a new API in Conversations API in your Zendesk.
5. Once configured, you should be able to follow the prompts to set up your configuration in eesel.

For more advanced information about the Zendesk messaging widget, [go here](https://github.com/eeselapp/slack/blob/develop/docs/1.0/integrations/zendesk/zendesk-messaging-widget-integration/README.md).

***

## Zendesk Actions

Once you've trained the bot and integrated it with your Zendesk, it's important to customize it and add actions so that you can get the most out of your AI and automate manual tasks.

The following are Zendesk specific actions. You can use them in combination with other actions on different platforms as well.

<details>

<summary>Close ticket</summary>

`zendesk_close_ticket`

* **Purpose:** Close a Zendesk ticket.
* **Key Params:** `close: true`
* **When/How to Use:** Use this tool when the user explicitly indicates their issue is resolved, they are satisfied with the assistance, or the conversation reaches a natural conclusion where closure is appropriate according to your support process. The ticket ID for the current conversation is automatically available to the tool.
* **Example Prompt Instruction:**

  > If the user explicitly states their problem is solved, they are satisfied with the outcome, or the conversation has concluded and no further action is required, you must confirm this understanding with the user. If they agree, call the zendesk\_close\_ticket tool to mark the ticket as closed.

</details>

<details>

<summary>Leave internal note</summary>

`zendesk_leave_internal_note`

* **Purpose:** Add a private internal note to a Zendesk ticket.
* **Key Params:** `note: str`
* **When/How to Use:** Use this tool to add context, summarize the AI's interaction, or flag important information for a human agent who might review the ticket later. This note is not visible to the end-user. Use this when the AI performs an action (like escalating) or when the conversation contains nuances a human agent should be aware of. The ticket ID is automatically available.
* **Example Prompt Instruction:**

  > If you escalate a conversation to a human agent, or if you are unable to fully resolve the user's query but have provided some assistance, you must call zendesk\_leave\_internal\_note. The note parameter should be a brief summary of the user's request and the steps you took or information you provided before the handover.

</details>

<details>

<summary>Tag ticket</summary>

`zendesk_tag_ticket`

* **Purpose:** Add tags to a Zendesk ticket for categorization and workflow automation.
* **Key Params:** `tag: str` (space-separated)
* **When/How to Use:** Use this tool when the conversation's topic or resolution falls into specific categories you use for reporting, routing, or automation. Instruct the AI to identify keywords or themes in the conversation to determine the appropriate tags. If applying multiple tags in one call, list them space-separated in the `tag` parameter string. The ticket ID is automatically available.
* **Example Prompt Instruction:**

  > After assisting the user, analyze the conversation's main topic and the resolution. If the user's request was related to 'billing', 'shipping', or 'product support', you must call zendesk\_tag\_ticket. The tag parameter should be the relevant tag (e.g., 'billing', 'shipping', 'product-support'). If the issue was successfully resolved by you, also add the tag 'ai-resolved'. If both apply, use space-separated tags like 'shipping ai-resolved'.

</details>

<details>

<summary>Assign ticket (escalation)</summary>

`zendesk_assign_ticket`

* **Key Params:** `new_assignee: str`
* **When/How to Use:** Use this tool when the query requires human expertise that the AI cannot provide, or when the conversation needs to be routed to a specific team (represented by an assignee). You will need to define how the AI identifies the correct `new_assignee` identifier (which is typically an ID or a precisely matched name depending on your Zendesk setup and the tool's exact implementation, but is not an email address). The ticket ID is automatically available.
* **Example Prompt Instruction:**

  > If the user's request involves a complex technical issue you cannot resolve, or if the user specifically asks to speak with a human agent, you must inform the user you are escalating the issue and then call zendesk\_assign\_ticket. Set the new\_assignee parameter to the specific ID or identifier for your 'Technical Support Team' group.

</details>

<details>

<summary>Chat handover (Zendesk messenger)</summary>

`zendesk_chat_handover`

* **Purpose:** Handover a Zendesk Messenger chat to a human agent.
* **Key Params:** — (No explicit parameters)
* **When/How to Use:** This is specifically for chat interactions. Use this when the AI determines it cannot resolve the user's query in a chat format and human intervention is required immediately.
* **Example Prompt Instruction:**

  > In a chat conversation, if the user's query is unclear, requires account-specific actions you cannot perform, or the user explicitly asks to chat with a human, you must inform the user that you are connecting them with an agent and then call the zendesk\_chat\_handover tool.

</details>

<details>

<summary>Update ticket</summary>

`zendesk_update_ticket`

* **Purpose:** Updates a Zendesk ticket with the provided payload.
* **Key Params:** `payload: str` (JSON string)
* **When/How to Use:** Use this for modifying various ticket fields (status, priority, custom fields, etc.). The ticket ID for the current conversation is automatically available. You must instruct the AI to construct the JSON payload based on the desired updates indicated by the user or the workflow logic.
* **Example Prompt Instruction:**

  > If the user indicates their issue is resolved and you have confirmed it, or if the workflow requires setting the ticket status to 'solved', you must call zendesk\_update\_ticket. Set the payload parameter to a JSON string that updates the status, e.g., payload='{"status": "solved"}'.
  >
  > If the user reports a high-priority issue you are escalating, you might call `zendesk_update_ticket` with `payload='{"priority": "high"}'`.
  >
  > To update a custom field (ID 123), call `zendesk_update_ticket` with `payload='{"custom_fields": [{"id": 123, "value": "new value"}]}'`.

</details>

<details>

<summary>Get ticket fields</summary>

`zendesk_get_ticket_fields`

* **Purpose:** Retrieves specified fields from a Zendesk ticket.
* **Key Params:** `fields: str` (comma-separated)
* **When/How to Use:** Use this when you need specific information from the current ticket (e.g., its current status, assignee, or a custom field value) to inform your next action or response. You must specify the field names (standard or custom field IDs as strings) you need. The ticket ID is automatically available.
* **Example Prompt Instruction:**

  > Before escalating a ticket, you should check its current status and assignee. Call zendesk\_get\_ticket\_fields with the parameter fields='status,assignee\_id'. Use the results to inform the user about the current state or to decide who to assign it to next.
  >
  > If a user's query depends on a custom field (ID 456), call `zendesk_get_ticket_fields` with `fields='456'`.

</details>

<details>

<summary>Read Context</summary>

`read_context`

* **Purpose:** Reads context information from the current ticket invocation, including the full ticket details with internal notes.
* **Key Params:** `key: str` (the context key to retrieve, e.g., "full\_ticket", "ticket\_id", "current\_user\_email")
* **When/How to Use:** Use this tool to access detailed ticket information that isn't available in the standard conversation context. The most useful key is "full\_ticket" which provides the complete ticket data including subject, description, and all comments (both public and internal notes). This is particularly valuable when you need to understand the full context of a ticket, including internal notes that agents have left, or when you need specific ticket metadata.
* **Example Prompt Instruction:**

  > If you need to understand the complete ticket history including internal notes from agents, or if you need specific ticket details beyond what's in the conversation, call read\_context with key='full\_ticket'. This will give you access to the complete ticket structure including all internal communications.
  >
  > To get the current ticket ID, call read\_context with key='ticket\_id'.
  >
  > To get the current user's email address, call read\_context with key='current\_user\_email'.

**Available Context Keys:**

* `full_ticket`: Complete ticket data including subject, description, and all comments (public and internal)
* `ticket_id`: The current ticket's ID
* `current_user_email`: Email address of the ticket requester

</details>

<details>

<summary>Create ticket</summary>

`zendesk_create_ticket`

* **Purpose:** Creates a new ticket in Zendesk.
* **Key Params:** `summary: str, name: str, email: str`, optional `tags: List[str]`, optional `group_id: int`, optional `assignee_id: int`
* **When/How to Use:** Use when a user's request warrants creating a new, separate ticket, such as a new inquiry identified within an existing conversation, or a request received via a non-ticket channel that needs formal tracking. You must gather the `summary`, `name`, and `email` of the requester. Optional parameters like `tags`, `group_id`, or `assignee_id` can be set based on workflow rules or user input.
* **Example Prompt Instruction:**

  > If a user asks a new question that is unrelated to the current conversation's topic, offer to create a new ticket for that specific question. If they agree, collect a brief summary of the new question, the user's name, and email address. Call zendesk\_create\_ticket with the collected summary, name (from user context), and email (from user context). Add a tag like tags=\['new\_inquiry'] or specify an group\_id if needed.

</details>

***

## FAQs

<details>

<summary>How do I set up the AI as a unique user in my Zendesk?</summary>

If you need to change the user that eesel AI uses to send replies and updates inside Zendesk, follow these steps:

**Step 1: Create a New User in Zendesk**

1. Log into your Zendesk account.
2. Navigate to Admin Center > People > Agents
3. Click Add user and enter the necessary details (name, email, role).
4. Save the user.

**Step 2: Find the User ID**

The User ID is a unique identifier required for eesel AI. To find it:

1. In Zendesk, go to Admin Center > People > Search Users and find the newly created user.
2. Click on the user’s name to open their profile.
3. Look at the URL in your browser’s address bar—it will be in the format:

   ```
   https://yourcompany.zendesk.com/agent/users/123456789
   ```
4. The number at the end (e.g., `123456789`) is the User ID. Copy this.

**Step 3: Update eesel AI’s Response Settings**

1. Log into eesel AI.
2. In the sidebar, navigate to Zendesk > AI Agent.
3. Find the field titled "What user should the bot respond as?"
4. Paste the copied User ID into this field.
5. Save the changes.

eesel AI will now send replies and updates as the selected user inside Zendesk. You can also use Step 2 to find an existing user you want the bot to reply as, rather than the new ID.

</details>

<details>

<summary>Can eesel trigger a side conversation in Zendesk?</summary>

No, eesel does not interact with side conversations inside Zendesk.

</details>

<details>

<summary>Can eesel detect in real-time when there is an agent available for escalation?</summary>

No, eesel is not able to determine whether there is a live agent available.

</details>


# Zendesk Messaging Widget Integration

{% hint style="info" %}
Legacy Zendesk Chat Widgets integrations are not supported by us, and are being phased out by Zendesk soon also, so we won't be able to integrate with those.
{% endhint %}

## What is the integration like? <a href="#h_72d0fe1340" id="h_72d0fe1340"></a>

The Zendesk Messaging Widget integration is for people who are currently or would like to start using the native Zendesk Messaging Widget on their site, but would like eesel AI to operate inside as the "Agent" responding.

The widget will look exactly like the original Zendesk Messaging Widget, but the responses will be from the bot you connect with it. All of the knowledge, customization, and actions will be done via our dashboard.

## How do I set this up?

Before you start your setup, you need to ensure that you have access to "Conversations API" in your Zendesk admin center. Zendesk tends to shift their plans, feature names, and access around so please reach out if you can't find this. Generally, it's available for all suite plans.

First, you need to connect your Zendesk with the eesel bot that you'd like to operate inside the widget. (We recommend creating a unique bot specifically for the widget).

Then, click Zendesk in the left integration sidebar > AI Agent > AI Agent for Messaging.

Follow the instructions to set up your agent! For any questions, please use the in app support chat.

## Set up chat handover <a href="#h_72d0fe1340" id="h_72d0fe1340"></a>

At the end of the chat, you need to enable the 'chat handover' action in order to pull the conversation through to your Zendesk dashboard. This is necessary for keeping a history of the chat there, as well as using any collected information during the chat to fill out ticket fields.

1\. To enable the chat handover, head to your Customize tab. Then, click "create new action" to bring up the actions window.

<figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1558333675/be2a9534dd995489cd166951a7e9/image.png?expires=1753330500&#x26;signature=a8f8ba68c36cab33d4a8cea35e9fc17f630a3c8f9b8e61f79540a72f6df69dad&#x26;req=dSUiHsp9nodYXPMW1HO4zeY4FHruAd6n98JQkOw9iWIZ8p0%2FN1muXmqSlhss%0Ajly0yPU6tKmKi%2FTxTig%3D%0A" alt="" width="563"><figcaption></figcaption></figure>

2\. Select "Chat handover" and click "enable action".

<figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1558334240/4086c87c1c1446835b909d508b3f/image.png?expires=1753330500&#x26;signature=825b5d46cf254c0e0134a81b31309a8d965a2790d150b28bd759dd008b318c25&#x26;req=dSUiHsp9mYNbWfMW1HO4zTQmF6bczJJokoSJW71rMqU6X2OvNAGhMhm8L%2FAP%0AbcFO7MkGOlR1V%2FfNvfs%3D%0A" alt="" width="563"><figcaption></figcaption></figure>

3\. Add in some text to the prompt mentioning when you want the handover action to take place. For example:

<figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1558335451/a75924db6bd543bb0878a5dea28c/image.png?expires=1753330500&#x26;signature=aa1d09f4024c3b3d4c8e94f3ce5fbfc73aacd7726da2c4214e9d787892507497&#x26;req=dSUiHsp9mIVaWPMW1HO4zYN49s6mtEWcCN%2FXzvt4XI3E%2BvkOrumttPzdm4%2F6%0AoFZqi%2FLrxoAMMUofp2o%3D%0A" alt="" width="563"><figcaption></figcaption></figure>

Other situations where you might want to use this handover tool would be:

* "When you can't answer a user's query, use the zendesk\_chat\_handover tool."
* "If the user sounds frustrated, use the zendesk\_chat\_handover tool."
* "If two consecutive attempts at resolving the issue fail, use the zendesk\_chat\_handover tool"
* "If the user's issue is not solvable using knowledge base information, use zendesk\_chat\_handover tool"
* "If the user's issue is related to: security concerns, refunds, or a bug/error, then use zendesk\_chat\_handover tool".

If you want the full chat to be handed over at the end of every chat, then you can add:

* "When the user indicates the chat is over or their issue has been solved/answered, then use the zendesk\_chat\_handover tool."

## Collecting information prior to handover <a href="#h_91ffedeee6" id="h_91ffedeee6"></a>

With eesel AI's integration, you can collect user information through the chat conversationally. To do so, simply head to your Customize tab in the eesel dashboard and add plain text instructions in the prompt to collect the information at a point in the chat you prefer.

For example:

```
When a user first asks a question, always request their name and email before assisting them.
```

*Reminder:* If you're having trouble setting up collecting fields, then send us a sample ticket with:

* The field you want to collect
* The value of the field

Send this information through the in-app support chat or to <hi@eesel.app>.

### Advanced - filling Zendesk standard fields <a href="#h_6a04876a3d" id="h_6a04876a3d"></a>

You can use the prompt to collect this information and then use that to fill out Zendesk ticket fields.

For example, *collecting email and name information at the start of the conversation* simply add the following to the prompt\*:\*

```
Before helping the user with anything, ask for their name and email, after which you can proceed.
```

Then, add the following information to the prompt (using the system field of the information you want to collect):

```
**Escalation**

Use the `zendesk_chat_handover` tool if the user asks to speak to a human, pass the name and email to the handover tool if they are available, collect if not. The parameter names should be:
- systemField.requester.name
- systemField.requester.email
```

### Advanced - filling out Zendesk custom fields <a href="#h_9f00380f5b" id="h_9f00380f5b"></a>

Custom fields are a little trickier, and require the ticket field ID as well as the values you're looking to input. If you have a custom field you're unable to fill out with our prompt, please reach out to support for assistance.

For example, filling out the Custom Field "high level category", the prompt should look something like the following:

```
Also include the a high level category for the enquiry in the handover parameters too. The value should be billing, sales or support based on the content of the enquiry and the parameter name for this should be:
- ticketField.12341130713871
```

The output of this particular example prompt would then fill in the value of ticket field ID: 12341130713871 with either billing, sales, or support.

You can find the custom ticket information under "Fields" in your Admin Center.

*Reminder:* If you're having trouble setting up collecting fields, then send us a sample ticket with:

* The field you want to collect
* The value of the field

Send this information through the in-app support chat or to <hi@eesel.app>.

## Integrate the chat with other channels like Facebook Messenger <a href="#h_ff871603ad" id="h_ff871603ad"></a>

eesel's integration can work with iOS and Facebook Messenger channels as well. We're working on updating our dash to include this option, stay tuned!

## Leaving notes and tagging tickets after handover <a href="#h_df5786ec7e" id="h_df5786ec7e"></a>

Once a chat has been handed over to Zendesk using the handover tool, you can use a second bot to triage, tag, and leave notes on these handed over chats.

To do so, simply:\
​

1. Create a new bot in the eesel dashboard and connect it with your Zendesk domain.
2. Setup the new bot's Zendesk triggers so that it *only* takes actions on new tickets created through the Messenger/widget channel.
3. Add the actions you'd like it to take (like tagging a ticket, or leaving an internal note) to the prompt in the Customize tab. See our [example prompts and actions](/legacy/integrations/zendesk#zendesk-actions) for how to configure the actions you prefer.
4. Enable it live and test!


# Freshdesk

AI agents and copilot to streamline support

eesel AI instantly plugs into your Freshdesk, learns from your past tickets, macros, help center and more, and seamlessly joins in like a new teammate.

<figure><img src="/files/bdzDTpE2HBxYCH0dRtjy" alt=""><figcaption></figcaption></figure>

***

## Training your AI with Freshdesk

{% tabs %}
{% tab title="Help Center" %}
**Help Center**

For **public help centers**:

1. Choose the bot, or create a new bot, to connect with your help center.
2. Click the integrations menu on the sidebar.
3. Click Freshdesk.
4. Click "Setup integration".
5. Enter you help center URL and click "Start crawling"

The bot will then crawl your help center and start adding links to your bot to use as knowledge within minutes.
{% endtab %}

{% tab title="Macros" %}
**Macros**

When you connect your Freshdesk domain to your eesel AI bot, it will automatically index your macros and ad them to your AI bot.

1. Go to your eesel dashboard and unfurl the Freshdesk integration on the left sidebar
2. Click Sources
3. Click Macros
4. Set them live or as drafts to enable or disable them.
5. Click re-sync to update them after any changes in Freshdesk.
   {% endtab %}

{% tab title="Past Tickets" %}
**Past Tickets**

Training on past tickets requires you to connect your Freshdesk domain to the bot you want to train. Once that's done, click on your Freshdesk integration on the left sidebar > click 'Tickets'.

We recommend filtering your tickets using the query in order to get the best quality results.

**Step 1: Writing a Ticket Filter Query**

Use Freshdesk’s query language to fetch only the tickets you care about (e.g. billing tickets, high-priority issues, etc.). The following is a list of fields you can use to filter your tickets:

| Field           | Type    | Description                                                                   |
| --------------- | ------- | ----------------------------------------------------------------------------- |
| `agent_id`      | integer | ID of the agent the ticket is assigned to                                     |
| `group_id`      | integer | ID of the group the ticket is assigned to                                     |
| `priority`      | integer | Priority of the ticket (1–4)                                                  |
| `status`        | integer | Status of the ticket (e.g. Open = 2, Resolved = 4)                            |
| `tag`           | string  | Ticket tag                                                                    |
| `type`          | string  | Issue type (e.g. Question, Incident, Problem)                                 |
| `created_at`    | date    | Ticket creation date (YYYY-MM-DD)                                             |
| `due_by`        | date    | Ticket due date                                                               |
| `fr_due_by`     | date    | First response due date                                                       |
| `updated_at`    | date    | Last updated timestamp                                                        |
| `custom fields` | mixed   | Use `cf_fieldname` or `custom_string` for custom fields like text or checkbox |

**Example Queries:**

| Description                                           | Query                                                                                      |
| ----------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| Urgent or high-priority tickets                       | `priority:4 OR priority:3`                                                                 |
| Open and pending tickets (second page)                | `status:3 OR status:4` (use `&page=2` if using API directly)                               |
| High-priority open tickets in group ID 11             | `priority:>3 AND group_id:11 AND status:2`                                                 |
| Finance or marketing sector (custom fields)           | `(cf_sector:'finance' OR cf_sector:'marketing') AND cf_locked:true`                        |
| Urgent tickets created on Jan 1, 2017                 | `priority:>3 AND created_at:'2017-01-01'`                                                  |
| Tickets due in first week of Oct 2017                 | `(type:'Question' OR type:'Problem') AND (due_by:>'2017-10-01' AND due_by:<'2017-10-07')`  |
| Problem-type tickets tagged with “marketing”          | `type:'Problem' AND tag:'marketing'`                                                       |
| Tickets without any tag                               | `tag:null`                                                                                 |
| Urgent tickets with no specified type                 | `type:null AND priority:4`                                                                 |
| Urgent tickets assigned to agents 2 or 3              | `(agent_id:2 OR agent_id:3) AND priority:4`                                                |
| Unassigned tickets                                    | `agent_id:null`                                                                            |
| All unresolved tickets                                | `status:2 OR status:3 OR status:6 OR status:7`                                             |
| Tickets using a keyword in a single-line custom field | `custom_string:refund`                                                                     |
| Multiple keywords (AND / OR)                          | `custom_string:keyword1 AND custom_string:keyword2` / `custom_string:keyword1 OR keyword2` |

**Step 2: Preview Sample Tickets**

1. After entering your query in Eesel’s ticket filter input, click the Preview button.
2. Eesel will fetch a sample of tickets matching your query.
3. Review the ticket list output carefully to confirm the query selects the desired tickets (e.g., only billing-related tickets).
4. If the results don’t match your expectations or if you see an error, adjust your query syntax and preview again.

**Step 3: Process Tickets for Training**

* Click the Process Tickets button to start training your AI agent with the filtered tickets.
* Once started, you’ll receive an email confirmation when the process completes.
* Don’t worry—we’ll notify you if anything goes wrong during processing.
  {% endtab %}

{% tab title="Restricted Help Center" %}
**Restricted Help Center**

1. Install our browser extension
2. Open up the tabs you want to train the AI with
3. Click 'Add sources' > 'Add all tabs in browser'.

**On a paid plan**, reach out to us through support and we can automatically crawl and update your restricted help center.
{% endtab %}
{% endtabs %}

***

## Create a Freshdesk AI Agent

<figure><img src="/files/SY0Y0DJW4JYJyc4VSQ2k" alt=""><figcaption></figcaption></figure>

eesel can automate your frontline support as an AI agent inside Freshdesk. You can have it leave internal notes, automatically reply, and triage tickets.

Once your AI has been trained and customized, it's time to link your Freshdesk domain to your AI bot.

To set up eesel as an AI agent inside Freshdesk, see our [AI Agent guide](/legacy/products/ai-agent).

***

## Create a Freshdesk AI Copilot

<figure><img src="/files/QVCPNrBMkFGhtf9DEIP7" alt=""><figcaption></figcaption></figure>

Check out our [setup guide](/legacy/products/ai-copilot) for using AI Copilot in your Freshdesk.

eesel AI can act as an AI copilot for your Freshdesk by using our [browser extension](https://chromewebstore.google.com/detail/eesel-ai-chatgpt-sidebar/ejhkkbilnpifailgngpkgmiofhioacjd?hl=en).

The AI can automatically pick up on the content of a ticket, and generate a response based on the knowledge it has access to.

You can use the browser extension to select the bot you want to use for its answer, and then draft a response and chat with the bot to edit before you paste is as a reply.=

***

## Freshdesk Actions

Once you've trained the bot and integrated it with your Freshdesk, it's important to customize it and add actions so that you can get the most out of your AI and automate manual tasks.

The following are Freshdesk specific actions. You can use them in combination with other actions on different platforms as well.

<details>

<summary>Create ticket</summary>

`freshdesk_create_ticket`

* **Purpose:** Creates a new Freshdesk ticket. (Note: This definition appears to be the same as the previous one).
* **Key Params:** `subject, description, email, priority, status`
* **When/How to Use:** Use when a user reports a bug, requests a new feature, or has a complex issue that requires tracking as a formal ticket rather than being resolved immediately in the current conversation. You will need to instruct the AI to gather the required parameters from the user. The current conversation ID is automatically available for context if needed, but the tool creates a *new* ticket.
* **Example Prompt Instruction:**

  > If the user is reporting a potential bug or requesting a new feature, you must offer to create a support ticket for them in our Freshdesk system. If they accept, collect their name, email address, a brief summary of the issue (for the subject), and a detailed description of the problem or request. Once you have this information, call freshdesk\_create\_ticket with the gathered subject, description, and email. Set priority to 'Low' and status to 'Open' by default, unless the user indicates high urgency.

</details>

<details>

<summary>Tag ticket</summary>

`freshdesk_tag_ticket`

* **Purpose:** Add tags to a Freshdesk ticket.
* **Key Params:** `tags: List[str]`
* **When/How to Use:** Similar to other tagging Actions for categorization and workflow. Note this tool takes a `List[str]` for the `tags` parameter, meaning you should provide tags in a list format like `['tag1', 'tag2']`. The ticket ID for the current conversation (if applicable) is automatically available. If tagging a ticket just created by `freshdesk_create_ticket`, the ID might need to be handled via workflow logic or be available from the create tool's response.
* **Example Prompt Instruction:**

  > After successfully creating a Freshdesk ticket using freshdesk\_create\_ticket, you must also call freshdesk\_tag\_ticket using the ticket ID of the newly created ticket (ensure this ID is available after the create call). Add the tag 'created\_by\_ai' and any other relevant tags based on the user's request, such as 'bug' or 'feature\_request'. The tags parameter must be a list of strings, for example: tags=\['created\_by\_ai', 'bug'].

</details>

<details>

<summary>Close ticket</summary>

`freshdesk_close_ticket`

* **Purpose:** Close a Freshdesk ticket.
* **Key Params:** `close: true`
* **When/How to Use:** Use this tool when the user explicitly indicates their issue is resolved, they are satisfied with the assistance, or the conversation reaches a natural conclusion where closure is appropriate according to your support process. The ticket ID for the current conversation is automatically available to the tool.
* **Example Prompt Instruction:**

  > If the user explicitly states their problem is solved, they are satisfied with the outcome, or the conversation has concluded and no further action is required, you must confirm this understanding with the user. If they agree, call the Freshdesk\_close\_ticket tool to mark the ticket as closed.

</details>

<details>

<summary>Leave internal note</summary>

`freshdesk_leave_internal_note`

* **Purpose:** Leaves an internal note on the ticket.
* **Key Params:** `note: str`, optional `notify_emails: List[str]`
* **When/How to Use:** Use this to add private notes to the current Freshdesk ticket for internal team members. You can optionally specify a list of agent emails to notify about the note. The ticket ID is automatically available.
* **Example Prompt Instruction:**

  > If you escalate a conversation to a human agent, or if you need to summarize the AI's actions for the next agent, call freshdesk\_leave\_internal\_note. The note parameter should contain the summary. For urgent escalations that need specific attention, you can also include notify\_emails=\['<agent1@example.com>', '<manager@example.com>'] to alert specific team members.

</details>

<details>

<summary>Assign ticket (escalation)</summary>

`freshdesk_assign_ticket`

* **Purpose:** Assigns a Freshdesk ticket to a specific agent.
* **Key Params:** `assignee_id: int`
* **When/How to Use:** Use this tool to route the current ticket to a specific agent based on their ID. The ticket ID is automatically available. Define rules for which agent ID to use based on the conversation topic or user request.
* **Example Prompt Instruction:**

  > If the user's query requires the attention of an agent specializing in integrations, inform the user you are assigning the ticket to the integrations specialist and call freshdesk\_assign\_ticket. Set the assignee\_id parameter to the integer ID of the integrations agent, e.g., assignee\_id=12345.

</details>

<details>

<summary>Assign ticket to group</summary>

`freshdesk_assign_ticket_to_group`

* **Purpose:** Assigns a Freshdesk ticket to a specific group.
* **Key Params:** `group_id: int`
* **When/How to Use:** Use this tool to route the current ticket to a specific support group or team based on their group ID. The ticket ID is automatically available from the conversation context. This is particularly useful for routing tickets to specialized teams (e.g., technical support, billing, escalations) based on the nature of the customer inquiry.
* **Example Prompt Instruction:**

  > If the user's issue requires specialized handling (e.g., technical issues go to the technical support group, billing issues to the billing team), inform the user you are transferring their ticket to the appropriate team and call freshdesk\_assign\_ticket\_to\_group. Set the group\_id parameter to the appropriate group's integer ID. For example: for technical issues use group\_id=67890, for billing use group\_id=54321. Always confirm with the user before transferring their ticket to a different group.

</details>

<details>

<summary>Update ticket fields</summary>

* `freshdesk_update_ticket`
  * **Purpose:** Updates a Freshdesk ticket with the provided payload.
  * **Key Params:** `payload: str` (JSON string)
  * **When/How to Use:** Use this for modifying various ticket fields (status, priority, custom fields, etc.). The ticket ID for the current conversation is automatically available. You must instruct the AI to construct the JSON payload based on the desired updates indicated by the user or the workflow logic.
  * **Example Prompt Instruction:**

    > If the user indicates their issue is resolved and you have confirmed it, or if the workflow requires setting the ticket status to 'solved', you must call freshdesk\_update\_ticket. Set the payload parameter to a JSON string that updates the status, e.g., payload='{"status": "solved"}'.
    >
    > If the user reports a high-priority issue you are escalating, you might call `freshdesk_update_ticket` with `payload='{"priority": "high"}'`.
    >
    > To update a custom field (ID 123), call `freshdesk_update_ticket` with `payload='{"custom_fields": [{"id": 123, "value": "new value"}]}'`.

</details>


# Intercom

AI agents and copilot to streamline support

<figure><img src="/files/fLwa4qMzzLphGw01dy7R" alt=""><figcaption></figcaption></figure>

eesel AI instantly plugs into your Intercom, learns from your past tickets, macros, help center and more, and seamlessly joins in like a new teammate.

***

## Training your AI with Intercom

{% tabs %}
{% tab title="Help Center" %}

#### Help Center

For **public help centers**:

1. Choose the bot, or create a new bot, to connect with your help center.
2. Click the integrations menu on the sidebar.
3. Click Intercom.
4. Click "Setup integration".
5. Enter you help center URL and click "Start crawling"

The bot will then crawl your help center and start adding links to your bot to use as knowledge within minutes.
{% endtab %}

{% tab title="Macros" %}

#### Macros

When you connect your Intercom domain to your eesel AI bot, it will automatically index your macros and add them to your AI bot.

1. Go to your eesel dashboard and unfurl the Intercom integration on the left sidebar
2. Click Sources
3. Click Macros
4. Set them live or as drafts to enable or disable them.
5. Click re-sync to update them after any changes in Intercom.
   {% endtab %}

{% tab title="Past Conversations" %}
{% hint style="warning" %}
Currently not available as a self-serve option. Please contact support with the following form.
{% endhint %}

#### Request Form

**Note:** All bots you want trained with conversations must be connected with Intercom.

Please ensure that the values and responses you enter are exact matches.

1. What platform are your conversations located on?
2. Which bot would you like to train with these conversations?\
   &#x200B;*(Please copy and paste the bot URL here in addition to the name of the bot)*
3. What date range would you like us to pull the conversations from?\
   &#x200B;*(e.g., past three months of conversations)*
4. Other conversation details, if applicable:
   * Teammate ID or email
   * Team ID or name
   * Attributes/custom attributes (please specify all details)
   * Workspace
5. If you want different sets of conversation training added to different bots, please explain which conversations should map to which bots.
   {% endtab %}

{% tab title="Restricted Help Center" %}

#### **Restricted Help Center**

1. Install our browser extension
2. Open up the tabs you want to train the AI with
3. Click 'Add sources' > 'Add all tabs in browser'.

**On a paid plan**, reach out to us through support and we can automatically crawl and update your restricted help center.
{% endtab %}
{% endtabs %}

***

## Create a Intercom AI Agent

<figure><img src="/files/oKZtYrdCe1xDw9DGRDU9" alt=""><figcaption></figcaption></figure>

eesel can automate your frontline support as an AI agent inside Intercom. You can have it leave internal notes, automatically reply, and triage tickets.

Once your AI has been trained and customized, it's time to link your Intercom domain to your AI bot.

To set up eesel as an AI agent inside Intercom, see our [AI Agent guide](/legacy/products/ai-agent).

***

## Create a Intercom AI Copilot

<figure><img src="/files/TicgXSNa2X5gVFr9CYOT" alt=""><figcaption></figcaption></figure>

Check out our [setup guide](/legacy/products/ai-copilot) for using AI Copilot in your Intercom.

eesel AI can act as an AI copilot for your Intercom by using our [browser extension](https://chromewebstore.google.com/detail/eesel-ai-chatgpt-sidebar/ejhkkbilnpifailgngpkgmiofhioacjd?hl=en).

The AI can automatically pick up on the content of a ticket, and generate a response based on the knowledge it has access to.

You can use the browser extension to select the bot you want to use for its answer, and then draft a response and chat with the bot to edit before you paste is as a reply.

***

## Intercom Actions

Once you've trained the bot and integrated it with your Intercom, it's important to customize it and add actions so that you can get the most out of your AI and automate manual tasks.

The following are Intercom specific actions. You can use them in combination with other actions on different platforms as well.

<details>

<summary>Tag conversation</summary>

`intercom_tag_conversation`

* **Purpose:** Add tags to an Intercom conversation.
* **Key Params:** `tag: str`
* **When/How to Use:** Similar to `zendesk_tag_ticket`. Use for categorization, reporting, or triggering workflows based on conversation topics. Note that this tool takes a single string `tag`. The conversation ID is automatically available.
* **Example Prompt Instruction:**

  > Upon successfully answering a user's question about feature usage, you must call intercom\_tag\_conversation. Set the tag parameter to 'feature-inquiry'. If the user was asking about a known issue, make a separate call to intercom\_tag\_conversation with the tag 'known-issue'.

</details>

<details>

<summary>Close conversation</summary>

`intercom_close_conversation`

* **Purpose:** Close an Intercom thread after a short delay (\~30 seconds).
* **Key Params:** — (No explicit parameters)
* **When/How to Use:** Similar to `zendesk_close_ticket`. Use when the conversation is resolved and no further action is needed. The approximately 30-second delay is built-in. The conversation ID is automatically available.
* **Example Prompt Instruction:**

  > If the user confirms their issue is resolved and expresses satisfaction, or if the conversation has been inactive for several minutes after you provided a solution, you must call intercom\_close\_conversation to close the thread after the standard delay.

</details>

<details>

<summary>Leave internal note</summary>

`intercom_leave_internal_note`

* **Purpose:** Leaves an internal note on the ticket.
* **Key Params:** `note: str`
* **When/How to Use:** Use this action to leave internal notes on conversations in Intercom. Describe what you want the internal note to be - this could be a draft reply for your agents to pick up, a translation of the user message and so on.
* **Example Prompt Instruction:**

  > If you escalate a conversation to a human agent, or if you need to summarize the AI's actions for the next agent, call intercom\_leave\_internal\_note. The note parameter should contain the summary. For urgent escalations that need specific attention, you can also include notify\_emails=\['<agent1@example.com>', '<manager@example.com>'] to alert specific team members.

</details>

<details>

<summary>Assign conversation (escalation)</summary>

`intercom_assign_conversation`

* **Purpose:** Assign an Intercom conversation to a specific team or admin.
* **Key Params:** `assignee_id: str`
* **When/How to Use:** Similar to `zendesk_assign_ticket`. Use this for routing conversations that require human follow-up or expertise from a specific team. Define how the AI determines the appropriate `assignee_id`. This parameter requires the Intercom ID for the admin or team, not an email address. The conversation ID is automatically available.
* **Example Prompt Instruction:**

  > If the user asks a question about their billing history or requires an action related to their subscription, you must inform them you are escalating their request to the billing team and call intercom\_assign\_conversation. Set the assignee\_id parameter to the specific Intercom ID for your 'Billing Team' inbox or a specific billing specialist admin.

</details>

<details>

<summary>Get ticket fields</summary>

`Intercom_get_ticket_fields`

* **Purpose:** Retrieves specified fields from an Intercom ticket.
* **Key Params:** `fields: str` (comma-separated)
* **When/How to Use:** Use this when you need specific information from the current ticket (e.g., its current status, assignee, or a custom field value) to inform your next action or response. You must specify the field names (standard or custom field IDs as strings) you need. The ticket ID is automatically available.
* **Example Prompt Instruction:**

  > Before escalating a ticket, you should check its current status and assignee. Call intercom\_get\_ticket\_fields with the parameter fields='status,assignee\_id'. Use the results to inform the user about the current state or to decide who to assign it to next.
  >
  > If a user's query depends on a custom field (ID 456), call `intercom_get_ticket_fields` with `fields='456'`.

</details>

<details>

<summary>Get conversation fields</summary>

`Intercom_get_conversation_fields`

* **Purpose:** Retrieves specified fields from an Intercom ticket.
* **Key Params:** `fields: str` (comma-separated)
* **When/How to Use:** Use this when you need specific information from the current conversation (e.g., its current status, assignee, or a custom field value) to inform your next action or response. You must specify the field names (standard or custom field IDs as strings) you need. The conversation ID is automatically available.
* **Example Prompt Instruction:**

  > Before escalating a conversation, you should check its current status and assignee. Call intercom\_get\_conversation\_fields with the parameter fields='status,assignee\_id'. Use the results to inform the user about the current state or to decide who to assign it to next.
  >
  > If a user's query depends on a custom field (ID 456), call `intercom_get_conversation_fields` with `fields='456'`.

</details>

<details>

<summary>Un-assign conversation</summary>

`Intercom_unassign_conversation`

* **Purpose:** Use this action to unassign conversations in Intercom.
* **Key Params:**
* **When/How to Use:** Simply describe when you want the conversation unassigned, and the AI will handle this. This is useful for removing an assignee from a conversation, making it available for others to pick up.
* **Example Prompt Instruction:**

  >

</details>

<details>

<summary>User lookup</summary>

`Intercom_get_conversation_fields`

* **Purpose:** Allow your bot to look up a Intercom user using their email address.
* **Key Params:**
* **When/How to Use:**
* **Example Prompt Instruction:**

  >

</details>

<details>

<summary>Update conversation</summary>

`Intercom_update_conversation`

* **Purpose:** Use this action to update a conversation in Intercom.
* **Key Params:**
* **When/How to Use:** Define the conditions and details you want to change (such as status, priority, or assignee), and the AI will automatically update the conversation accordingly.
* **Example Prompt Instruction:**

  > If the user indicates their issue is resolved and you have confirmed it, or if the workflow requires setting the ticket status to 'solved', you must call intercom\_update\_conversation. Set the payload parameter to a JSON string that updates the status, e.g., payload='{"status": "solved"}'.
  >
  > If the user reports a high-priority issue you are escalating, you might call `intercom_update_ticket` with `payload='{"priority": "high"}'`.
  >
  > To update a custom field (ID 123), call `intercom_update_ticket` with `payload='{"custom_fields": [{"id": 123, "value": "new value"}]}'`.

</details>

## Frequently Asked Questions

<details>

<summary>Does eesel support Intercom back-office tickets?</summary>

No.

</details>


# Front

eesel AI instantly plugs into your Front, learns from your past emails, macros, help center and more, and seamlessly joins in like a new teammate.

<figure><img src="/files/mZrgsS6FJHrZimTwTdGV" alt=""><figcaption></figcaption></figure>

### Connect your Front

If Front is not already connected, you can do so by following these steps:

1. Navigate to the [eesel AI dashboard](https://dashboard.eesel.ai/)
2. Click the "+" icon in the sidebar next to Integrations
3. Locate "Front" and open up that integration
4. Click "Start setup".

Once you have authenticated with Front, you should see it connected. The next step is to teach the AI Agent some knowledge!

### Teaching your AI Agent

Once Front is connected, it should be provided some knowledge. This can be done by adding websites, uploading PDFs, or training the bot on public help centers.

All of these options can be easily configured from the Integrations page as well, where there are hundreds of options to choose from depending on where your material can be founded.

Alternatively, you can create **Articles** that the bot can use as knowledge too.

### Activating the AI Agent

To enable your AI to start drafting replies and responding to inbound emails, you should click "AI Agent" under "Front" in the sidebar on the dashboard.

There you will find the appropriate settings to set the AI Agent live

### Getting support

Reach out for support at <hi@eesel.app>


# Gorgias

AI agents and copilot to streamline support

<figure><img src="/files/HjKeMNT8Hil03jMMsbCW" alt=""><figcaption></figcaption></figure>

eesel AI instantly plugs into your Gorgias, learns from your past tickets, macros, help center and more, and seamlessly joins in like a new teammate.

***

## Training your AI with Gorgias

{% tabs %}
{% tab title="Help Center" %}
**Help Center**

For **public help centers**:

1. Choose the bot, or create a new bot, to connect with your help center.
2. Click the integrations menu on the sidebar.
3. Click Gorgias.
4. Click "Setup integration".
5. Enter you help center URL and click "Start crawling"

The bot will then crawl your help center and start adding links to your bot to use as knowledge within minutes.
{% endtab %}

{% tab title="Macros" %}
**Macros**

When you connect your Gorgias domain to your eesel AI bot, it will automatically index your macros and add them to your AI bot.

1. Go to your eesel dashboard and unfurl the Gorgias integration on the left sidebar
2. Click Sources
3. Click Macros
4. Set them live or as drafts to enable or disable them.
5. Click re-sync to update them after any changes in Gorgias.
   {% endtab %}

{% tab title="Past Tickets" %}
**Past Tickets**

Training on past tickets requires you to connect your Gorgias domain to the bot you want to train. Once that's done, click on your Gorgias integration on the left sidebar > click 'Tickets'.

We recommend filtering your tickets in your view ID in order to get the best quality results.

**Step 1: Create a View in Gorgias**

This view should filter down to the tickets you want the AI to learn from. You can use any combination of:

* Tags
* Statuses (e.g. Closed tickets)
* Channels (e.g. Email, Chat)
* Assignees or teams

Tip: You can name the view to something like "eesel Training Set" so it’s easy to find later.

**Step 2: Get Your View ID from Gorgias**

1. Open Gorgias and go to the View you just created.
2. Look at your browser’s URL, it should look like this:

   ```
   https://app.gorgias.com/tickets-view/123456
   ```
3. Copy the number at the end, that’s your View ID.

**Step 3: Add Your View ID in eesel**

Paste the View ID into the field in eesel on the Gorgias -> Tickets page where prompted.

Now eesel will start learning from the tickets in that Gorgias view 🎉
{% endtab %}

{% tab title="Restricted Help Center" %}
**Restricted Help Center**

1. Install our browser extension
2. Open up the tabs you want to train the AI with
3. Click 'Add sources' > 'Add all tabs in browser'.

**On a paid plan**, reach out to us through support and we can automatically crawl and update your restricted help center.
{% endtab %}
{% endtabs %}

***

## Create a Gorgias AI Agent

<figure><img src="/files/KSGzbQVgHhe4eGUVOfI4" alt=""><figcaption></figcaption></figure>

eesel can automate your frontline support as an AI agent inside Gorgias. You can have it leave internal notes, automatically reply, and triage tickets.

Once your AI has been trained and customized, it's time to link your Gorgias domain to your AI bot.

To set up eesel as an AI agent inside Gorgias, see our [AI Agent guide](/legacy/products/ai-agent).

### Configure which tickets the AI agent looks at

You can control which tickets the AI agent processes by providing one or more Gorgias View IDs.

1. In your eesel dashboard, go to `Gorgias` → `AI agent`.
2. Under "Which tickets should the AI agent look at?", paste your Gorgias View IDs.
   * You can enter multiple IDs, separated by commas (e.g. `12345, 67890`).
3. Find your View ID in Gorgias:
   * Open the View in Gorgias and look at your browser URL. For example:

     ```
     https://app.gorgias.com/tickets-view/123456
     ```

     The number at the end (`123456`) is your View ID.
4. Tip: Create a dedicated View in Gorgias that filters to the tickets you want the agent to handle (e.g. by tags, status, channel). This helps ensure high‑quality automation.

***

## Create a Gorgias AI Copilot

<figure><img src="/files/Vl0o4QCYQD5cpI5GXKT5" alt=""><figcaption></figcaption></figure>

Check out our [setup guide](/legacy/products/ai-copilot) for using AI Copilot in your Gorgias.

eesel AI can act as an AI copilot for your Gorgias by using our [browser extension](https://chromewebstore.google.com/detail/eesel-ai-chatgpt-sidebar/ejhkkbilnpifailgngpkgmiofhioacjd?hl=en).

The AI can automatically pick up on the content of a ticket, and generate a response based on the knowledge it has access to.

You can use the browser extension to select the bot you want to use for its answer, and then draft a response and chat with the bot to edit before you paste is as a reply.

***

## Gorgias Actions

Once you've trained the bot and integrated it with your Gorgias, it's important to customize it and add actions so that you can get the most out of your AI and automate manual tasks.

The following are Gorgias specific actions. You can use them in combination with other actions on different platforms as well.

<details>

<summary>Tag conversation</summary>

`gorgias_tag_ticket`

* **Purpose:** Applies tags to a ticket in the Gorgias helpdesk system.
* **Key Params:** `tags: List[str]`
* **When/How to Use:** Use this for categorizing Gorgias tickets based on conversation topics or resolution types. You must provide the tags as a list of strings. The ticket ID for the current conversation is automatically available.
* **Example Prompt Instruction:**

  > Upon successfully resolving a user's issue related to shipping, call gorgias\_tag\_ticket with the parameter tags=\['shipping', 'resolved-by-ai']. If the user was asking about a specific product, also include a product tag, e.g., tags=\['shipping', 'resolved-by-ai', 'product-X'].

</details>

<details>

<summary>Create ticket</summary>

`gorgias_create_ticket`

* **Purpose:** Creates a new ticket in Gorgias.
* **Key Params:** `subject: str, description: str, email: str, to: str`, optional `priority: str`, optional `status: str`, optional `custom_fields: dict`, optional `channel: str`, optional `via: str`, optional `from_agent: bool`
* **When/How to Use:** Use this when a user's request requires creating a brand new ticket in Gorgias, possibly for a new inquiry identified in a chat or social media interaction that needs formal tracking. You must gather the `subject`, `description`, and `email` of the requester, and specify the `to` email address of the Gorgias mailbox where the ticket should be created. Other parameters like priority or custom fields can be set based on context.
* **Example Prompt Instruction:**

  > If a user submits feedback via a channel that doesn't automatically create a ticket (like an in-app message you handle conversationally), and the feedback needs formal tracking, offer to create a ticket. If accepted, collect the feedback subject, detailed description, and user's email. Call gorgias\_create\_ticket with the collected info, setting to='<support@yourcompany.gorgias.com>'. You can also set priority='low' for general feedback.

</details>

<details>

<summary>Leave internal note</summary>

`gorgias_leave_internal_note`

* **Purpose:** Leaves an internal note on the ticket.
* **Key Params:** `note: str`
* **When/How to Use:** Use this action to leave internal notes on conversations in Gorgias. Describe what you want the internal note to be - this could be a draft reply for your agents to pick up, a translation of the user message and so on.
* **Example Prompt Instruction:**

  > If you escalate a conversation to a human agent, or if you need to summarize the AI's actions for the next agent, call gorgias\_leave\_internal\_note. The note parameter should contain the summary. For urgent escalations that need specific attention, you can also include notify\_emails=\['<agent1@example.com>', '<manager@example.com>'] to alert specific team members.

</details>

<details>

<summary>Assign ticket (escalation)</summary>

`gorgias_assign_ticket`

* **Purpose:** Assigns a ticket to a specific user in the Gorgias helpdesk system.
* **Key Params:** `assignee_id: int`
* **When/How to Use:** Use this to route the current Gorgias ticket to a specific agent or team member identified by their user ID. The ticket ID is automatically available.
* **Example Prompt Instruction:**

  > If the user's query requires a human agent for a complex return request, inform them you are escalating to the returns specialist and call gorgias\_assign\_ticket. Set the assignee\_id parameter to the integer ID of the returns specialist, e.g., assignee\_id=67890.

</details>


# Jira Service Management

AI agents and copilot to streamline support

eesel AI instantly plugs into your Jira, learns from your past tickets, macros, help center and more, and seamlessly joins in like a new teammate.

***

## Training your AI with JSM

{% tabs %}
{% tab title="Help Center" %}

#### Help Center

Jira Service Management help centers are typically managed via Confluence. Our AI can automatically pull in help center from your Confluence space.

Check out our [Confluence integration](/legacy/integrations/confluence) for more information.
{% endtab %}

{% tab title="Canned Replies" %}

#### Canned Replies

When you connect your JSM domain to your eesel AI bot, it will automatically index your canned replies and add them to your AI bot.

1. Go to your eesel dashboard and unfurl the JSM integration on the left sidebar
2. Click Sources
3. Click Canned Replies
4. Set them live or as drafts to enable or disable them.
5. Click re-sync to update them after any changes in JSM.

**Note:** if your canned replies haven't been added, reach out to support.
{% endtab %}

{% tab title="Past Issues" %}

#### Past Issues

Training on past issues requires you to connect your Jira to the bot you want to train. Once that's done, click on your Jira integration on the left sidebar > Click 'Sources' > 'Issues'.

We recommend filtering your tickets using the query in order to get the best quality results.

#### Writing an Issue Filter Query

Read more about it in [JSM's official documentation](https://support.atlassian.com/jira-service-management-cloud/docs/what-is-advanced-search-in-jira-cloud/).
{% endtab %}
{% endtabs %}

***

### Create a JSM AI Agent <a href="#create-a-gorgias-ai-agent" id="create-a-gorgias-ai-agent"></a>

<figure><img src="/files/KSGzbQVgHhe4eGUVOfI4" alt=""><figcaption></figcaption></figure>

eesel can automate your frontline support as an AI agent inside JSM. You can have it leave internal notes, automatically reply, and triage tickets. Once your AI has been trained and customized, it's time to link your JSM domain to your AI bot. To set up eesel as an AI agent inside JSM, see our [AI Agent guide](/legacy/products/ai-agent).​

***

### Create a JSM AI Copilot <a href="#create-a-gorgias-ai-copilot" id="create-a-gorgias-ai-copilot"></a>

<figure><img src="/files/Vl0o4QCYQD5cpI5GXKT5" alt=""><figcaption></figcaption></figure>

Check out our [setup guide](https://app.gitbook.com/o/sVsbanNFtsZq7FAyg0Do/s/UZKi9A4XwKvuOPgMvVMe/products/ai-copilot) for using AI Copilot in your JSM. eesel AI can act as an AI copilot for your JSM by using our [browser extension](https://chromewebstore.google.com/detail/eesel-ai-chatgpt-sidebar/ejhkkbilnpifailgngpkgmiofhioacjd?hl=en).

The AI can automatically pick up on the content of a ticket, and generate a response based on the knowledge it has access to.

You can use the browser extension to select the bot you want to use for its answer, and then draft a response and chat with the bot to edit before you paste is as a reply.

***

### JSM Actions <a href="#gorgias-actions" id="gorgias-actions"></a>

Once you've trained the bot and integrated it with JSM, it's important to customize it and add actions so that you can get the most out of your AI and automate manual tasks. The following are JSM specific actions. You can use them in combination with other actions on different platforms as well.

<details>

<summary>Create issue</summary>

`jira_create_issue`

* **Purpose:** File a Jira issue.
* **Key Params:** `project_key, summary, description`
* **When/How to Use:** Primarily used for reporting bugs or suggesting improvements that need engineering or product team attention tracked in Jira. You must instruct the AI to identify these scenarios and gather the necessary information. Define the default `project_key` to use.
* **Example Prompt Instruction:**

  > If you are unable to help the user with their enquiry OR it appears that they are reporting a bug or suggesting a product improvement, you must offer to create an issue for the user in our engineering tracking system (Jira). If they accept, collect a brief summary of the issue and a more detailed description. Then, call jira\_create\_issue with project\_key set to 'ENG', using the collected information for the summary and description parameters.

</details>

<details>

<summary>Label issue</summary>

`jira_label_issue`

* **Purpose:** Adds labels to a Jira issue.
* **Key Params:** `issue_key: str, labels: List[str]`
* **When/How to Use:** Use this after a Jira issue has been created or identified (e.g., using `jira_create_issue` or `jira_search_issue`) to add relevant labels for categorization and filtering within Jira. You need the issue key and the list of labels.
* **Example Prompt Instruction:**

  > After successfully creating a Jira issue using jira\_create\_issue (and obtaining the issue key from the tool's response), analyze the user's report for key topics (e.g., 'login', 'performance'). Call jira\_label\_issue using the new issue\_key and a list of relevant labels, e.g., labels=\['bug', 'reported-by-customer', 'severity-medium'].

</details>

<details>

<summary>Search issue</summary>

`jira_search_issue`

* **Purpose:** Searches for Jira issues using JQL.
* **Key Params:** `jql: str`
* **When/How to Use:** Use this when a user asks about the status of a known bug, feature request, or project item that is tracked in Jira. You must formulate a JQL query string based on the user's keywords or the issue they are referencing.
* **Example Prompt Instruction:**

  > If the user asks about the status of a bug they previously reported, or asks if a known issue is fixed (and mentions keywords related to it), formulate a JQL query to search for the issue in Jira. Call jira\_search\_issue with the parameter jql='summary \~ "\[Keywords from user query]" AND project = ENG ORDER BY created DESC'. Present the search results to the user, focusing on the issue key, summary, and status.

</details>

<details>

<summary>Assign issue (escalation)</summary>

`jira_assign_issue`

* **Purpose:** Assigns an existing issue in Jira to a specific user.
* **Key Params:** `issue_key: str, assignee_account_id: str`
* **When/How to Use:** Use this to assign an existing Jira issue (identified by its key) to a specific team member or group within Jira, using their Jira account ID. This is useful for routing issues found via search or created by the AI to the correct owner.
* **Example Prompt Instruction:**

  > If the user is reporting a front-end issue and you have found or created the relevant Jira ticket (issue key available), you should assign it to the front-end lead. Call jira\_assign\_issue with the issue\_key and the parameter assignee\_account\_id='\[Front-end Lead Jira Account ID]'.

</details>

<details>

<summary>Comment on issue</summary>

`jira_comment_on_issue`

* **Purpose:** Adds a comment to an existing issue in Jira.
* **Key Params:** `issue_key: str, comment: str`
* **When/How to Use:** Use this to add context from the customer conversation directly to the related Jira issue. This is useful for providing engineers with additional details, clarifying user impact, or adding follow-up information. You need the issue key and the content of the comment.
* **Example Prompt Instruction:**

  > If a user provides important additional details or context about a bug or feature request after the Jira issue has been created, call jira\_comment\_on\_issue using the relevant issue\_key. Set the comment parameter to summarize the new information provided by the user.

</details>

***

## FAQ

<details>

<summary>Connect Jira to eesel AI via actions</summary>

To connect your Jira account to eesel , you’ll need to generate an API token and provide a few details. Follow the steps below:

#### 1. Generate an API Token <a href="#h_ffaab8874d" id="h_ffaab8874d"></a>

Visit [this link](https://id.atlassian.com/manage-profile/security/api-tokens) to generate a new API token in your Atlassian account.

#### 2. Create and Copy the Token <a href="#h_be58510539" id="h_be58510539"></a>

Click "Create API Token", give your token a recognizable name, and click "Create".\
Then, copy the generated token to your clipboard — you’ll need it in a later step.

#### 3. Find Your Jira Subdomain <a href="#h_344dfcb73e" id="h_344dfcb73e"></a>

Locate your Jira site URL. It will look something like `yourcompany.atlassian.net`. Where `yourcompany` is your subdomain.

#### 4. Enter Your Jira Email <a href="#h_27a067b242" id="h_27a067b242"></a>

Use the email address associated with your Jira account.

#### 5. Paste the API Token <a href="#h_e26feef1fb" id="h_e26feef1fb"></a>

Paste the API token you copied earlier into the relevant field.

#### 6. Connect <a href="#h_e4638fc080" id="h_e4638fc080"></a>

Click "Connect Jira" to finalize the setup.

#### Want a Full AI Agent Embedded in Jira? <a href="#h_1461056a6a" id="h_1461056a6a"></a>

If you'd like a full AI agent embedded directly inside your Jira or JSM project, install the [AI for Jira Cloud](https://marketplace.atlassian.com/apps/1232959/ai-for-jira-cloud) app from the Atlassian Marketplace:

</details>

<details>

<summary>Can I set a bot up to read and summarize specific Jira's based on their ID while working in Zendesk?</summary>

Yes, you can add the ‘search issues’ action found in the Jira category of the actions menu (see: customize tab > create new action).

\
You can enable that action and then use the prompt to describe when the bot should use it inside Zendesk, or another platform. Check [this page](https://docs.eesel.ai/integrations/jira-service-management#search-issue) out for more instructions.

</details>

<details>

<summary>I've installed the Jira app but eesel isn't operating in my Jira.</summary>

First, ensure that you have switched the AI Agent to either leave internal notes, or leave public replies, to see it responding to issues in Jira directly.

Then, make sure you add a JSM Project Key to the Project Key field at the bottom of the AI Agent page. You can find the Project Key by looking at the acrnoym of letters at the start of each of your issues. For example: ITSM-913 is issue 913 of the ITSM project. Add in ITSM to the project key field.

</details>

<details>

<summary>Can eesel connect with Jira Data Center?</summary>

No, eesel cannot connect to Jira Data Center.

</details>


# HubSpot

AI agents and copilot to streamline support

eesel AI instantly plugs into your HubSpot, handles CRM inbox conversations and Service Hub tickets - automatically changing priority and taking actions for your agents.

***

## Training your AI with HubSpot

{% tabs %}
{% tab title="Help Center" %}

#### Help Center

HubSpot knowledge bases can be crawled using our website crawler, if publicly available. If it's not publicly available, you can:

* Use our browser extension to train on specific private pages, on a trial.
* Send over the details of your private/internal help site on a paid plan to be crawled.

If your help center is on another platform, please use the help center crawler for that platform's integration menu in the dash. For any questions, reach out to <hi@eesel.app> or via the in app messaging.
{% endtab %}

{% tab title="Message Templates" %}

#### Message templates

You can add your message templates to the eesel dashboard via the prompt or via the "Articles" tab. If you have too many message templates to add manually, then reach out to support via the chat or <hi@eesel.app>.

We're working on automatically indexing these, so stay tuned!
{% endtab %}

{% tab title="Past tickets" %}

#### Past Tickets and Conversations

Right now, past tickets and conversation training is not available for HubSpot by default. If this is a key feature for you, please reach out to support once on a paid plan to see if we can train on your tickets and conversations. This feature is coming soon!
{% endtab %}
{% endtabs %}

***

## Create a HubSpot AI Agent <a href="#create-a-gorgias-ai-agent" id="create-a-gorgias-ai-agent"></a>

<figure><img src="/files/KSGzbQVgHhe4eGUVOfI4" alt=""><figcaption></figcaption></figure>

eesel can automate your frontline support as an AI agent inside HubSpot Service Hub. You can have it leave internal notes, automatically reply, and triage tickets. Once your AI has been trained and customized, it's time to link your HubSpot domain to your AI bot via the integrations menu.

Once you have connected it, make sure you select which inboxes and emails you want your eesel AI Agent to be triggered for. You can find this selection in the HubSpot menu on the left sidebar > AI Agents.

You can also have eesel AI respond automatically or leave notes for your CRM inbox -> simply select that email inbox that is connected to your CRM inbox in the AI Agent tab.

***

## Create a HubSpot AI Copilot <a href="#create-a-gorgias-ai-copilot" id="create-a-gorgias-ai-copilot"></a>

<figure><img src="/files/Vl0o4QCYQD5cpI5GXKT5" alt=""><figcaption></figcaption></figure>

Check out our [setup guide](https://app.gitbook.com/o/sVsbanNFtsZq7FAyg0Do/s/UZKi9A4XwKvuOPgMvVMe/products/ai-copilot) for using AI Copilot in your HubSpot. eesel AI can act as an AI copilot for your HubSpot by using our [browser extension](https://chromewebstore.google.com/detail/eesel-ai-chatgpt-sidebar/ejhkkbilnpifailgngpkgmiofhioacjd?hl=en).

You can use the browser extension to select the bot you want to use for its answer, and then draft a response and chat with the bot to edit before you paste is as a reply.

***

## HubSpot Actions <a href="#gorgias-actions" id="gorgias-actions"></a>

Once you've trained the bot and integrated it with HubSpot, it's important to customize it and add actions so that you can get the most out of your AI and automate manual tasks. The following are HubSpot specific actions. You can use them in combination with other actions on different platforms as well (for example, automatically create a Jira issue if a conversation mentions a bug).

<details>

<summary>Change Ticket Priority</summary>

`hubspot_change_ticket_priority`

* **Purpose:** Use this action to change the priority of a ticket in HubSpot. Simply describe when you want the ticket priority changed, and the AI will handle this.
* **Key Params:** `priority, ticket_id`
* **When/How to Use:** Use when a customer’s issue needs escalation or de-escalation based on urgency. Valid priority values are “LOW”, “MEDIUM”, “HIGH”, or “URGENT”. You must collect the ticket ID and determine the appropriate priority level based on the issue severity.
* **Example Prompt Instruction:**

  > *If a customer reports a critical issue that affects their business operations or mentions urgency, offer to escalate their ticket priority. If they agree, collect the ticket ID and set the priority to “HIGH” or “URGENT” depending on the severity. For routine inquiries, you can suggest lowering priority to “LOW” or “MEDIUM”.*

</details>

<details>

<summary>Add Note to Ticket</summary>

`hubspot_add_note_to_ticket`

* **Purpose:** Adds an internal note to a HubSpot ticket that’s only visible to agents
* **Key Params:** `ticket_id, note`
* **When/How to Use:** Use for internal documentation, tracking investigation steps, or leaving notes for other agents. These notes are not visible to customers and help maintain context for future interactions.
* **Example Prompt Instruction:**

> *When you need to document internal information about a customer’s case, investigation steps taken, or leave instructions for other agents, use this tool to add internal notes. Always collect the ticket ID and write clear, informative notes that will help other agents understand the context.*

</details>

<details>

<summary>Update ticket</summary>

`hubspot_update_ticket`

* **Purpose:** Updates a HubSpot ticket’s title and description
* **Key Params:** `title, description, ticket_id`
* **When/How to Use:** Use when you need to modify ticket information to better reflect the customer’s issue or add clarification. Particularly useful when the original ticket title/description is unclear or incomplete.
* **Example Prompt Instruction:**

  > *If a customer provides additional context about their issue or if the original ticket description is unclear, offer to update the ticket with more accurate information. Collect the ticket ID and ask for the updated title and description that better represents their issue.*

</details>

<details>

<summary>Add comment to ticket</summary>

`hubspot_add_comment_to_ticket`

* **Purpose:** Adds a public comment to a HubSpot ticket that customers can see
* **Key Params**: `ticket_id, comment`
* **When/How to Use:** Use to communicate directly with customers through the ticket system, provide updates, ask for additional information, or respond to their queries within the ticket thread.
* **Example Prompt Instruction:**

> *When you need to communicate with a customer through their ticket or provide an update on their case, use this tool to add a comment. The customer will be able to see this comment. Collect the ticket ID and write a professional, helpful comment addressing their needs or providing the requested information.*

</details>

***

## FAQ

<details>

<summary>Can I change the ID the bot uses to respond?</summary>

Yes, you can add an ID in the field at the bottom of the AI Agents page in the eesel dashboard for HubSpot.

</details>

<details>

<summary>Does eesel AI train on HubSpot deals and notes?</summary>

No, eesel is not currently able to learn from HubSpot deals and notes.

</details>

<details>

<summary>What HubSpot services does eesel connect with?</summary>

eesel currently integrates with HubSpot’s CRM Conversations Inbox and Service Hub. It does not natively integrate with HubSpot Marketing features, so the exact compatibility depends on what data or workflows you’re looking to connect from HubSpot Marketing.

</details>


# Website

Use your website as a source of knowledge for the bot to use

eesel AI can use your website pages as a source of knowledge. It's a great way to test, and provide context about your company for the bot to use as general knowldge.

You can also crawl specific pathways of your website, like an FAQ or Product section, to enable the bot to have knowledge of more specific information that's available on your site.

eesel AI can also provide links to your website pages as part of its responses, by simply prompting it to do so.

There are two ways to add your website as a source for the bot:

1. Using our website crawler
2. Using our browser extension

## Website crawler

To use the website crawler, simply:

1. **Login** to your eesel AI account, **select** the bot you want to train
2. Click **Integrations > Website**
3. Add your website **URL**
   1. Optional: specify which URL paths to include or exclude
4. Wait for the crawler to index your pages!
5. **Review** the links by clicking on your website under the integrations sidebar on the left.

## Browser extension

To use the [browser extension](https://chromewebstore.google.com/detail/eesel-ai-chatgpt-sidebar/ejhkkbilnpifailgngpkgmiofhioacjd?hl=en) to index specific public pages, or index private pages:

1. **Download** our browser extension
2. **Login** to your eesel AI account and select your bot from the extension's bot dropdown
3. **Navigate** to the pages you want to add
4. **Open** the extension and select **Sources > Add current tab** or add all tabs.

Your pages will appear in the eesel dashboard on the sidebar instantly for use!

With this feature you can add private help center pages and any other web page. However, if you are looking to index a large volume of pages that are internal/private then we recommend reaching out once on a paid plan for us to index these automatically for you so that they can sync as well.

## Common Troubleshooting Tips

If you're having trouble crawling your site, here are some tips:

* Ensure that you've entered the correct URL
* Double check any excluded or included pathways
* If attempting to use the crawler, ensure that it's a publicly accessible site.
  * If it's still not crawling despite public then try to add the sitemap to the crawler instead
* If there's a large volume of pages, sometimes it can take time for the dashboard to catch up.

If you are still experiencing any issues, please reach out to support.

**Note**: Trial users do have crawl limits, so use the extension to be selective about what pages you want to use for testing.

## FAQ

<details>

<summary>How do I enable auto-sync for my website pages?</summary>

To enable auto-sync for your public or private website, you must be on a paid plan. Once on a plan, please reach out to support in-app or via <hi@eesel.app> with the following information:\
1\. The bot you'd like to add these crawled pages for\
2\. The frequency of synching you prefer\
3\. Any parameters like categories of pages or sections of your site you want to exclude\
4\. An example question and URL for us to test with

</details>


# Shopify

Integrate Shopify actions with your AI bot

{% hint style="info" %}
Like our other AI actions, Shopify actions are part of our Business Plan. They are also available to set up in our trial.
{% endhint %}

Our Shopify integration involves allowing your bot to access actions to lookup information on your Shopify store.

First, [follow the instructions to integrate Shopify.](#how-to-integrate-shopify-with-your-ai)

Then, [add in Shopify actions and prompt adjustments](#shopify-actions) to ensure your bot can utilize the integration.

## How to Integrate Shopify with your AI

Follow the steps below to create and configure the eesel AI Integration app in your Shopify store so you AI can retrieve orders, fulfilment information, products, and more!

{% stepper %}
{% step %}
**Access Shopify App Development Settings**

* Log in to your Shopify admin dashboard.
* Navigate to Settings > Apps and Sales Channels.\
  ​

  <div align="left"><figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1367592657/412e72274ee8dbd11a8c68b0cadf/AD_4nXcdxCW79xsj0ynduwe69BHTPbTzJ5gWBQZOH3irGmSKdOIfmS5S5wDUyeRR-oofiTgXMeWT0CyYoXG3oN2Xiumc6kaOAuFA5XgciHH8KOVWODXFc5kZ7rsvEivXyk7ZtJgHN_LrQQ?expires=1753329600&#x26;signature=7278257a670a2be7cfcafe853a55ccf86e650f38583925fb69f068139ef22db6&#x26;req=dSMhEcx3n4daXvMW1HO4zXqg%2BZwkfePVxVEwWyc9Ihjai1WqgoA2Z80XcjBx%0AioSo%0A" alt="" width="563"><figcaption></figcaption></figure></div>
* Click Develop apps at the top of the page.
* If prompted, enable app development
  {% endstep %}

{% step %}
**Create the App**

* Click Create an app.
* Enter eesel AI Integration as the app name.
* Proceed to create the app.
  {% endstep %}

{% step %}
**Configure API Credentials**

* Open the API credentials tab.

  <div align="left"><figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1367592880/df4f0a6eec36a4be96434068a02c/AD_4nXdUkpYQhM78JRKs0k-FixM5PcAH337QivA62FoQ4T7mXs65IkiLnmGhNm_iv9z9nRCPowJUOL4A9F_Yy6ONOnmfX-HrOWGcLHRYypPWNxE1PJeCaVfgMySWset0ZvNMh4KYMim1LQ?expires=1753329600&#x26;signature=7fe4f0e28926ff03805ccdc09dfdeddbbf85a1349978985e9fd1ced9392dbe57&#x26;req=dSMhEcx3n4lXWfMW1HO4zXoSy1K14TN5Au%2BXc001z1aAEdgc9mTcE0ZxZnkr%0A9jOD%0A" alt="" width="563"><figcaption></figcaption></figure></div>
* Click Configure Admin API scopes.
* Select the following read-only permissions:
  * `read_assigned_fulfillment_orders`
  * `read_customers`
  * `read_discounts`
  * `read_fulfillments`
  * `read_orders`
  * `read_payment_terms`
  * `read_products`
  * `read_returns`
  * `read_third_party_fulfillment_orders`
  * `read_custom_fulfillment_services`
* Click Save.
  {% endstep %}

{% step %}
**Install the App**

* Navigate to the Overview tab.
* Click the black Install app button in the top-right corner.
* Confirm the installation.
  {% endstep %}

{% step %}
**Retrieve and Share API Credentials**

* After installation, you will see a masked API credential

  <div align="left"><figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1367593703/420a31b8a565c0e1d8dd461ce859/AD_4nXespadWt5c7H5WWs67a-FbAFjuRyEk7iN7lrvTZ7LCUkzw6sKEYtNvPTNQnztwKOgBNKhPHnIJ9OWQUg0UkiOmgzOZr1O0rCO0NZMc9bSVW_HLyN0mTYtE-Q5KsBbo7biKRvGIlXQ?expires=1753329600&#x26;signature=ffea13bd6325d33ab1652efd598d1a18021c8fe904e5a97aa91e8f312ad31ea0&#x26;req=dSMhEcx3noZfWvMW1HO4zUIfwyCu%2FSDyU3yE%2FC23skI0jd5ANuT%2FMfGsO%2Bp3%0AdwCr%0A" alt="" width="563"><figcaption></figcaption></figure></div>
* Locate the API key field and click to reveal the token.
  {% endstep %}

{% step %}
**Add the credentials to a new action in the eesel dashboard**

* Open up the [eesel dashboard](https://dashboard.eesel.ai/v2)
* Go to "Customize" in the sidebar
* Click "Create new action", you'll see the following

  <div align="left"><figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1419950042/ceaf63447a0ec5dd261682ab0d97/image.png?expires=1753329600&#x26;signature=517cb8829101034233b50ece14731ed50fab7aa860698b97b06ba6a6e12b9491&#x26;req=dSQmH8B7nYFbW%2FMW1HO4zSPms77doStBHsDCY6iS%2Bl%2BFN6AUt27GaWtS%2BWUc%0APJtD%0A" alt="" width="563"><figcaption></figcaption></figure></div>
* Choose "Shopify" from the sidebar to see the list of Shopify actions available
* Select an action, then type in the shop name (not the URL!) and access token. The shop name will be the first part of the URL, for example if the URL is "eesel-ai.myshopify.com", the shop name will be "eesel-ai".

<div align="center"><figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1419951025/227bf1dec249d2d58dfd85a93897/image.png?expires=1753329600&#x26;signature=6edf20e59ef79c9f00809e17956fc8600fa8695c16123845988ee93c62bc2f9a&#x26;req=dSQmH8B7nIFdXPMW1HO4zZu7E2%2FvvIM6J27tIwwYJ2csL5DbNziljxcc4J15%0AcovO%0A" alt="" width="563"><figcaption></figcaption></figure></div>
{% endstep %}
{% endstepper %}

## Shopify Actions

<details>

<summary>Get order by ID</summary>

`shopify_get_order_by_id`

* **Purpose:** Fetch details for a specific Shopify order.
* **Key Params:** `order_id: str`
* **When/How to Use:** Use when a user asks about the status or details of a specific order and provides an order number or ID. Instruct the AI to ask for the order ID if the user's query requires it but isn't provided initially.
* **Important Note:** Customers may confuse the order ID with the order name, or some orders may have prefixes. If a lookup fails, ask the customer to double-check that they're providing a valid order ID (not order name) and verify the reference format in their Shopify admin.
* **Example Prompt Instruction:**

  > If the user is asking about the status or location of their order, you must ask them for their order number. Once the user provides an order number, you must call shopify\_get\_order\_by\_id with the provided order\_id as the parameter. Use the information returned by the tool to answer the user's question about their order.

</details>

<details>

<summary>Get order history by email</summary>

`shopify_get_order_history`

* **Purpose:** Retrieve the full order history (most recent 5 orders) for a customer by email address.
* **Key Params:** `email: str`
* **When/How to Use:** Use when a customer wants to see their recent order history or when you need to look up multiple orders for a customer. This is particularly useful for customers who can't remember specific order numbers.
* **Example Prompt Instruction:**

  > If the user wants to see their recent orders or order history, ask for their email address. Once provided, call shopify\_get\_order\_history with the email parameter to retrieve their most recent 5 orders with full details.

</details>

<details>

<summary>Get customer by email</summary>

`shopify_get_customer_by_email`

* **Purpose:** Look up a Shopify customer by their email address.
* **Key Params:** `email: str`
* **When/How to Use:** Use when a user asks about their account, order history, or general customer information and provides their email address. Instruct the AI to request the email if needed.
* **Example Prompt Instruction:**

  > If the user is asking about their customer account or looking for information related to orders associated with their account but has not provided an order number, you must ask for the email address associated with their account for verification. Once the user provides their email address, you must call shopify\_get\_customer\_by\_email with the provided email. Use the information returned to help the user with their account-related query.

</details>

<details>

<summary>Get product variants</summary>

`shopify_get_product_variants`

* **Purpose:** Retrieve all variants for specified product IDs, including size, color, and other variant options.
* **Key Params:** `product_ids: List[str]` - A list of product IDs to get variants for
* **When/How to Use:** Use when customers ask about available options for specific products, or when you need variant information for inventory or pricing queries.
* **Example Prompt Instruction:**

  > When a user asks about available sizes, colors, or other options for a specific product, use shopify\_get\_product\_variants with the product ID(s) to show all available variants and their details.

</details>

<details>

<summary>Get all products</summary>

`shopify_get_products`

* **Purpose:** Retrieve product catalog information including titles, IDs, and tags. Returns up to 3 pages of products sorted by creation date.
* **Key Params:** None (retrieves all products)
* **When/How to Use:** Use when customers want to browse the product catalog, or when you need to find products by name or category before getting specific details.
* **Example Prompt Instruction:**

  > If a user wants to browse available products or asks "what do you sell?", call shopify\_get\_products to retrieve the product catalog and present the available items.

</details>

<details>

<summary>Get fulfillment information</summary>

`shopify_get_fulfillment_for_order_id`

* **Purpose:** Retrieve fulfillment and shipping information for a specific order ID.
* **Key Params:** `order_id: str` - The numeric order ID (e.g., "11607431610736")
* **When/How to Use:** Use when customers ask about shipping status, tracking information, or fulfillment details for their order.
* **Example Prompt Instruction:**

  > When a user asks about shipping status or tracking information, first get their order using shopify\_get\_order\_by\_id, then use shopify\_get\_fulfillment\_for\_order\_id with the order ID to get detailed fulfillment information.

</details>

<details>

<summary>Get variant metafields</summary>

`shopify_get_variant_metafields`

* **Purpose:** Fetch custom metafields for product variants, useful for accessing additional product data like specifications, custom attributes, or extended information.
* **Key Params:**
  * `variant_ids: List[str]` - List of variant IDs
  * `namespace: str` (optional) - Filter by metafield namespace
  * `key: str` (optional) - Filter by specific metafield key
  * `type_: str` (optional) - Filter by metafield type
  * `limit: int` (optional, default 50) - Results per page
  * `max_pages: int` (optional, default 1) - Maximum pages to fetch
* **When/How to Use:** Use when you need access to custom product variant data that's stored in metafields, such as technical specifications, care instructions, or custom attributes.
* **Example Prompt Instruction:**

  > When users ask about detailed product specifications or custom attributes that aren't in the standard product data, use shopify\_get\_variant\_metafields to access additional information stored in metafields.

</details>

<details>

<summary>Get product metafields</summary>

`shopify_get_product_metafields`

* **Purpose:** Fetch custom metafields for products, providing access to additional product information beyond standard fields.
* **Key Params:**
  * `product_ids: List[str]` - List of product IDs
  * `namespace: str` (optional) - Filter by metafield namespace
  * `key: str` (optional) - Filter by specific metafield key
  * `type_: str` (optional) - Filter by metafield type
  * `limit: int` (optional, default 50) - Results per page
  * `max_pages: int` (optional, default 1) - Maximum pages to fetch
* **When/How to Use:** Use when you need to access custom product data stored in metafields, such as detailed descriptions, specifications, or custom business data.
* **Example Prompt Instruction:**

  > For detailed product information beyond the standard fields, use shopify\_get\_product\_metafields to retrieve custom data stored in metafields for the requested products.

</details>

<details>

<summary>Search products</summary>

`shopify_search_products`

* **Purpose:** Search the product catalog using GraphQL search API to find products matching specific search terms.
* **Key Params:**
  * `search_query: str` - Search terms (e.g., "brake pads", "red shirt", "iPhone case")
  * `limit: int` (optional, default 10, max 250) - Maximum results to return
* **When/How to Use:** Use when customers search for products by name, category, or description. More powerful than browsing all products as it uses Shopify's search capabilities.
* **Example Prompt Instruction:**

  > When users search for specific products or ask about items by name/category, use shopify\_search\_products with their search terms to find matching products with details including pricing, availability, and images.

</details>

<details>

<summary>Generate product carousel</summary>

`shopify_generate_carousel`

* **Purpose:** Generate a product carousel using Shopify's public Storefront API. Can search for products or display specific products by ID. No authentication required.
* **Key Params:**
  * `shop_name: str` - Shopify shop name (e.g., "mystore" for mystore.myshopify.com)
  * `search_query: str` (optional) - Search term for products
  * `product_ids: List[str]` (optional) - Specific product IDs to display
  * `limit: int` (optional, default 6, max 20) - Maximum products for search results
* **When/How to Use:** Use to create visual product displays for customers, either based on search results or specific product recommendations.
* **Example Prompt Instruction:**

  > To show customers a visual carousel of products, use shopify\_generate\_carousel with either a search query for discovery or specific product IDs for recommendations. This creates a rich UI display with images and purchase links.

</details>

<details>

<summary>Create return/RMA</summary>

`shopify_create_return`

* **Purpose:** Create a return merchandise authorization (RMA) for a specific order with selected line items.
* **Key Params:**
  * `order_id: str` - Shopify order ID
  * `line_items: List[ReturnLineItem]` - Items to return with fulfillmentLineItemId and quantity
  * `reason: str` (optional, default "UNKNOWN") - Return reason (COLOR, DEFECTIVE, NOT\_AS\_DESCRIBED, OTHER, SIZE\_TOO\_LARGE, SIZE\_TOO\_SMALL, STYLE, UNKNOWN, UNWANTED, WRONG\_ITEM)
  * `notify_customer: bool` (optional, default False) - Whether to email customer
* **When/How to Use:** Use when customers want to return specific items from an order. Requires fulfillment line item IDs from the order details.
* **Example Prompt Instruction:**

  > When a customer wants to return items, first get their order details, then use shopify\_create\_return with the specific line items they want to return and the reason for the return.

</details>

<details>

<summary>Create replacement order</summary>

`shopify_create_return_order`

* **Purpose:** Create a 100% discounted replacement order for returned items, typically used in exchange scenarios.
* **Key Params:**
  * `original_order_id: str` - Original order being replaced
  * `replacement_line_items: List[ReplacementOrderLineItem]` - New items with variantId and quantity
  * `customer_email: str` - Customer's email address (required)
* **When/How to Use:** Use when processing exchanges or sending replacement items at no charge to the customer.
* **Example Prompt Instruction:**

  > For product exchanges or free replacements, use shopify\_create\_return\_order to create a fully discounted order with the replacement items for the customer.

</details>

<details>

<summary>Refund order</summary>

`shopify_refund_order`

* **Purpose:** Process a full refund for a Shopify order with customer email validation for security.
* **Key Params:**
  * `order_id: str` - Order identifier (name like "#1001" or numeric ID)
  * `customer_email: str` - Customer email for validation
  * `reason: str` (optional, default "other") - Refund reason ("duplicate", "fraud", "other")
  * `note: str` (optional) - Note explaining the refund
  * `notify_customer: bool` (optional, default True) - Send email notification
* **When/How to Use:** Use when customers request refunds. Always validates that the order belongs to the provided email address for security.
* **Example Prompt Instruction:**

  > For refund requests, use shopify\_refund\_order with both the order ID and customer email to securely process the full refund. The system will validate ownership before processing.

</details>

<details>

<summary>Cancel order</summary>

`shopify_cancel_order`

* **Purpose:** Cancel a Shopify order with customer email validation, optionally processing automatic refunds.
* **Key Params:**
  * `order_id: str` - Order identifier (name like "#1001" or numeric ID)
  * `customer_email: str` - Customer email for validation
  * `reason: str` (optional, default "customer") - Cancellation reason ("customer", "fraud", "inventory", "declined", "other")
  * `send_notification: bool` (optional, default True) - Send email notification
  * `process_refund: bool` (optional, default True) - Automatically refund paid orders
  * `cancellation_note: str` (optional) - Note explaining cancellation
* **When/How to Use:** Use when customers want to cancel unfulfilled orders. Cannot cancel already fulfilled orders - use refund instead.
* **Example Prompt Instruction:**

  > For order cancellations, use shopify\_cancel\_order with the order ID and customer email. The system validates ownership and can automatically process refunds for paid orders. Use refund tool for already fulfilled orders.

</details>

## FAQ

<details>

<summary>How do I index my entire product site? I'm having trouble with the app finding specific product pages.</summary>

We recommend using the “product search” action (see Customize > create new action > Shopify > product search).

This will allow the bot to use your Shopify to search for the product information instead, which enables real time information rather than indexing your pages via the web crawler.

</details>


# Magento

Integrate Magento actions with your AI bot

Magento is a powerful e-commerce platform that allows you to manage your online store, customer orders, and products. This integration connects your Magento store to the AI assistant, enabling automated order management, customer support, and inventory tracking.

## Overview

The Magento integration provides AI-powered tools to:

* Retrieve order details and customer information
* Check payment status and process refunds
* Track order shipments and delivery status
* Send customer notifications
* Cancel orders when needed

## Getting Started

### Prerequisites

Before setting up the Magento integration, ensure you have:

* A Magento store with admin access
* API credentials (access token)
* Your Magento store URL

### Setup Process

1. **Log in to your Magento admin panel**
2. **Navigate to System > Extensions > Integrations**

<div align="left"><figure><img src="/files/2RuqeD0EtALoUYDiUnku" alt="" width="375"><figcaption></figcaption></figure></div>

3. Click the **Add New Integration** button in the top-right corner.

<figure><img src="/files/k0JBvGY0pdQk1Md0h1yK" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/LbXwi5ovIlN9s4uXjW1q" alt=""><figcaption></figcaption></figure>

4. Fill in the required details:
   * Name: Enter a descriptive name (e.g., "OurPortal\_Orders\_Integration").
   * Email: Provide a valid email address (this can be your own).
   * Callback URL and Identity Link URL: Leave these blank unless specified by our portal’s documentation.
   * Your Password: Enter your Magento admin password to authorize the integration.
5. Select the **API** button on the left.

<figure><img src="/files/b5Gt3shN4BKhjJKbvhCH" alt=""><figcaption></figcaption></figure>

6. The following permissions needed:
   * Sales (Orders, Invoices, Credit Memos)
   * Customer (Customer information)
   * Catalog (Product information)
7. After that, click the dropdown and press "**Save and Activate.**"
8. **Generate API credentials** and note your access token can be seen on **Integration Info**
9. **Enable OAuth Access Token usage** (required):
   * Navigate to **Stores > Configuration > Services > OAuth > Consumer Settings**
   * Set **Allow OAuth Access Tokens to be used as standalone Bearer tokens** to **Yes**
   * *Note: This setting must be active for the access token to work*

### Configuration

<figure><img src="/files/JamWqQfXVaICMDihza0a" alt=""><figcaption></figcaption></figure>

In your workspace integration settings, provide:

* **Access Token**: Your Magento API access token
* **Magento URL**: Your store's base URL (e.g., `https://yourstore.com`)

## Available Actions

### Order Management

#### Get Order Details

Retrieve comprehensive information about a specific order.

**Use Cases:**

* Customer support inquiries about order status
* Order verification and troubleshooting
* Order history lookup

**Example:**

```
Get order details for order #100001234
```

#### Get Orders by Customer Email

Find all orders associated with a customer's email address.

**Use Cases:**

* Customer service when customers can't remember order numbers
* Order history for repeat customers
* Support ticket resolution

**Example:**

```
Find all orders for customer@example.com
```

### Payment Management

#### Check Payment Status

Verify the payment status of an order and get detailed payment information.

**Use Cases:**

* Resolving payment disputes
* Confirming payment completion
* Troubleshooting payment issues

**Example:**

```
Check payment status for order #100001234
```

#### Process Refunds

Create refunds for orders using Magento's credit memo system.

**Use Cases:**

* Customer returns and refunds
* Order cancellations with refunds
* Partial refunds for damaged items

**Example:**

```
Refund order #100001234 for $50.00 due to damaged product
```

### Order Tracking

#### Get Order Tracking Information

Retrieve shipping and tracking details for orders.

**Use Cases:**

* Customer inquiries about delivery status
* "Where is my order?" support requests
* Delivery confirmation and tracking

**Example:**

```
Get tracking information for order #100001234
```

### Customer Communication

#### Send Order Notices

Send automated notifications to customers about their orders.

**Use Cases:**

* Order status updates
* Shipping notifications
* Payment reminders
* Custom order communications

**Example:**

```
Send shipping update notice for order #100001234
```

### Order Cancellation

#### Cancel Orders

Cancel orders that haven't been shipped yet.

**Use Cases:**

* Customer-requested cancellations
* Inventory issues
* Payment problems

**Example:**

```
Cancel order #100001234 due to customer request
```

## Troubleshooting

### Common Issues

#### Orders Not Appearing

* **Solution**: Refresh the page and check your API credentials
* **Check**: Ensure the integration has proper permissions for order access

#### API Authentication Errors

* **Solution**: Verify your access token is correct and hasn't expired
* **Check**: Confirm your Magento URL is accurate and accessible

#### Slow Synchronization

* **Solution**: Wait a few minutes for the sync to complete
* **Check**: Verify your server connection and API rate limits

#### Payment Status Issues

* **Solution**: Check if the order is in a terminal state (cancelled, completed, refunded)
* **Check**: Verify payment gateway integration is working properly

## Related Integrations

* **Picqer**: Warehouse management and fulfillment
* **Email Service**: Customer notifications and communications
* **Payment Gateways**: Payment processing and refunds


# Picqer

Integrate Picqer actions with your AI bot

Picqer is a comprehensive warehouse management system that handles inventory, order fulfillment, and shipping operations. This integration connects your Picqer warehouse to the AI assistant, enabling automated inventory management, order tracking, and fulfillment operations.

## Overview

The Picqer integration provides AI-powered tools to:

* Search and manage product inventory
* Track order fulfillment and shipping
* Update shipping addresses and order details
* Process returns and refunds
* Manage customer orders and history

## Getting Started

### Prerequisites

Before setting up the Picqer integration, ensure you have:

* A Picqer account with admin access
* API key with appropriate permissions
* Your Picqer instance URL

### Setup Process

1. **Log in to your Picqer admin panel**
2. **Navigate to Settings > API Keys**

<figure><img src="/files/OD0EfUOy4k1ZoR0Lz03M" alt=""><figcaption></figcaption></figure>

3. **Generate a new API key**
4. **Note your API key** and instance URL

### Configuration

<figure><img src="/files/nVDJzV5AtQTWBxtYSzSh" alt=""><figcaption></figcaption></figure>

In your workspace integration settings, provide:

* **API Key**: Your Picqer API key
* **Picqer URL**: Your instance URL (e.g., `https://yourcompany.picqer.com`)

## Available Actions

### Product Management

#### Search Products

Find products in your warehouse by name.

**Use Cases:**

* Product availability checking

**Example:**

```
Search for product "Headphones"
```

**Features:**

* Searches both product catalog and order history
* Shows stock levels
* Displays pricing and product details

### Order Management

#### Track Orders

Get comprehensive tracking information for orders in your warehouse.

**Use Cases:**

* Customer support for "Where is my order?" inquiries
* Order status verification
* Shipping and delivery tracking
* Fulfillment progress monitoring

**Example:**

```
Track order #O12345 or order 12345
```

**Features:**

* Shows order status and processing timeline
* Displays tracking numbers and shipping carriers
* Provides estimated delivery information

### Order Modifications

#### Update Shipping Address

Update the delivery address for unshipped orders after email verification.

**Use Cases:**

* Customer address change requests
* Delivery address corrections
* Shipping to alternative locations
* Address validation and updates

**Example:**

```
Update shipping address for order #O12345
```

**Address Format:**

* deliveryname
* deliverycontactname
* deliveryaddress
* deliveryaddress2
* deliveryzipcode
* deliverycity
* deliveryregion
* deliverycountry
* full\_delivery\_address

#### Cancel Orders

Cancel orders that haven't been shipped yet.

**Use Cases:**

* Customer-requested cancellations
* Inventory issues
* Payment problems
* Order errors

**Example:**

```
Cancel order #O12345 due to customer request
```

### Returns and Refunds

#### Process Refunds

Handle returns and refunds for orders using Picqer's Returns API.

**Use Cases:**

* Customer returns processing
* Product defect refunds
* Order cancellation refunds
* Partial refunds for damaged items

**Example:**

```
Process refund for order #O12345, amount €50.00, reason: damaged product
```

**Features:**

* Automatic return creation
* Configurable return status and reason
* Full or partial refund amounts
* Integration with order management

## Warehouse Operations

### Inventory Management

* **Stock Levels**: Monitor inventory
* **Reserved Stock**: Track items reserved for pending orders
* **Free Stock**: View available inventory for new orders
* **Product Search**: Find products by name, SKU, or description

### Order Fulfillment

* **Order Processing**: Track orders from receipt to shipment
* **Shipping Management**: Handle address updates and shipping labels
* **Tracking Integration**: Connect with shipping carriers for delivery updates
* **Return Processing**: Manage returns and refunds

## Troubleshooting

### Common Issues

#### Order Not Found

* **Solution**: Try different order ID formats (with/without "O" prefix)
* **Check**: Verify the order exists in your Picqer system

#### API Authentication Errors

* **Solution**: Verify your API key is correct and has proper permissions
* **Check**: Confirm your Picqer URL is accurate and accessible

#### Address Update Failures

* **Solution**: Some Picqer instances don't support API-based address updates
* **Check**: Use the manual update process in the Picqer interface

#### Refund Processing Issues

* **Solution**: Check if the order is eligible for refunds
* **Check**: Verify return status and reason IDs are correct

## Related Integrations

* **Magento**: E-commerce platform integration
* **Shipping Carriers**: Delivery and tracking services
* **Payment Systems**: Refund and payment processing
* **Inventory Systems**: Stock management and monitoring


# Slack

Chat with the bot in Slack

<figure><img src="/files/6OfO28orIted3fFy6KT9" alt=""><figcaption></figcaption></figure>

Slack is one of our favorite apps that you can integrate with. Use it to streamline your internal team chat, so your team has access to internal documentation (or any other integrations you want!) for instant replies and assistance. Great for onboarding.

## **How to set up the Slack integration:**

1. Head to your **eesel dashboard**. Choose the bot you want to connect to Slack.
2. Click the **Integrations tab** in the side menu.
3. In the search bar, type **"Slack"** and select it from the list.
4. Hit the **Connect Slack** button.
5. You’ll be prompted to sign into your Slack workspace. Use your **Slack URL** to do this. (You can find it by clicking your workspace name in Slack, then selecting Edit workspace details.)
6. When prompted, **grant eesel permission** to access your Slack workspace.
7. Head back to the **eesel dashboard > Slack integration** on sidebar > **Channels** and make sure the Channel ID has been added.
8. You’re all set to start chatting with your bot directly in Slack.

## **Setting up multiple bots for different channels**

In some cases, you may want a Sales bot for your Sales channel, and a Support bot for the Support channel, etc.

To do so, you can:

1. **Create a bot** for each of the channels you want a unique bot for
2. **Connect** each of them to your Slack workspace as explained above
3. Click **Slack** on the integration sidebar > **Channels** and input the ID of the channel you want that specific bot to be active in.
4. Repeat for each bot.

**Note:** The bots will only have access to the knowledge they've been provided, and the actions and prompt they have. This is useful if you want everything completely separate, but you're able to also have them share knowledge or route to each other using some of our actions like [Prompt and actions](/legacy/getting-started/prompt-and-actions#use-knowledge-from-another-bot) or [Prompt and actions](/legacy/getting-started/prompt-and-actions#consult-direct-query-to-another-bot).

By default, your AI will not learn from conversations. To set this up, please contact support.

## FAQ

<details>

<summary>Can I change the name of my Slack bot, depending on the channel it’s in?</summary>

No, the Slack bot’s name is tied to the app - so changing its name will change the name for all bots in your workspace.

However, you can still specify which bots are operating in which channels - so you’ll be able to ensure that only your HR bot is responding in the HR channel, etc.

</details>

<details>

<summary>Can I train the bot on Slack conversations/channels?</summary>

No, although this was a feature, some integral Slack app changes have disabled this feature for now. We're working to re-add this feature soon. Feel free to get in touch to let us know you're interested in it and we will let you know when it's ready.

</details>

<details>

<summary>What kind of Slack account do I need in order to connect eesel?</summary>

You do not need a corporate Slack account - as long as you have the required permissions to install eesel in their Slack workspace, you can use the Slack integration.

</details>


# Teams

Chat with the bot in Teams and train it on conversations

{% hint style="info" %}
The Microsoft Teams integration is only available on a paid Business Plan and is not available to set up during your trial.
{% endhint %}

<figure><img src="/files/Qakxk6Rm1z3JIBA8OW15" alt=""><figcaption></figcaption></figure>

Train the bot on your apps and documentation, and chat with it in Teams like a teammate. Great for onboarding, sourcing docs from scattered platforms, and streamlining internal processes.

{% stepper %}
{% step %}

#### Download & Install the app

* Download the eesel.zip file provided below.
* Go to[ https://admin.teams.microsoft.com/policies/manage-apps](https://admin.teams.microsoft.com/policies/manage-apps).
* Click on Actions > Upload new app in the top right corner.
* Upload the eesel application zip file that you downloaded.

{% file src="/files/3YrDH3Q5C4m52YntFNpC" %}
{% endstep %}

{% step %}

#### Enable the App

* Open Microsoft Teams.
* In the left sidebar, click on Apps.
* Use the search bar to find the custom app (e.g., eesel).
* Click on the app from the search results.
* Select Add or Open to install it (if not already installed).
* Select the channels you'd like eesel to be active in. eesel can be invoked by using "@eesel" in your message.
  {% endstep %}

{% step %}

#### Add your Tenant ID

You can find your Microsoft **Tenant ID** in two ways:

**Option 1: Using the Microsoft Entra Admin Center**

* Click [here](https://learn.microsoft.com/en-us/sharepoint/find-your-office-365-tenant-id) to open Microsoft’s official guide and learn how to find your Tenant ID.

**Option 2: Using Microsoft Teams**

* Begin by clicking on the **three dots (⋯)**, or the **‘More options’** menu, located next to any team or channel in Microsoft Teams.
* A dropdown menu will appear upon clicking the three dots menu. Find and select the **“Copy Link to Channel”** option from this list.
* Next, paste the link into a text editor of your choice or directly into **eesel**. We will extract the **tenantId**.

  > Don’t worry — this is just a link. We do **not** get access to your Teams account.
  > {% endstep %}

{% step %}

#### Success!

The app has been added to your organization. You can now tag eesel in conversations using @eesel or search for eesel in the user list to start a direct chat.
{% endstep %}
{% endstepper %}


# Confluence

Instant AI answers based on your company wiki

Train your AI bots on your Confluence pages. eesel AI will respond based on these pages and provide links to the sources. A perfect solution to navigating a messy and overwhelming Confluence wiki.

Use the knowledge from your Confluence across all the apps you connect your AI with.

There are two ways to integrate your Confluence with eesel AI:

* [Using our app](#adding-pages-using-our-confluence-app) (when you want whole spaces added)
* [Using our browser extension](#adding-pages-using-the-browser-extension) (for specific pages, and testing purposes)

## Adding pages using our Confluence app

1. Start a free trial for [AI for Confluence](https://marketplace.atlassian.com/apps/1230921/chatgpt-for-confluence-ai-chat?tab=overview\&hosting=cloud) from the Atlassian Marketplace.
2. Go to the “Getting Started” page.
3. Click “Start onboarding” and create an eesel account.
4. Add pages in your Confluence as Knowledge.
   1. Find the settings for the app and choose which pages you would like to add.

      <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1239775703/432404e0d8b08bd2914b966d1746/Go+to+chat+and+ask+questions-1.png?expires=1753407000&#x26;signature=3cb65580d3cf9e185582ce5dd2e7887af62ef603c40d32a3b8b773a1b4d19782&#x26;req=dSIkH855mIZfWvMW1HO4zWks3tbIKlsfT2wYGpk2FmGCPRgNqPFzNYwcQPTq%0AnYpX%0A" alt=""><figcaption></figcaption></figure>
   2. Choose your knowledge and “Save changes”.

      <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1239775823/0ec5f85279cc94887b292900c461/Add+Knowledge.png?expires=1753407000&#x26;signature=ed6b8780bc433127c92a4a2792097aebf767c25cb3e8ebbb33ae36662de18490&#x26;req=dSIkH855mIldWvMW1HO4zc%2B1EXc26kuX36P8eEgGmkGtv0ZbNBdmM3MJZV2y%0AZBZM%0A" alt=""><figcaption></figcaption></figure>
   3. To add pages from Personal Spaces, reach out to support at <it@eesel.app>
5. Chat with your Knowledge.

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1239776219/bb98ef0d19eaa11a34c5a6da1b14/Go+to+chat+and+ask+questions.png?expires=1753407000&#x26;signature=7af4eebddc05614208d56c67f49a38289abb97da7a445cfd93cccec08f7e4a52&#x26;req=dSIkH855m4NeUPMW1HO4zc%2FJBt5%2BEye9aoW09nCKmvol5oYP%2BAxIy9whIxRO%0A4qJS%0A" alt=""><figcaption></figcaption></figure>
6. Access AI for Confluence at time through the “Apps” dropdown in the toolbar.
7. Optional: Integrate this with other apps.
   1. There is so much more this app can do. You can:
      1. Integrate [helpdesks](broken://pages/axBBDVDfvLQC47IbK5t1) with Jira Service Management, Zendesk, or Intercom, so AI Agents can automatically deflect Tier 1 tickets or AI Assist can help your team with draft responses.
      2. Integrate the AI chat with your [Slack](/legacy/integrations/slack) and [Microsoft Teams](/legacy/integrations/teams).
      3. Embed an [AI chatbot](/legacy/products/ai-chat-bot) into your website.

If you have any questions or would like assistance setting up, please reach out through your dashboard or via email at <hi@eesel.app>.

## Adding pages using the browser extension

eesel AI can be trained on your Confluence in just minutes.

To do so, simply:

1. Navigate to the bot you’d like to train.\
   ​

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1235982589/903bc1683140e2ce52310dedefc1/Select+your+bot.png?expires=1753407000&#x26;signature=daa73899099c3dce2996e1274420e05cdf43bf65321f96700477f69f7daad1fc&#x26;req=dSIkE8B2n4RXUPMW1HO4zYw42arvaupwRy4KsMnH6eEEv8WHluBkxNdmBmbK%0AImH1%0A" alt=""><figcaption></figcaption></figure>
2. Click the plus button in the Integrations menu of the sidebar.\
   ​

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1235982687/f37027ebcbe73bab82fc763aec95/Open+Sources.png?expires=1753407000&#x26;signature=52d7445c1fcfbb91687e532e9931cedbf05805ec56bc4a7096b85967c8f0c179&#x26;req=dSIkE8B2n4dXXvMW1HO4zQn5PlG4SrXLV3NAHcmDpxPFoAJjOVmbmQfbCF1Q%0ASXVz%0A" alt=""><figcaption></figcaption></figure>
3. Select Confluence.\
   ​

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1235989507/9677bba1838c5fe8a711db3eab1e/Select+Confluence.png?expires=1753407000&#x26;signature=0ce8d1152d8fa0f1732e729994e7f16d65855db78a8df7860666d91ae364bb64&#x26;req=dSIkE8B2lIRfXvMW1HO4zUofL54BO%2BVTg9sAMwtXtoFlaWzWht49ugH8cMBR%0ASYZ3%0A" alt=""><figcaption></figcaption></figure>
4. Follow the instructions to install the Chrome browser extension.

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1235989609/1b788badad880c10bb264595eb1b/Install+Browser+Extension+Google+Docs.png?expires=1753407000&#x26;signature=ea1253938e3a4af3daaecc67fb1665dadc3c835fd8a0e0d790c3d37c960db048&#x26;req=dSIkE8B2lIdfUPMW1HO4zbN4vDE7PwvZSfISDo%2BwYofIBS%2FK0RN5Dxst62dN%0AJNg%2B%0A" alt=""><figcaption></figcaption></figure>
5. Open the extension, and select the bot you'd like to train from the drop down menu.

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1235991571/4b67d1868e688f4bd665170d57c4/Select+your+bot+2.png?expires=1753407000&#x26;signature=f43c6086ed25473418621601b6e5f675c3337f8f6c085f59383cadd802776da3&#x26;req=dSIkE8B3nIRYWPMW1HO4zQPfvBomAz%2F%2BOna9uH0oC2jSyxcCSu%2FGX6aexoUC%0AtzmF%0A" alt=""><figcaption></figcaption></figure>
6. When you have your Confluence open, click 'Add Sources', and select either 'Add current tab', or 'Add all tabs in window.'

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1235989832/f274e60e1ab70024b8bd5df3e094/Select+your+tab.png?expires=1753407000&#x26;signature=f93295301c5df71c48c2bbbc30197954a3c27eb090064df1ffe027363bff1c42&#x26;req=dSIkE8B2lIlcW%2FMW1HO4zRFKDarZPjnFLpWpaie6Ppdfh6j%2F9sSE366c4Q2B%0AGVx6%0A" alt=""><figcaption></figcaption></figure>
7. Chat with your bot and check it out!

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1235992529/8718402d2824cf65323f9d91b0b2/Test+out+the+chat+Confluence.png?expires=1753407000&#x26;signature=6348e757412bb8614ed20777e7ed882f02573fd7485cad5bc6fe78c214221343&#x26;req=dSIkE8B3n4RdUPMW1HO4zQErDANy6Pqfl2RDawum4usQZ3cCBiCaIVFSQ2JC%0AKlnd%0A" alt=""><figcaption></figcaption></figure>

For tables, we suggest exporting as a CSV and uploading that directly. It’ll work best in that format.

## Frequently Asked Questions

<details>

<summary>Does the Confluence app or Confluence pages auto-sync?</summary>

Confluence app integration: Yes, the Confluence app integration will automatically sync your pages when a page is updated. However, for deleting or archiving pages you will need to manually resync for the changes to appear in eesel.

Confluence pages added via extension: No, these pages are indexed as they are when they are initially added. You will need to re-index these pages with the extension when they are updated. If pages are frequently updated, we recommend using our app instead.

</details>


# Troubleshooting: AI for Confluence App Not Indexing Content

Common troubleshooting steps for indexing issues with AI for Confluence app

If you are experiencing issues with the AI for Confluence add-on not indexing content, there are a few common reasons why this might be happening. Follow the troubleshooting steps below to identify and resolve the issue.

## Common Reasons Why Content is Not Indexed <a href="#h_41c2cb31f4" id="h_41c2cb31f4"></a>

### 1. The Bot Lacks Proper Permissions <a href="#h_68f03c773e" id="h_68f03c773e"></a>

The AI for Confluence/AI Chat bot requires appropriate permissions to access and index content within Confluence spaces. If the bot does not have the correct permissions, it will not be able to retrieve and process pages.

Solution: To fix permission issues, follow these steps:

1. Navigate to the Confluence Space where the content is located.
2. Click on Space Settings in the left-hand sidebar.
3. Go to Space Access.
4. Click "Edit"
5. Add ChatGPT for Confluence / AI for Confluence to the users list.\
   ​

   [![](https://downloads.intercomcdn.com/i/o/lnz0cfjq/1388318314/abb4c5a49716ab4fef72dfbca67d/image.png?expires=1753407000\&signature=5ead98c81dd22a71451ae7c71b9351a3b3b44d9383d127eb66b11ff44ab146a4\&req=dSMvHsp%2FlYJeXfMW1HO4zaqiq0WaEPXeDHzU%2FM9aVyjmJUg63Y%2Fdr6xrFauY%0AZ1V6%0A)](https://downloads.intercomcdn.com/i/o/lnz0cfjq/1388318314/abb4c5a49716ab4fef72dfbca67d/image.png?expires=1753407000\&signature=5ead98c81dd22a71451ae7c71b9351a3b3b44d9383d127eb66b11ff44ab146a4\&req=dSMvHsp%2FlYJeXfMW1HO4zaqiq0WaEPXeDHzU%2FM9aVyjmJUg63Y%2Fdr6xrFauY%0AZ1V6%0A)

   \
   ​
6. Ensure that it has at least View permissions for All Content.
7. Save the changes and try re-indexing.

Optional: Checking Individual Page Restrictions If a specific page is not being indexed, it may have individual Page Restrictions preventing access. Follow these steps:

1. Navigate to the specific page that is not being indexed.
2. Click the Restrictions padlock icon to open up the page permissions.\
   ​

   [![](https://downloads.intercomcdn.com/i/o/lnz0cfjq/1388316577/639aac5a4c08ec32967ad091550f/image.png?expires=1753407000\&signature=1df687c1a70ffeee25d1973cf9480ba90943096f8e9858a2921e88cd2635a508\&req=dSMvHsp%2Fm4RYXvMW1HO4zcEk0VGGkQfVohJ7%2BI1nJlPFkna1Qtd938aWjPzp%0Aq%2BQP%0A)](https://downloads.intercomcdn.com/i/o/lnz0cfjq/1388316577/639aac5a4c08ec32967ad091550f/image.png?expires=1753407000\&signature=1df687c1a70ffeee25d1973cf9480ba90943096f8e9858a2921e88cd2635a508\&req=dSMvHsp%2Fm4RYXvMW1HO4zcEk0VGGkQfVohJ7%2BI1nJlPFkna1Qtd938aWjPzp%0Aq%2BQP%0A)
3. Ensure that ChatGPT for Confluence / AI for Confluence has View access, or that access is generally open.
4. Save any changes and reattempt indexing.

### 2. The Content is Too Large <a href="#h_9904c5d16f" id="h_9904c5d16f"></a>

Large content pages, especially those with extensive text, tables, or attachments, may not be indexed properly by the AI for Confluence add-on due to processing limitations.

Solution:

* Try breaking down the content into smaller sections or pages.
* If the page contains large attachments, consider moving them to a dedicated storage solution and linking them within the page.
* Reduce excessive formatting, embedded elements, or code blocks that may hinder the indexing process.

### 3. The Content is Not a Direct Child of the Space Homepage <a href="#h_86ccd1f504" id="h_86ccd1f504"></a>

For content to be indexed, it must be a child page of the space homepage. If a page exists outside the hierarchy, the add-on may not recognize it for indexing.

Solution:

1. Navigate to the page that is not being indexed.
2. Click the More Actions (•••) button at the top-right of the page.
3. Select Move and choose the homepage of the space as the new parent page.
4. Save the changes and allow time for re-indexing.

### Additional Troubleshooting Steps <a href="#h_baaab0c84b" id="h_baaab0c84b"></a>

If you have checked the above conditions and content is still not being indexed:

* Ensure the add-on is installed correctly in your Confluence instance.
* Verify that Confluence APIs and integrations are functioning as expected.
* Contact eesel AI support for further assistance.

By following these steps, you should be able to resolve most indexing issues related to AI for Confluence and ensure smooth operation of the add-on within your Confluence workspace.

\\


# Notion

AI agents and insights for your Notion workspace

Train your AI bots on your Notion pages. eesel AI will respond based on these pages and provide links to the sources. A perfect solution to navigating a messy and overwhelming Notion wiki.

Use the knowledge from your Notion across all the apps you connect your AI with.

There are two ways to integrate your Confluence with eesel AI:

* [Using our Notion integration ](#adding-notion-with-our-direct-integration)(for indexing a higher volume)
* [Using our browser extension](#adding-notion-with-our-browser-extension) (for specific pages, good for testing)

## Adding Notion with our direct integration

We have a direct Notion integration available through our eesel dashboard. It will enable you to add your Notion pages directly.

1. Head to **integrations** > **Notion**.
2. Click **Start setup**
3. Click **"Connect Notion"** tab
4. Head to your [profile in Notion](https://www.notion.so/profile/integrations)
5. Click **Add New Integration**
6. Select the **workspace** you want to integrate, the **type** of integration, and a **name**.
7. Click configure **integration settings**
8. Click the **"Access"** tab > Select **pages**
9. Add any pages that you want eesel to index, and click "**update access**"
10. Go back to the **configuration tab** and reveal the **Internal Integration Secret** key
11. Copy the key and add it to the eesel Notion setup screen back on the dashboard.
12. Click **connect Notion**.
13. **Allow for some time** for Notion to index your pages. Depending on the volume, it may take some time for it to appear in your eesel dashboard. Notion has strict indexing speed limitations.
14. Once Notion has indexed your pages, you'll see Notion appear in the integration sidebar of your eesel dashboard.

If your Notion has *not* been added to the left sidebar, it's likely because the pages haven't been indexed. If this is the case, please ensure you've provided access through your Notion profile as mentioned in step 8-9. If this is all configured correctly, and you've allowed some time for Notion to index, please reach out to support.

## Adding Notion with our browser extension

To do so, simply:

1. Choose the bot you’d like to train.

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1238512045/7f5cabca35ff3f9aebdef2852e1a/Select+your+bot.png?expires=1753411500&#x26;signature=608718270033f13eb7b93f7e280c2b3d6385b58b49aa4e8d002934205d024376&#x26;req=dSIkHsx%2Fn4FbXPMW1HO4zdy7pbfFIKa34RNVzU8ax4B5hkFrUgoc06uxKUFV%0Ai%2BV8%0A" alt=""><figcaption></figcaption></figure>
2. Click the plus (+) button in the Integrations section of the sidebar.

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1238512199/855c1394f8c4715782f6b5e77644/Open+Sources.png?expires=1753411500&#x26;signature=7fa4ec21c5e87441d56e6a2c36f1059476c2ee6feeb1ff0d8313280ba2de384c&#x26;req=dSIkHsx%2Fn4BWUPMW1HO4zQrnK67%2BPYBdUuaRxbb39gc4rzu5UVRF%2FuQ7V4FC%0Awut9%0A" alt=""><figcaption></figcaption></figure>
3. Select Notion.\
   ​

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1238515506/61d7f06c081770937cf6a8d75399/Open+the+extension.png?expires=1753411500&#x26;signature=d7ae2dc9d350d6cfc62ae84cc0ed89e2ce95f6a58797d8b61b28ac23bfaece9b&#x26;req=dSIkHsx%2FmIRfX%2FMW1HO4zX6iEMHdeEHcTkNR1HvyVbN3gbnA6j8S4u%2B1nuXy%0A2cDX%0A" alt=""><figcaption></figcaption></figure>
4. Follow the instructions to install the [Chrome browser extension](https://chromewebstore.google.com/detail/eesel-ai/ejhkkbilnpifailgngpkgmiofhioacjd).

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1238516834/b57f2c5a3afa2fb8565ae2365db7/Follow+the+instructions.png?expires=1753411500&#x26;signature=cdeca1b5f125715e0a0404cf3b5e0ead11d5dbec003583d09791a317376a95e9&#x26;req=dSIkHsx%2Fm4lcXfMW1HO4zR9mspq%2FfflMrDLO2jBg5uyFkWMxeF3UwWorU6Ty%0A7bog%0A" alt=""><figcaption></figcaption></figure>
5. Go to your Notion page and open the extension.

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1238525168/437e619286d62dcd094ff6a2b941/Open+the+extension.png?expires=1753411500&#x26;signature=f35fa5823bdc944cb8e7399c56453fe1e3c8cc0f8c2ac830c0e68844769f6646&#x26;req=dSIkHsx8mIBZUfMW1HO4zXTeoAn3L%2FOL%2FzUTyAx%2FFwVzC9lFAmrAR9Yy4NJA%0AWeuh%0A" alt=""><figcaption></figcaption></figure>
6. Choose your bot.

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1238525353/508df067c39fe4ad53ae3c2b15e6/Choose+your+bot.png?expires=1753411500&#x26;signature=98a68391d4ffb87bda50af5a0e08eb25cf597ccfe2b759df7af531cd9cfbb51d&#x26;req=dSIkHsx8mIJaWvMW1HO4zel2ETzJZZp312Rxx%2BlLkGUB9kBEsZX0JglglMkv%0ASThB%0A" alt=""><figcaption></figcaption></figure>
7. Select ’Add sources’, then either ’Add current tab’, or ’Add all tabs in window.’

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1238525726/615b44b0e766a7852400cc50b8d4/Add+your+tab.png?expires=1753411500&#x26;signature=4fec66625da35c93e04b530d5bb74253423aba7a20e7fa060122f1b7ae4f3f6e&#x26;req=dSIkHsx8mIZdX%2FMW1HO4zW0JOnQHV6FCy%2B7c7C%2B%2FW64laP%2F%2BvVAw2pIvosVt%0AS3sj%0A" alt=""><figcaption></figcaption></figure>
8. Chat with your bot and check it out!

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1238526899/d5591e99e73393c7d79f550334b0/Test.png?expires=1753411500&#x26;signature=a5a92a6f73cd68315cac0b6045fcd5b104a998548515421949be22a641fa5615&#x26;req=dSIkHsx8m4lWUPMW1HO4zWl632VdOPGoeZsp%2FZWFKsvbp2w%2BldHd4QPOm8k%2B%0AYL5u%0A" alt=""><figcaption></figcaption></figure>

For tables, we suggest exporting them as a CSV and uploading that directly. It’ll work best in that format.


# Google Drive

Instant AI answers based on your Docs, Sheets, and Slides

Google Drive can be integrated to quickly upload documents to your AI bot, and use them to help generate responses. Train your bots on your Google Docs, Google Slides, PDFs and more\
You can control exactly which pages the bot has access to and modify this at any time.

There are two ways to integrate Google Drive:

* [Using our browser extension](#adding-google-drive-files-with-the-browser-extension)
* [Using our direct integration](#adding-google-drive-files-with-the-integration)

## Adding Google Drive files with the browser extension

1. Navigate to your dashboard for the bot you'd like to train.
2. Click Integrations (+) and search for Google Drive.
3. Click setup integration.
4. Click "Install browser extension" and add it to your Chrome.
5. Open the browser extension and open your Google Drive files.
6. Click "Add sources" in the extension, and add tab or add all tabs.

**Note**: It reads text, not images, so image files or other file types won't be usable by the bot by default.

## Adding Google Drive files with the integration

1. Navigate to your dashboard for the bot you'd like to train.
2. Click integrations and search for Google Drive.
3. Click setup integration > connect Google Drive tab.
4. Click Connect Google Drive and sign in to your Google account, and allow access.
5. Google Drive will be added to your integration tab
6. Click on the integration tab, then click "Add files"
7. You can then either select specific files to add, *OR* you can select folder to add.
   1. Specific files will be uploaded directly.
   2. If you want to add folders, then you must follow the instructions to share the folder with eesel
      1. Grant your eesel bot read access to the folder by sharing it with:\\

         ```
         eesel-ai@eesel-ai.iam.gserviceaccount.com
         ```
      2. Click the button to select the folder and start syncing its contents.

\
\\


# PDFs

Upload a PDF to train the bot

Training on PDFs is very simple. You can transform other document types, like Word files etc, to PDFs and then add them to your bot. You can upload them directly to eesel AI

1. Go to the eesel dashboard, navigate to the "**Integrations**" section.
2. Click **PDF**
3. Click **upload files**, select and upload your PDFs. It will be supported up to 25 MB

The bot won’t read images by default, so make sure the content is in text format

Your files will help the bot get smarter and more helpful. You’re one step closer to smoother support.


# YouTube

How to use YouTube videos as a source of knowledge

To add YouTube videos as a source of knowledge for the bot, you must be on a paid Business Plan (unavailable in the trial).

The process of adding YouTube videos as knowledge enables the bot to create transcripts of the videos, and these transcripts are what the bot uses to help answer questions.

You can also give the bot knowledge of YouTube video URLs to be use in its responses. For example, add an [article](/legacy/getting-started/faq#what-are-articles-how-do-i-use-them) that contains the name/description of the video, and the URL. Then, add to the [prompt](/legacy/getting-started/prompt-and-actions) that the AI should always link the relevant YouTube video URL in its responses.


# Sharepoint

Information about our Sharepoint integration

At the moment, our Sharepoint integration is not available as a default integration.

We can set up an integration on a Custom Plan upon request, depending on the way your Sharepoint is structured.

However, you *can* [upload individual PDFs](/legacy/integrations/pdfs) to eesel AI if that's what your Sharepoint contains.

If you want to discuss a Sharepoint integration, please note it will not be available to trial and will require a Custom Plan. When reaching out to discuss, please make sure you include information about your Sharepoint stucture/files in order to help us confirm what we can support.

Thanks!


# New or custom integration

While we have lots of integrations and actions available by default - there's always more!

We can offer some custom integrations and custom actions upon request, please reach out with specific detail and context about what you're looking for and we will let you know if it's possible and provide a quote.

Below are a few popular requests that you might be interested in:

<details>

<summary>Do you integrate with WhatsApp?</summary>

If your WhatsApp is connected to your helpdesk, we can likely integrate with it via the helpdesk. To confirm, please let us know whether you have connected WhatsApp to a helpdesk and what that platform is.

</details>

<details>

<summary>Do you integrate with N8N?</summary>

At the moment, we do not have a default integration with n8n. However, it’s possible you could use our custom API add-on to enable this integration (see our [Custom Actions/APIs](/legacy/integrations/new-or-custom-integration/custom-actions-apis) page for more details), or we could build a custom integration for you. For more details, please send through a description of what kind of integration you’re looking for and the use cases.

</details>

<details>

<summary>Do you integrate with social channels like Facebook, Instagram, Meta messenger and other social messaging or commenting platforms?</summary>

At the moment, we do not have a default AI Agent integration with social channels. However, it’s possible that if your social messages are coming through to a helpdesk platform you can use our helpdesk integration to reply automatically and handle them there. Please let us know if you want to handle your social messages or comments via a helpdesk, and we can discuss your options.

You can use our [Copilot](/legacy/products/ai-copilot) tools to help handle social channel conversations.

</details>


# Custom Actions/APIs

Custom web requests for your bot to use.

{% hint style="warning" %}
Only available on **custom plan**. Please contact support to enable this.
{% endhint %}

## What is Custom Action?

The Custom Action tool allows you to define custom web requests for the bot to use.

<figure><img src="/files/WkS2H4LxOdM3qFd18klI" alt="custom action tool" width="563"><figcaption><p>Preview of custom action tool (subject to change)</p></figcaption></figure>

<table><thead><tr><th width="277.11328125">Fields</th><th>Description</th></tr></thead><tbody><tr><td>Name</td><td>Name of your custom action. This will determine how the action can be called inside of your custom prompt. The name will be automatically converted to <code>custom_api_&#x3C;name></code>.</td></tr><tr><td>URL</td><td><p>Endpoint you want to make a request to. Query parameters are supported.<br><br>Example:</p><pre class="language-url"><code class="lang-url">https://your-domain.com/path?q={{param}}
</code></pre></td></tr><tr><td>Payload Template <em>(Optional)</em></td><td><p>Request body to be sent to the endpoint. Can be empty.<br><br>Example:</p><pre class="language-json"><code class="lang-json">{
  "fieldName": "value",
  "anotherField": "{{param2}}" // this can be passed in by the AI by configuring the prompt
}
</code></pre></td></tr><tr><td>Headers <em>(Optional)</em></td><td>Request headers to be sent to the endpoint. Can be empty.</td></tr></tbody></table>

***

## How to use?

You can use the tool just like any other existing tools. Refer to the following guide for more information.

{% tabs %}
{% tab title="Where to Enable" %}
{% hint style="info" %}
You can have multiple instances of custom action.
{% endhint %}

In the sidebar, click on **Customize** to open up the customize fly-out.

<figure><img src="/files/y605biVcy3hLzPqcRzya" alt="" width="366"><figcaption></figcaption></figure>

In the fly-out, click on **Create new action**.

<figure><img src="/files/rHE8m6abaa2ABcL9rIVi" alt="" width="375"><figcaption></figcaption></figure>

Then look for **Custom Action**.

<figure><img src="/files/RbDacy2z8myMzlQDboI4" alt="" width="563"><figcaption></figcaption></figure>

Finally, define your custom web request and hit **Create Custom Web Request**. Once created, custom action will appear under **Actions**.

<figure><img src="/files/Kf7BvAWlTI4UalNGdyCu" alt="" width="563"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Prompt Usage (Example)" %}
In order to use the tool, you can invoke it just like how you would with any of the other existing tools.

For example, to retrieve the last n results from an endpoint, we can add the following prompt.

```
Invoke `custom_api_get_posts` to get the last 5 posts' <titles> and <ids>.
```

Afterwards, we can tell the bot to respond with the retrieved values.

```
Reply with the following in markdown:
  <a bulleted list of <ids> and <titles>>
```

{% endtab %}
{% endtabs %}


# Pricing

## Plans

Please see our [pricing page](https://www.eesel.ai/pricing) for more details. We have three plans to choose from:

<h3 align="center">Team Plan - $299/mo</h3>

The Team plan is ideal for small teams who are looking for a Copilot solution trained on their website or wiki Docs. You can plug eesel into your Slack, create up to 3 bots, and have 1,000 interactions per month.

This plan does not include automatic replies to tickets or triaging actions.

<h3 align="center">Business Plan - $799/mo</h3>

The Business Plan is our most popular plan and contains everything from the Team plan but also automatic replies, internal notes, and triaging inside helpdesks. It also includes unlimited bots, and greater integration and training options. You're also provided up to 3,000 interactions per month.

This plan is best for teams who want an AI Agent in their helpdesk, or deeper integrations across multiple platforms like Shopify actions.

<h3 align="center">Custom Plan</h3>

A Custom Plan is priced around what *you* need. For example, if you need more interactions, or want to set up an integration with a custom platform or one that's not available by default.

Custom Plan quotes are prepared based on what you're looking for. For a Custom Plan quote, please prepare a detailed description about what actions, integrations, and usage you're looking for and let the team know at <hi@eesel.app>.

(Note: if you are on a Custom Plan, you will not automatically get access to all custom features or be charged for all custom features. It is entirely bespoke for your setup.)

### Discounts

We're happy to offer a 20% discount for all annual plans. You can subscribe at any time to our monthly plan, unsubscribe at any time, or move over to our annual plan at any time.

### How to subscribe to a plan

1. Head to your eesel AI dashboard
2. Go to Settings > Plans
3. Select the plan upgrade you'd like to subscribe to
4. Follow the Stripe prompts to setup your payment

You can find invoices, change billing details etc. via Stripe. If you run into any issues please reach out to support.

## Engineering Consultation Add-On - $999/8 hours

For customers who have a more complex prompt and actions setup who are looking for deeper assistance, we can offer an add-on for our engineers to dedicate their time to ensuring your setup is perfect.

This is best for teams who want a quick start with more complex setups and dedicated time from our engineers for prompt and actions assistance.

## Custom API Add-on - $200/mo

For customers who want to create custom API calls to any platform. This add-on is designed to allow you to build your own APIs (as many as you would like) once this is enabled. It acts similarly to our other actions.

Great for those looking to connect to in-house platforms, custom databases, or for new actions to existing platform integrations specific to your company.

[See more here.](/legacy/integrations/new-or-custom-integration/custom-actions-apis)

Please reach out to us if you'd like to enable this add-on for your team and we can update your subscription and enable it for your account.

(Note: requires a paid Business Plan subscription - not available on a trial.)

## Interactions

Interactions are defined as each AI response from the bot. Actions are defined in the Customize tab.

For example, if a conversation has multiple messages back and forth between the customer and the bot, each **reply from the bot** is considered an interaction. If during the conversation the bot needs to take actions like looking up order information on Shopify (actions as defined in the Customize tab), those actions are performed as part of the AI response and do not count as additional interactions.

There are a set amount of interactions available by default on each plan. We know it can be hard to judge whether you may be under or over the default available interactions, so we offer a grace period for the first month of your plan to determine what your usage looks like moving forward.

If you go over your usage, you will receive a notification to contact support. There, we will assess your usage and price your plan based on that. Generally, we price based on 15c per interaction, with options for discounts in bulk interaction purchases.

**Seasonal usage spike** can also be a common occurrence, so we can adjust and charge based on what you expect. We're also looking into PAYG pricing, but at this time have not released this option yet. If you're interested in PAYG pricing, feel free to let us know so we can determine the best way to provide pricing options for our customers.


# Reporting and Analytics

## Reporting tab

Reporting is an essential aspect to iterating and improving upon your AI and your support. eesel is able to provide a range of reports to help you evaluate your AIs performance.

This includes:

1. Past replies: review and export past replies from inside your dashboard for each bot.
2. Gaps in training: identify the percentage of replies where the AI did not have all the necessary information.
3. Deflection rate: observe the percentage of replies that did not need any human escalation.
4. Amount saved: calculate how much money and time has been saved through the use of eesel AI. (Use the three dots in the corner to adjust the calculations).

## Reviewing sources used

To view the sources that your AI is viewing for each individual reply, follow these steps:

1. Login to your account and navigate to the dashboard for the bot you’d like to review.
2. Select the ‘History’ button on the sidebar.
3. Navigate to the message and reply that you’d like to review.
4. In the message column, hover over the icons on the right-hand side and select the ‘View Sources’ button.

## Exporting replies for deeper analysis

By default, you're able to export 7 days of chat history from your bots. To do so:

1. Head to the bot you'd like to export reply history from\
   ​

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1546159731/25d32011775a4c47748b5a8c4f8a/image.png?expires=1753336800&#x26;signature=be1ab14f155cc632473cf95dacd11a9763c5b60ed2c409ca99398f09e09eb1f2&#x26;req=dSUjEMh7lIZcWPMW1HO4zUpniOWaci8aSD9nWIVSxbI0Dc9PDBD6WczWJ8fR%0Aj64I%0A" alt="" width="563"><figcaption></figcaption></figure>
2. Click History in the left sidebar

   <figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1546160196/4b76bfa770fa646a4dbefba55a07/image.png?expires=1753336800&#x26;signature=b50321b7421f40ad7843bba09ab01654666cb2c6ab983ce6ce6f9b3f36e0b414&#x26;req=dSUjEMh4nYBWX%2FMW1HO4zVFzxd6OxTJB%2BGM%2BdHIQzFz18%2BVaPdfPEPcZ2ujJ%0AF6IZ%0A" alt="" width="563"><figcaption></figcaption></figure>

3\. Click "Export chats" in the top right. It will automatically download a spreadsheet with your chat data from the past 7 days.

### Exporting chat replies greater than 7 days <a href="#h_ed2cf84103" id="h_ed2cf84103"></a>

To export more than 7 days worth of chat history, use the following URL:

`https://dashboard.eesel.ai/api/proxy/namespaces/<namespace-id>/inbox/sessions/export?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD`\
​\
Simply replace the namespace ID with the ID of the bot you're exporting from, and the dates of the time range you're looking to export. (**Note:** Remove the < and > from the URL once you've added in the namespace ID).

To find the namespace ID of a bot, go to your dashboard for that bot and grab the number and letter sequence that appears after the /v2/ part of the URL:

<figure><img src="https://downloads.intercomcdn.com/i/o/lnz0cfjq/1546164048/3f96ba60fe6c8ff05bd609cb1980/image.png?expires=1753336800&#x26;signature=45034ef587c176c708d59f59cfecaa402257480a4cdfd80e3c92817fdaae173e&#x26;req=dSUjEMh4mYFbUfMW1HO4zSIWB9HRqC6ffDInIiEe6UJgOUp0cn0zZiG30kf7%0AflHx7ZYf0mcAreHoYEQ%3D%0A" alt="" width="563"><figcaption></figcaption></figure>

There's a max date range of 30 days.

### Analysing and filtering past replies

The exported replies will contain many pieces of data that you can filter for in order to learn more about your AI's performance.

Each reply will be an individual entry but you can filter for things like:

* Unique session IDs
* Location of the chat (session type)
* Feedback given in the dashboard
* Contents of the ticket (like topics, keywords etc.)

We generally recommend separate bots for things like a chat bubble vs an AI agent in your helpdesk in order to make it easier to filter your responses.

You can also use the native reporting analytics on your helpdesk to help find out more about your AI's actions and performance. For example, adding a specific tag to each ticket that gets escalated, or for particular topics.

## FAQ

<details>

<summary>The export button isn't working properly.</summary>

Please use Chrome to export your replies. if this doesn't fix the issue, the please let us know what issue you are experiencing.

</details>

<details>

<summary>How to use the ‘add column’ feature in the History tab? What is it for?</summary>

The add column feature allows you to create a data column for each reply thread. You can describe to the AI what information it should extract from the conversation in order to populate that column. With this information, you can export your replies and filter/transform the data for specific insights or information.

For example, create an "email" column, and ensure that your prompt tells the bot to collect the user's email at the start of the conversation. This way, you will have a list of leads or email addresses from each conversation.

Or, you can create a column that is for what the 'topic' is about. You can either ask the AI to generate its own topics by selecting a 'Text' field, or give it topics to choose from.

</details>


# Security and privacy

Common questions and resources for security and privacy

Please review the following resources before reaching out about security questions. If your questions are unanswered below, please feel free to contact support for more info!

<table data-view="cards" data-full-width="false"><thead><tr><th align="center"></th><th data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center">Privacy Policy and Terms</td><td></td><td><a href="https://www.eesel.ai/privacy">https://www.eesel.ai/privacy</a></td></tr><tr><td align="center">Trust Center</td><td></td><td><a href="https://app.aus.vanta.com/eesel.ai/trust/5ncypy4hkv10s9yf7il8sp">https://app.aus.vanta.com/eesel.ai/trust/5ncypy4hkv10s9yf7il8sp</a></td></tr><tr><td align="center">Cloud Service Agreement</td><td><a href="/files/BauWkLacoPdKuBDCxPRp">/files/BauWkLacoPdKuBDCxPRp</a></td><td></td></tr></tbody></table>

## EU Data Residency

We’ve updated our policy to host data exclusively on EU servers upon request and our subprocessors, OpenAI and Pinecone, are SOC2 Type II certified for robust data security.

Please let us know if you want to be hosted on EU servers.

## Storing and processing data

The data you provide access to is securely stored in a SOC2 Type II certified vector database in the form of embeddings (mathematical representations). These embeddings are crucial for the app to answer questions.

When a request is made, the app uses the embeddings to find related pages and conversations, and shares only specific relevant snippets with OpenAI to generate the response.

## FAQ

<details>

<summary>Can I enable MFA?</summary>

Yes, this is a custom item that we can arrange for you. Please contact our in-app support once on a paid plan.

</details>

<details>

<summary>How does eesel handle prompt injection attacks in Confluence?</summary>

The LLM is never given a token or API access to look at the confluence info via tools or any means so prompt injection is not possible. Each bot has a separate copy of the data and it can access nothing else, and this copy is maintained programmatically.

</details>

<details>

<summary>How do we ensure only certain Confluence spaces are shared with the bot?</summary>

The LLM is never given a token or API access to your Confluence environment. It only works with a copy of the data you explicitly share with the bot, and that copy is maintained programmatically

</details>

<details>

<summary>Is eesel AI HIPPA compliant?</summary>

No, eesel is not HIPPA compliant. However, we work with several healthcare companies. We recommend exploring custom data retention options with us - please reach out with your specific data retention requirements for us to discuss further.

</details>

<details>

<summary>Does eesel have indemnity insurance?</summary>

Yes! Please reach out for more details.

</details>


# Billing

Update your payment information or switch plans according to your needs

### How to subscribe to a plan

To subscribe to a plan, check out our [pricing break down here](/legacy/pricing-admin-and-more/pricing). Once you select the right plan for your needs, you can follow those instructions to subscribe.

### How to update your billing details

You can update your billing details through the Stripe dashboard link via Settings > Billing.

### How to Unsubscribe / Cancel plan

1. Heading to your dashboard
2. Click Settings (you can find it in a drop-down in the top left corner)
3. Choose the billing menu
4. Choose "View Stripe Dashboard"
5. It will bring you to the Stripe dashboard to cancel your subscription

**Notes :**\
If you're on a trial account, we won’t ask for any payment details during that time. You’ll only be charged if you decide to upgrade to a paid plan later on

You can contact support if you need any help regarding the cancellation, request changes for admin billing, request invoices using company details, and much more! We will be happy to assist you.

### How to request invoices or change the invoicing email

Stripe should automatically send invoices to the chosen billing address you provided. Please reach out to support if you have issues changing the address or are not receiving your invoices.

## FAQs

<details>

<summary>I don’t want to go over my interaction limit. Is it possible to put a hard limit/stop the bots from operation once they hit the interaction limit?</summary>

Yes, this is possible. Please let us know if you want us to set that up for you.

</details>

<details>

<summary>I hit the interaction limit. Will my service be disrupted?</summary>

If you are on a trial account, your bots will stop functioning after a brief grace period. There are no extensions for usage limits for trial accounts. You will need to subscribe to a paid plan in order to continue the functionality of your bots.

For paid users, it will not be immediately disrupted and you will be asked to contact support in order to update your plan to reflect the appropriate usage. For the first month of a paid plan, we don't charge overages unless in extenuating circumstances. We use this first month to help determine the best billing path forward.

Please reach out to support as soon as possible if you're on a paid plan and hit your limit, in order to continue your service.

</details>

<details>

<summary>How much do additional interactions cost?</summary>

Generally, interactions are priced at $0.15 per interaction past the default amount provided by the plan. For cost effectiveness, we do recommend upgrading to the Business Plan if you're on a Team Plan to make the most of both the extra interactions and features.

For bulk interaction amounts, we can provide discounts or feature bundles but this is case-by-case. Please reach out to the team via the in-app messaging system or at <hi@eesel.app> to discuss this further, with an idea of how many interactions you may need.

</details>

<details>

<summary>I hit my interaction usage limit. What do I do?</summary>

If you've hit your interaction usage limit, please review your average usage for the month across all of your bots and reach out to support to let them know what kind of usage you will need moving forward.

We'll be able to provide you with a quote and apply the usage changes to your account from there.

If you've hit your interaction usage limit on a trial account, there is no way to extend this usage limit. You should still have some leeway to continue interacting with the bot for a short period of time until it is hard limited. You'll need to subscribe to one of our paid plans to continue using the bots after this hard limit is reached.

</details>

<details>

<summary>What exactly counts as an interaction?</summary>

Interactions are AI responses from the bot/each time the bot processes a query. Each time the AI responds to a user query, it counts as one interaction, regardless of how many actions (such as tagging a ticket, escalating, or routing) are performed within that response. One ticket can have multiple interactions if the AI responds multiple times. If the AI replies several times in one ticket, each reply is counted as one interaction.

</details>

<details>

<summary>How do I terminate my subscription via Atlassian?</summary>

1. Head to: \<subdomain>.atlassian.net/plugins/servlet/upm
2. Press "take me there" button
3. Find the eesel app you'd like to unsubscribe from
4. Click on the 3 dots near the app
5. Click "manage subscription"

</details>


# Technical FAQs

### Crawling and Indexing

<details>

<summary></summary>

</details>

### Bot responses

<details>

<summary>How quickly does the bot respond?</summary>

It depends on the platform. In the eesel dashboard chat, responses are typically faster than through platform integrations like Zendesk. Around 8–12 seconds is considered normal on integrated platforms, while 3–10 seconds is normal in the dashboard.

If you're experiencing issues with bot response time, please reach out and let us know what platform, which bot, and an example question.

</details>


# Account Admin FAQs

Uninstalling


# Welcome - Hire Your AI Teammate

eesel AI lets you hire AI teammates that join your existing apps and do real work. Each teammate has a specific role - answering support tickets, writing blog posts, generating KB articles - and works inside the tools you already use (Zendesk, Slack, email, your website).

eesel AI agents use integrations and Skills to learn, manage, and act, like a teammate would. You can get setup in 5 minutes or less.

## **What makes eesel different from other AI tools**

* **It's a teammate, not a tool.** You brief it, test it, correct it, and gradually let it work independently - the same way you'd onboard a new hire.
* **It works in your apps.** Your AI teammate shows up as a real agent in Zendesk, a real person in Slack, a real sender in email. Customers interact with it naturally.
* **It learns your business.** Connect your help center, past tickets, internal docs, and website. The agent reads everything and uses it to do the job.
* **Complete flexibility in training and testing**. Your eesel AI agents will learn as they go, or you can give them plain text instructions for exactly how they should behave, act, sound, and more. Roll out slowly with human in the loop, or set it live to your customers from day 1.

## **Current agent types**

| Agent Type               | What It Does                                                                                                                                           |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Helpdesk Agent           | Resolves support tickets, drafts replies, tags, escalates, writes internal notes                                                                       |
| Blog Writer Agent        | Writes blog posts in your brand voice with SEO awareness                                                                                               |
| Website Chat Agent       | Help your audience find the right info, answer questions, and escalate to your team.                                                                   |
| Internal Knowledge Agent | Fast, accurate answers inside your team chat apps - no more waiting for replies.                                                                       |
| E-commerce Agent         | Make recommendations, and product carousels to convert visitors to buyers. Customers self-serve order information, refunds, billing details, and more. |


# Key Concepts

## **What Is an Agent?**

An agent is an AI employee configured for a specific job. Every agent is built from the same three primitives:

1. **Instructions** — How the agent should behave. Tone, policies, escalation rules, tagging taxonomy. Written as a markdown document that's always in the agent's context. You shape instructions through chat or by editing them directly.
2. **Integrations** — What the agent can access and act on. Each integration provides:
   * **Sources** — what the agent can read (help center articles, past tickets, Notion pages)
   * **Triggers** — when the agent activates automatically (new ticket created, @mentioned, new message)
   * **Actions** — what the agent can do (draft reply, send reply, tag ticket, look up order)
3. **Skills** — Extra workflows the agent can run on top of its core job. Skills are distinct from the agent's day-to-day work — they have their own steps, logic, and output artifacts. Example: running a Simulation skill to test accuracy against old tickets.

Every agent also has an **Activity** feed showing all its output in one place.

**Instructions vs. Knowledge — they're different:**

* **Instructions** = always in context. Defines HOW the agent behaves.
* **Knowledge** = searched when relevant. Reference material from integrations and uploaded files.

***

## **What Are Integrations?**

Integrations connect your agent to external services. They provide three things:

| Component | What It Does                                    | Examples                                                          |
| --------- | ----------------------------------------------- | ----------------------------------------------------------------- |
| Sources   | Data the agent reads and learns from            | Help Center articles, past tickets, Notion pages, Google Docs     |
| Triggers  | Events that make the agent act automatically    | New ticket created, @eesel mentioned, ticket assigned to bot      |
| Actions   | Things the agent can do in the external service | Draft reply, send reply, tag ticket, update status, look up order |

**Key behaviors:**

* Connecting an integration does NOT automatically activate it. You must explicitly enable triggers for the agent to act autonomously.
* All integration types are available on all tiers. Tiers limit the number of integrations, not which ones.
* Changes are live — no Save button. Toggle a trigger on and it's active immediately.

***

## What are instructions?

Instructions are how you tell your agent what to do. Think of them as the onboarding document you'd give a new team member — they define your agent's personality, rules, and behavior.

Good instructions include:

* **Who the agent is** — "You are a friendly support agent for Acme Corp"
* **How to respond** — "Keep answers concise. Use bullet points for steps."
* **What to do in specific situations** — "If the customer asks about billing, check their order status first"
* **When to escalate** — "If you can't answer confidently, assign to the Support team"

<details>

<summary>Where to find instructions</summary>

Open your agent and click the **Instructions** tab in the main content area. Instructions are written in plain text (markdown supported).

</details>

<details>

<summary>What to include</summary>

Good instructions cover four areas:

#### 1. Identity and role

Tell the agent who it is and what it does.

**Good example:**

```
You are a customer support agent for Acme Corp. You help customers
with product questions, troubleshooting, and account issues.
```

**Bad example:**

```
You are an AI.
```

#### 2. Response style

Define how the agent should communicate.

**Good example:**

```
Response guidelines:
- Be friendly and professional
- Keep answers concise — aim for 2-3 short paragraphs
- Use bullet points for step-by-step instructions
- Always greet the customer by name if available
- End with "Is there anything else I can help with?"
```

**Bad example:**

```
Be nice.
```

#### 3. Handling specific situations

Give clear rules for common scenarios.

**Good example:**

```
Specific rules:
- For billing questions: Check the customer's account status first,
  then provide relevant information
- For bug reports: Ask for the browser/device, steps to reproduce,
  and any error messages. Then assign to the Engineering team
- For feature requests: Thank the customer, tag as "feature-request",
  and let them know the product team reviews all requests
- For cancellation requests: Empathize, ask for the reason, offer
  alternatives if appropriate, then assign to the Retention team
```

#### 4. Escalation rules

Define exactly when the agent should hand off to a human.

**Good example:**

```
Escalation rules:
- If you are not confident in your answer, assign to Support Tier 2
- If the customer asks to speak with a human, assign immediately
- If the customer mentions legal action, assign to the Legal team
- If the issue involves a security concern, assign to Security with
  a high-priority tag
- Never attempt to handle refunds over $100 — assign to a manager
```

**Bad example:**

```
Escalate if needed.
```

</details>

<details>

<summary>Template by use case</summary>

#### Support agent

```
You are a support agent for [Company Name]. You help customers with
questions about [Product].

Response style:
- Professional and friendly
- Concise answers (2-3 paragraphs max)
- Use bullet points for instructions
- Include relevant links when available

When answering:
1. Search your knowledge base for the answer
2. If found, provide a clear, helpful response
3. If not found, let the customer know and assign to a human agent

Escalation rules:
- Billing disputes → Billing Team
- Bug reports → Engineering
- Can't find an answer → Support Tier 2
- Customer requests a human → Assign immediately
```

#### Triage agent

```
You are a ticket triage agent for [Company Name]. Your job is to
categorize and route incoming tickets — you do NOT reply to customers.

For each ticket:
1. Read the content carefully
2. Tag with one category: billing, bug, how-to, feature-request, account
3. Route based on category:
   - billing → Billing Team
   - bug → Engineering
   - how-to → Support Tier 1
   - feature-request → Product
   - account → Support Tier 1
4. Set priority: urgent / high / normal
5. Leave an internal note explaining your categorization
```

#### Knowledge agent

```
You are an internal knowledge assistant for [Company Name]. Team
members ask you questions about company policies, processes, and
documentation.

Guidelines:
- Answer based only on the documentation you have access to
- If you don't have the answer, say so clearly
- Always link to the source document when possible
- Keep answers concise and actionable
- Use a casual, helpful tone (this is an internal team tool)
```

</details>

<details>

<summary>Tips for better instructions</summary>

**Be specific.** Vague instructions lead to inconsistent behavior. Instead of "be helpful," define exactly what helpful looks like.

**Include examples.** If you want responses formatted a certain way, show an example in the instructions.

**Iterate based on testing.** Test in the chat panel, see what the agent gets wrong, and refine instructions accordingly.

**Don't overload.** A focused set of clear rules works better than a long list of edge cases. Start simple and add rules as you discover gaps.

**Use the chat assistant.** The AI assistant in the right panel can help you write and refine instructions.

</details>

***

## **What Are Skills?**

Skills are distinct multi-step workflows an agent can run on top of its core job. A skill earns its existence when it has its own steps and output artifact — not just a single tool call.

**What's NOT a skill:** The agent's core behavior (drafting replies, tagging tickets, writing posts) emerges from integrations + instructions. That's the core job, not a skill.

**Running skills:**

* **On-demand:** Click Run or ask in chat ("Run simulation on 200 tickets from last 60 days")
* **Scheduled:** Set up via Settings > Schedules (Daily/Weekly/Monthly at a specific time)

***

## **Building Trust (Observe, Verify, Automate)**

eesel agents are designed for gradual trust building — you start fully supervised and expand autonomy over time.

**The progression:**

1. **Test in dashboard** — Chat with your agent, ask questions, verify answers. No customer impact.
2. **Draft mode (HITL)** — Agent processes real tickets but every reply requires your approval before sending. You see the draft, edit if needed, then approve or reject.
3. **Semi-autonomous** — After a track record ("You approved 94% without edits this week"), the agent suggests automating routine responses while still escalating edge cases.
4. **Fully autonomous** — Agent handles tickets end-to-end. You monitor via daily recaps, analytics, and exception alerts.

**Human-in-the-Loop (HITL) — how it works:**

1. Agent processes a ticket and reaches the "Send reply" action (configured as HITL).
2. Action pauses. Notification appears on your Home dashboard and optionally via email.
3. You open the ticket log, see the draft, and can edit the text.
4. Click **Approve** to send, or **Reject** to request a revision.
5. If rejected, the agent asks for feedback in Chat, regenerates, and you review again.


# Instructions, Triggers, and Actions

eesel agents first need to be **triggered >** then follow their **instructions** to reply and take **actions.**

Below we'll walk you through exactly how to select the right triggers and actions, and how best to prompt them in the instructions.

## Triggers

The first step for deploying your AI agent is to select your trigger. For helpdesks, this will be one of the following:

Triggers tell your agent when to activate. Without a trigger, your agent only works in the test chat - it won't respond to real tickets or messages on its own.

### How triggers work <a href="#how-triggers-work" id="how-triggers-work"></a>

```
 ┌──────────┐     ┌──────────┐     ┌──────────┐     ┌──────────┐
 │  Event    │────▶│  Trigger │────▶│  Agent   │────▶│  Action  │
 │  happens  │     │  fires   │     │  runs    │     │  taken   │
 └──────────┘     └──────────┘     └──────────┘     └──────────┘

 Example:
 Customer      "Any Customer    Agent reads     Replies to
 sends a  ───▶  Message"    ───▶ ticket and ───▶ customer
 ticket        trigger fires    finds answer
```

When an event matches your trigger condition, your agent activates, processes the input, and takes the configured actions.

### Setting up triggers

Triggers can be selected inside the specific integration you want eesel to be triggered within. For example:

{% stepper %}
{% step %}

#### Click your integration

On the left sidebar, once you've installed an integration, simply click the integration you want to setup a trigger for.

<figure><img src="/files/DwY1ftaMaQ77sup66mJb" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Select the triggers you want to enable

Once you click enable on the trigger, the bot will then be active live. We recommend starting with the @eesel trigger while you test, before moving to the more automated triggers.

<figure><img src="/files/hxyg9hroGeBmAVtNV4aM" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Ensure the right actions are enabled and prompted

When your eesel agent is triggered, it will be able to take the actions you enable. You should enable the draft reply action to start with, and add additional actions as you build your agent.

Use the [Instructions](#instructions) tab to explain how and when each action should occur.

<figure><img src="/files/mkyQ9Ii7FcE3ECHHhxhc" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

Some platforms have platform specific triggers, but the basic triggers are:

| Trigger                                                 | When to use                                                                                        |
| ------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| @eesel mention (in an internal note, or in Slack/Teams) | When you want eesel to be 'on demand', rather than automatic.                                      |
| Any customer message                                    | When you want to automate eesel activating for all incoming messages on new and existing tickets.  |
| First customer message                                  | When you just want eesel as the initial first response, but not to respond on subsequent responses |

Please see the specific [integration](/integrations/overview) to learn more about specific triggers.

You can add multiple triggers to the same agent. For example:

* **Any Customer Message** - Agent responds to all tickets
* **Agent Requests AI Help** - Team can also ask the agent for help directly

### Tips <a href="#tips" id="tips"></a>

**Start with "Agent Requests AI Help"** if you're nervous about automation. This lets your team control when the AI activates by @mentioning it.

**Use "First Customer Message" for triage.** It fires before any agent replies, making it ideal for categorization and routing.

**Disable triggers to pause.** You can disable a trigger without deleting it — useful for maintenance or testing. This will pause the agent from responding at all.

## Instructions

Instructions are how you tell your agent what to do. Think of them as the onboarding document you'd give a new team member - they define your agent's personality, rules, and behavior.

The eesel sidebar chat is your best friend when it comes to knowledge and instructions - you can chat with it to update its own instructions and knowledge.

<figure><img src="/files/Bu4bwxG90t5CXE7O4Cun" alt=""><figcaption></figcaption></figure>

Good instructions include:

* **Who the agent is** - "You are a friendly support agent for Acme Corp"
* **How to respond** - "Keep answers concise. Use bullet points for steps."
* **What to do in specific situations** - "If the customer asks about billing, check their order status first"
* **When to escalate** - "If you can't answer confidently, assign to the Support team"

They work in tandem with your triggers and actions. When you enable a trigger > your agent uses its instruction to > take actions that you've enabled.

Once you have enabled some actions, you should specify in the instructions *how and when* to take those actions.

For example, add the 'add tag' action. In your instructions, explain: "Every time a query comes through, apply one tag from the following options: Billing, Bugs, Setup, Troubleshooting.

## Actions

Actions are the things your agent can do - reply to customers, tag tickets, assign to team members, look up information, and more. You configure which actions are available, and your agent uses them when appropriate based on its [instructions.](#instructions)

<figure><img src="/files/9xk5pnzOgPTOIGj7jEUI" alt=""><figcaption></figcaption></figure>

### How actions work

Your agent doesn't blindly execute actions. It reads the incoming message, considers its instructions and knowledge, and decides which actions to take:

```
 ┌────────────┐     ┌──────────────────────────┐     ┌──────────────┐
 │ Incoming    │     │      Agent decides:       │     │   Results:   │
 │ ticket:     │────▶│                           │────▶│              │
 │ "Where's    │     │  1. Search order status   │     │  Reply sent  │
 │  my order?" │     │  2. Reply with tracking   │     │  to customer │
 │             │     │  3. Tag as "order-status"  │     │              │
 └────────────┘     └──────────────────────────┘     └──────────────┘
```

### Setting up actions

{% stepper %}
{% step %}

#### Click your integration

On the left sidebar, once you've installed an integration, simply click the integration you want to setup a trigger for.

<figure><img src="/files/DwY1ftaMaQ77sup66mJb" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Select the actions you want to enable

Once you click enable on the trigger, the bot will then be active live. We recommend starting with the @eesel trigger and selecting the draft reply action.

<figure><img src="/files/9xk5pnzOgPTOIGj7jEUI" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Update the instructions

Use the [Instructions](#instructions) tab on the left sidebar of the dash to explain how and when each action should occur. You can use the test chat on the right to ask the agent how best to implement its actions, and get it to update its instructions for you.

<figure><img src="/files/Bu4bwxG90t5CXE7O4Cun" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

### Available actions by integration

#### Helpdesk actions

These actions are available when you connect a helpdesk integration (Zendesk, Freshdesk, Intercom, Gorgias, Jira):

#### Responding to customers

| Action                  | Description                            | Available on                          |
| ----------------------- | -------------------------------------- | ------------------------------------- |
| **Leave Public Reply**  | Send a response the customer sees      | Zendesk, Freshdesk, Intercom, Gorgias |
| **Leave Draft Reply**   | Create a draft for your team to review | Zendesk, Freshdesk, Intercom, Gorgias |
| **Leave Internal Note** | Add a note only your team sees         | Zendesk, Freshdesk, Intercom, Gorgias |
| **Comment on Issue**    | Add a comment to a Jira issue          | Jira                                  |

#### Ticket management

| Action              | Description                               | Available on                                |
| ------------------- | ----------------------------------------- | ------------------------------------------- |
| **Tag Ticket**      | Add tags for categorization               | Zendesk, Freshdesk, Intercom, Gorgias       |
| **Assign Ticket**   | Route to a specific team member           | Zendesk, Freshdesk, Intercom, Gorgias, Jira |
| **Assign to Group** | Route to a team queue                     | Zendesk, Freshdesk                          |
| **Close Ticket**    | Mark as resolved                          | Zendesk, Freshdesk, Intercom, Gorgias       |
| **Create Ticket**   | Open a new ticket                         | Zendesk, Freshdesk, Gorgias                 |
| **Update Ticket**   | Change status, priority, or custom fields | Zendesk, Freshdesk, Intercom                |
| **Label Issue**     | Add labels to a Jira issue                | Jira                                        |

#### Information lookup

| Action                | Description                                | Available on                       |
| --------------------- | ------------------------------------------ | ---------------------------------- |
| **Read Ticket**       | Read full ticket with conversation history | Zendesk, Freshdesk, Intercom       |
| **Search Tickets**    | Search past tickets                        | Zendesk, Freshdesk, Intercom, Jira |
| **List Tickets**      | List tickets with filters                  | Zendesk, Freshdesk, Intercom       |
| **Get User by Email** | Look up user details                       | Zendesk, Intercom                  |
| **Get Organization**  | Retrieve organization info                 | Zendesk                            |
| **Get Ticket Fields** | Read custom field values                   | Zendesk, Intercom                  |

#### Shopify actions

| Action                        | Description                             |
| ----------------------------- | --------------------------------------- |
| **Get Order History**         | Look up a customer's orders by email    |
| **Get Order by ID**           | Get detailed order info                 |
| **Get Customer by Email**     | Look up customer profile                |
| **Search Products**           | Search the product catalog              |
| **Get Products**              | Retrieve product details                |
| **Get Product Variants**      | Get size, color, SKU, price, inventory  |
| **Get Order Fulfillment**     | Check shipping and tracking status      |
| **Create Return**             | Initiate a product return               |
| **Refund Order**              | Process a refund                        |
| **Cancel Order**              | Cancel an unfulfilled order             |
| **Generate Product Carousel** | Create a visual product display in chat |

#### Slack actions

| Action           | Description                       |
| ---------------- | --------------------------------- |
| **Send Message** | Send a message to a Slack channel |

#### Gmail actions

| Action                 | Description                              |
| ---------------------- | ---------------------------------------- |
| **Search Emails**      | Search emails using Gmail syntax         |
| **Read Email**         | Read a full email by ID                  |
| **Send Email**         | Send an email with optional CC/BCC       |
| **Get Email from URL** | Extract an email thread from a Gmail URL |

#### Zendesk Messenger actions

| Action                      | Description                                  |
| --------------------------- | -------------------------------------------- |
| **Send Messenger Reply**    | Reply in the Zendesk Messaging Widget        |
| **Transfer to Human Agent** | Hand off a Messenger conversation to a human |

### Tips for configuring actions

**Start with fewer actions.** Give your agent only the actions it needs. Too many options can lead to confusion.

**Match actions to instructions.** If you give your agent a "Close Ticket" action, make sure your instructions explain when to use it.

**Use draft replies first.** When starting out, use "Leave Draft Reply" instead of "Leave Public Reply" until you trust the agent's judgment.

**Enable HITL for sensitive actions.** Turn on human in the loop (settings button next to each action) for actions with significant impact (refunds, ticket closure, public replies).

**Describe actions in your instructions.** Explicitly tell your agent when to use each action. For example: "After resolving a simple how-to question, tag the ticket and close it."


# Helpdesk

Your Helpdesk Agent can act just like a human agent: drafting replies for review, triaging tickets, flagging and escalating important issues, and replying based on all their knowledge and training.

## Quick start

{% stepper %}
{% step %}

### Teach them about your company

Connect a knowledge source. Options include Zendesk, Freshdesk, Website URL, Google Drive, or upload a PDF/DOCX/TXT file. The step completes as soon as any single source is added.

Supported file types for upload: PDF, DOCX, DOC, TXT, MD, CSV, XLSX, XLS, HTML, RTF (max 50MB per file).
{% endstep %}

{% step %}

### Ask them a question

Test the agent in the Chat panel. Suggested questions appear (e.g., "How do I reset my password?", "What's your refund policy?"). This step completes when you have a chat interaction.
{% endstep %}

{% step %}

### Brief them on the job

Review and customize the Instructions page — tone, escalation rules, what to avoid, how to handle edge cases.

Select actions, like leaving draft replies or internal notes, or tagging tickets.
{% endstep %}

{% step %}

### Put them to work

Deploy the agent to a real channel. Select an trigger under the helpdesk integration menu in order for the agent to start working, depending on your preference.

* @eesel mention
* Every new ticket
* Every ticket update

Starting with @eesel is the best way to gradually evaluate and roll out eesel with your team. Any agent can @eesel on a ticket in an internal note in your helpdesk and have eesel draft replies or take actions based on how you've configured it. See Core Capabilities below for more deatils on actions.
{% endstep %}
{% endstepper %}

***

## **What It Can Do**

### **Core capabilities**

<table><thead><tr><th width="249">Capability</th><th width="494">What it does</th></tr></thead><tbody><tr><td>Draft and send ticket replies</td><td>Leave internal notes or comments with a drafted reply, or send direct responses to customers - all automatically or when you ask it to.</td></tr><tr><td>Tag and categorize tickets</td><td>Add tags based on sentiment and context, and update ticket fields automatically.</td></tr><tr><td>Update ticket status</td><td>Create new tickets, mark them as solved, close tickets, and more.</td></tr><tr><td>Escalate</td><td>Handover tickets or conversations to your team</td></tr><tr><td>Multilingual</td><td>80+ languages - no need to translate your help center</td></tr><tr><td>Confidence-based handling</td><td>Tell your agent what to do when it's not condient: high confidence → direct reply; low confidence → internal note for agent</td></tr><tr><td>Sentiment-based escalation</td><td>Take actions, respond differently, or escalate immediately based on sentiment</td></tr><tr><td>Loop prevention</td><td>Escalated after a certain number of interactions or attempts to help</td></tr><tr><td>Business hours awareness</td><td>Set business hours for certain behaviours</td></tr><tr><td>Tone and voice customization</td><td>Fully customizable tone and voice - all in plain text.</td></tr></tbody></table>

### **Draft reply vs. Send reply:**

* **Draft reply** — Agent creates a draft visible only internally. Safe starting point.
* **Send reply** — Agent sends a public reply to the customer directly.
* **Add internal note** — Agent leaves an internal comment on the ticket.

### **Ticket output tracking:**

| Property   | Values                                                                   |
| ---------- | ------------------------------------------------------------------------ |
| Topic      | User-defined (e.g., Billing, Refunds, Shipping)                          |
| Resolution | Awaiting Approval / In Progress / Resolved by Agent / Escalated to Human |
| Confidence | Low / Medium / High                                                      |
| CSAT       | 1–5                                                                      |
| URL        | Deep link to source ticket                                               |

### **Agent corrections and learning:**

* **Memory updates** - For specific exceptions. Agent auto-saves to an Agent Memory file. Example: "For damage claims under $50, don't ask for photo — just process refund."
* **Instructions updates** - For general rules. Agent proposes a diff to your Instructions. You accept or reject each change.

### **Default Skills**

**Simulation** Run your AI agent over past tickets, compare its responses to what your human team actually sent, and score accuracy. Produces a gap report with specific recommendations.

**Theme Analysis (Support Analytics)** Analyzes conversations across channels - recurring topics, volume trends, resolution rates. Outputs ranked themes with volume and trend data.


# Blog Writer

Your Blog Writer Agent is designed to create new blog content from keyword to polished post. SEO optimized titles, internal linking, and assets, all completed for you.

## Quick Start

{% stepper %}
{% step %}

### Teach them about your company

Enter your website URL. eesel crawls the site and learns your brand voice, tone, and content.
{% endstep %}

{% step %}

### Brief them on the job

Customize Instructions - tone, formatting rules, content priorities.
{% endstep %}

{% step %}

### Write your first blog together

Tell the agent what to write in Chat (e.g., "Write a blog about CI/CD best practices"). The agent:

1. Researches the topic (SERP analysis, competitor angles, keyword clusters)
2. Creates an outline (7-section structure)
3. Deep-researches source material
4. Writes the full draft
5. Reviews and finalizes

A progress checklist appears above the chat input showing each step's status. You can chat during generation ("make it more technical") and the agent adjusts in real time.
{% endstep %}

{% step %}

### Edit, export and upload

Make some edits either directly in the editor, or via the AI agent in the chat. Then, when you're happy with it, click the export button and download the markdown for the blog.

Your CMS will have an editor that will enable you to add markdown. This will then render in proper preview formatting on your live site. If you need assistance working with markdown, feel free to reach out to us via the in-app chat and we can help.

Coming soon: integrations and alternative export options for your blog writer agent.
{% endstep %}
{% endstepper %}

***

## **What It Can Do**

* Write full SEO-optimized blog posts in your brand voice
* Research topics with SERP analysis
* Generate with frontmatter (title, keywords, meta description)
* Bulk generation (up to 4 concurrent posts)
* Single topic or batch generation with AI-suggested topics
* Users can edit the output directly in the center panel

***

## **Agent knowledge**

Adding knowledge to your agent gives it more context to create tailored blogs for your brand. While not necessary for getting high quality ouputs, we recommend exploring the following.

### Company profile

Add in your company site, and the agent will crawl your pages to find out more about your brand, tone, and target audience. It will generate a profile for you, which you can then edit and add to.

Your company profile enables the agent to promote your brand and your products.

### Internal linking

Internal links are essential for good SEO on your site. We'll generate some automatically for you when you input your company site, and the agent will be able to embed these URLs in your generated blogs to ensure relevant products, pages, and other blogs are being linked.

***

## Outputs

The Blog Writer Agent will generate blogs for you and add them to the output section on the left sidebar. From there, you can:

* Edit inline to make changes
* Chat with the agent to vibe-edit your blog or generate images
* Export the blog as markdown or a file to be uploaded on your site.
  * More export options coming soon!

***

## **Default Skills**

| Skill        | What it does                                                                         |
| ------------ | ------------------------------------------------------------------------------------ |
| SEO Audit    | Evaluates posts for SEO quality, outputs per-post scores with specific fixes.        |
| Content Gaps | Analyzes what competitors rank for vs. what you've written, surfaces missing topics. |


# Website Chat

Your website chat agent can handle all website visitors and:

* Convert to paying customers
* Assist with troubleshooting or finding the right info
* Collect information for your team to help or use later for important queries
* Escalate to your helpdesk
* Connect with your ecommerce stores and products

## Quick Start

{% stepper %}
{% step %}

### Create your agent and teach it about your site

Sign in, and create a new agent in the top left dropdown. Add integrations like your site, help center, files, and more.
{% endstep %}

{% step %}

### Test and give it a voice

Test it in the sidebar chat to see how it answers queries. Then, add instructions (left sidebar) to update its voice, behaviours, and more.
{% endstep %}

{% step %}

### Select your channel

Go to Integrations > and choose either Chat Bubble (floating button in the corner of your site that opens a chat window), inline embedded, or public chat link. Click enable.

<figure><img src="/files/wLpeRmcQQlD9kFOOST7z" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Customize appearance

Update the appearance, like the colors, avatar, name, and m ore.
{% endstep %}

{% step %}

### Deploy

Copy the code snippet, or the URL, and add it to your site. If adding to your site, insert it before the \</body> tag on your website.
{% endstep %}
{% endstepper %}

## What it can do

### **Core capabilities**

<table><thead><tr><th width="249">Capability</th><th width="494">What it does</th></tr></thead><tbody><tr><td>Draft and send ticket replies</td><td>Leave internal notes or comments with a drafted reply, or send direct responses to customers - all automatically or when you ask it to.</td></tr><tr><td>Tag and categorize tickets</td><td>Add tags based on sentiment and context, and update ticket fields automatically.</td></tr><tr><td>Update ticket status</td><td>Create new tickets, mark them as solved, close tickets, and more.</td></tr><tr><td>Escalate</td><td>Handover tickets or conversations to your team</td></tr><tr><td>Multilingual</td><td>80+ languages - no need to translate your help center</td></tr><tr><td>Confidence-based handling</td><td>Tell your agent what to do when it's not condient: high confidence → direct reply; low confidence → internal note for agent</td></tr><tr><td>Sentiment-based escalation</td><td>Take actions, respond differently, or escalate immediately based on sentiment</td></tr><tr><td>Loop prevention</td><td>Escalated after a certain number of interactions or attempts to help</td></tr><tr><td>Business hours awareness</td><td>Set business hours for certain behaviours</td></tr><tr><td>Tone and voice customization</td><td>Fully customizable tone and voice - all in plain text.</td></tr></tbody></table>

## Default Skills

**Simulation** Run your AI agent over past tickets, compare its responses to what your docs say.

**Theme Analysis** Analyzes conversations across channels - recurring topics, volume trends, resolution rates. Outputs ranked themes with volume and trend data.


# Internal Knowledge

Give your team a knowledge agent that answers questions from your internal docs - directly in Slack. Instead of searching through Confluence, Notion, or Google Drive, team members @mention the agent and get sourced answers in-thread.

<div data-with-frame="true"><figure><img src="/files/cNd8YIdoTIdGKOxlqZP9" alt=""><figcaption></figcaption></figure></div>

**How it differs from Helpdesk:**

|             | Helpdesk Agent                          | Internal Knowledge Agent                                              |
| ----------- | --------------------------------------- | --------------------------------------------------------------------- |
| Audience    | External customers                      | Internal team members                                                 |
| Channel     | Zendesk, Freshdesk, email, website chat | Slack, Teams                                                          |
| Core action | Resolve support tickets                 | Answer questions from internal docs and sources, or public knowledge. |
| Trigger     | New ticket, @mention in helpdesk        | @eesel mention in Slack or Teams                                      |
| Output      | Ticket replies, tags, internal notes    | Sourced answers in Slack threads                                      |

**Ideal for teams with:**

* Large internal knowledge bases that are hard to navigate
* Frequent onboarding of new hires
* Support teams doing policy lookups
* Repetitive internal questions across departments (IT, HR, ops)

## **Quick Start**

{% stepper %}
{% step %}

### Create your agent and teach it your internal knowledge

We recommend having a separate agent that uses your internal knowledge. Click the top left agent dropdown to create a new agent. Add your internal wiki knowledge (like Confluence, Notion, Drive, or files) by clicking integrations and following the prompts.
{% endstep %}

{% step %}

### Connect to Slack

Connect your Slack workspace to your eesel agent's dashboard. Click integrations > Slack and follow the prompts. This will enable your team to @ mention eesel in Slack and the agent will respond in the thread. Add any specific channels you want to add the agent to.
{% endstep %}

{% step %}

### Brief them on the job, and test

Customize Instructions — tone, structure of responses, what sources to prioritise, what topics to cover, what to escalate, how to handle questions outside its knowledge. Test in the sidebar or in Slack directly.
{% endstep %}
{% endstepper %}

## **What It Can Do**

### **Core capabilities**

* Answer questions from connected knowledge sources
* Cite sources with links to original documents
* Respond in Slack threads (keeps channels clean)
* Send proactive messages to channels
* Multi-source search (pulls from Confluence + Notion + Google Drive in a single answer)

### **Example use cases**

* **New hire onboarding** — "What's our PTO policy?" / "How do I set up VPN?"
* **Cross-team knowledge sharing** — "What's the refund policy for orders under $50?"
* **Sales enablement** — "What integrations do we support?" / "Do we have a SOC 2 cert?"
* **IT support** — "How do I reset my email password?" / "What's the Zoom login?"

### **How answers work**

1. Team member @mentions the agent with a question
2. Agent searches all connected knowledge sources
3. Response appears in the Slack thread with source citations
4. If the agent can't find an answer, it says so (no hallucination)

### **Default Skills**

* **Theme Analysis -** Analyzes conversations across channels - recurring topics, volume trends, resolution rates. Outputs ranked themes with volume and trend data.
* **KB Auto-updater** - finds gaps in knowledge from conversation patterns


# E-commerce

Pair an eesel AI agent with your e-commerce platform to handle customer inquiries about orders, products, returns, and shipping — directly inside your helpdesk.

**Supported platform:** Shopify (see Integrations > Shopify for full setup and capabilities)

**How it differs from a standalone Helpdesk agent:**

|           | Helpdesk Agent (alone)                   | Helpdesk + E-commerce                                                  |
| --------- | ---------------------------------------- | ---------------------------------------------------------------------- |
| Knowledge | Help center articles, past tickets, docs | Same + live Shopify data (orders, products, customers)                 |
| Answers   | Policy-based ("Our refund policy is…")   | Action-based ("Your order #1042 shipped via FedEx, tracking: …")       |
| Actions   | Draft/send replies, tag, escalate        | Same + look up orders, search products, process refunds, cancel orders |
| Output    | Text replies                             | Text replies + visual product carousels in website chat                |

## Quick Start

{% stepper %}
{% step %}

### Connect your ecommerce store and helpdesk (optional)

Click integrations and search for your ecommerce platform to connect it. If you have a helpdesk, it's a great idea to connect that as well so you can escalate conversations straight to your team.

When connecting Shopify, you can use:

* **OAuth (recommended):** Install eesel AI from the Shopify App Store → Integrations > Shopify > Install Marketplace App → authorize.
* **API Token:** Integrations > Shopify > Credentials → enter your shop name (just the name, e.g. "my-store" — not the full URL) and Admin API access token → Connect.
  {% endstep %}

{% step %}

### Brief the agent on the job

Write out some workflows or instructions about how to handle different types of queries. Explain what kind of tone, response structure, or product types it should recommend. Give it discount codes to use and explain when it should use them.
{% endstep %}

{% step %}

### Test with a real question

Open the chat panel in the eesel dashboard and ask a question about an order, or ask it to recommend
{% endstep %}

{% step %}

### Deploy in your helpdesk, or as a chat bubble on your site

Click integration on the left sidebar > chat bubble > enable. Customize its appearance and add the code snippet within the \</body> tag of your site.

If you want the ecommerce agent in your helpdesk, connect your helpdesk in the integration menu and follow the helpdesk agent guide to set it up.
{% endstep %}
{% endstepper %}

***

## **What the agent can do**

* Look up orders, shipping status, and tracking info
* Search products and show variant details (size, color, SKU, pricing, stock)
* Display visual product carousels in website chat
* Process returns, refunds, and cancel unfulfilled orders
* Retrieve customer profiles by email

Some integrations, like our Shopify integration, have lots of actions available our of the box. Other integrations are not available to trial, but can be set up on a paid plan. Please speak to the team in-app to chat about what's available.

## **How it works in practice**

The Shopify integration is designed to work alongside a helpdesk integration (Zendesk, Gorgias, Freshdesk). When a customer asks about their order in a support ticket, the agent uses Shopify tools to look up the relevant data and respond with real-time information.

**Recommended setup:**

1. Connect your helpdesk (Zendesk, Gorgias, etc.)
2. Connect Shopify (OAuth or API token)
3. Enable Human-in-the-Loop for refunds/cancellations
4. Brief the agent on your return/refund policies in Instructions


# Overview

Integrations connect your agent to external services, giving it knowledge to read, triggers to listen for, and actions to perform.

**Three components of every integration:**

| Component | Description                                      |
| --------- | ------------------------------------------------ |
| Sources   | Data the agent reads and learns from             |
| Triggers  | Events that activate the agent automatically     |
| Actions   | Things the agent can do in the connected service |

**Key rules:**

* All integration types are available on a paid plan.
* Connecting an integration does NOT auto-activate triggers — you choose what the agent listens for
* All toggles are live — no Save button needed
* Multi-brand support: a single integration (e.g., Zendesk) can connect multiple brands/domains, each configured independently

**Integration page structure (per integration):** Each integration has a settings page with three sections: Sources, Triggers, and Actions. Each item has a toggle and optional configuration link.


# Zendesk

Connect Zendesk to train your agent on your help center, past tickets, and macros — then automate ticket responses, triage, and more.

**Connection modes:**

1. **Full connection (OAuth):** Enter Zendesk subdomain → authenticate via OAuth. Unlocks all sources, triggers, and actions.
2. **Help Center only (URL crawl):** Paste public Help Center URL. No account needed. Read-only access to public articles. No triggers or actions.

**Multibrand:** Fully supported. Each brand/domain appears as a subfolder. Each brand can have independent triggers, actions, and a different bot account per agent.

***

## What your agent can do

* Train your agent on your Zendesk Help Center articles, macros, and past tickets
* Automatically reply to customer tickets or draft responses for your team
* Tag, assign, close, and update tickets
* Look up customer and organization information
* Connect Zendesk Messenger for live chat

***

## Connecting Zendesk

You have two connection options:

### OAuth (recommended)

Connect your full Zendesk account for access to tickets, macros, and all actions.

1. Go to **Integrations > Zendesk**
2. Select **OAuth**
3. Click **Connect** and authorize eesel AI in your Zendesk account
4. Grant the requested permissions

### Quick Start

Enter your Zendesk Help Center URL and your agent starts learning from your published articles. No authentication needed — but you won't have access to tickets, macros, or actions.

1. Go to **Integrations > Zendesk**
2. Select **Quick Start**
3. Enter your help center URL (e.g., `https://yourcompany.zendesk.com/hc`)
4. Click **Connect**

### Connecting a specific brand

If your Zendesk account has multiple brands and you want eesel to scope to one brand, follow these steps in order:

1. **Sign in to Zendesk as an agent on your account subdomain first.** Open `https://<your-account-subdomain>.zendesk.com` (the subdomain you normally use to sign in as an agent) and complete the sign-in. This establishes an active agent session, which Zendesk requires before it will grant OAuth on any brand subdomain.
   * Confirm the page header reads **"Sign in to&#x20;*****(your brand name)*****"** so you know you are on the right brand.
   * Make sure you are on the **agent** sign-in form. If the page is showing the end-user sign-in, click **"Switch to agent sign-in"** before entering your credentials.
2. In a new tab, open eesel, select the agent you want to integrate with this specific brand, and go to **Integrations > Zendesk**.
3. Select **OAuth**.
4. When prompted for your subdomain, paste the **brand subdomain** you want to connect (for example `https://<your-account-subdomain>.zendesk.com`).
5. Click **Connect**, after you successfully connected, eesel detects the brand from the subdomain you entered and scopes ticket sync and help center to that brand.

> **Why the sign-in step matters.** Zendesk routes every agent sign-in to your account's default agent brand. If you start the OAuth flow on a brand subdomain without an active agent session, Zendesk sends you to the agent brand to sign in and the original authorization request is lost. Signing in first keeps your session valid so the brand subdomain OAuth completes cleanly.

***

## Training your agent

### Available knowledge sources

| Source          | Description                                                                                                               | Requires             |
| --------------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| **Help Center** | Your published support articles                                                                                           | Quick Start or OAuth |
| **Macros**      | Shared and personal macros — filter by group                                                                              | OAuth                |
| **Tickets**     | Past resolved tickets — filter by status and date, with optional [PII redaction](/security/pii-redaction) before indexing | OAuth                |

### Tips for training

* **Start with your Help Center** — it's the quickest win and covers most common questions
* **Add past tickets** to teach your agent your team's voice and handling style
* **Filter tickets by status** — focus on "Solved" and "Closed" tickets for the best training data
* **Import macros** if your team relies on canned responses for consistency
* **Turn on** [**PII redaction**](/security/pii-redaction) if your tickets may contain customer PII you don't want in the training corpus

***

## Triggers

| Trigger                             | Description                                             | Best for                  |
| ----------------------------------- | ------------------------------------------------------- | ------------------------- |
| **Any Customer Message**            | Fires on any new or updated ticket                      | Full AI Agent automation  |
| **First Customer Message**          | Fires only on the first message, before any agent reply | AI Triage                 |
| **Support Request Closed/Resolved** | Fires when a ticket is marked closed or resolved        | Post-resolution follow-up |
| **Agent Requests AI Help**          | Fires when @eesel is mentioned in an internal note      | On-demand AI Copilot      |

***

## Actions

### Responding to customers

| Action                  | Description                                                        |
| ----------------------- | ------------------------------------------------------------------ |
| **Leave Public Reply**  | Send a customer-visible reply. Supports Human in the Loop.         |
| **Leave Draft Reply**   | Create a draft for your team to review — never sends automatically |
| **Leave Internal Note** | Add a note only your team can see                                  |

### Ticket management

| Action              | Description                                  |
| ------------------- | -------------------------------------------- |
| **Tag Ticket**      | Add tags for categorization                  |
| **Create Ticket**   | Create a new ticket                          |
| **Assign Ticket**   | Assign to a specific agent                   |
| **Assign to Group** | Route to a team queue (e.g., "Billing Team") |
| **Close Ticket**    | Mark ticket as resolved                      |
| **Update Ticket**   | Change status, priority, or custom fields    |

### Information lookup

| Action                         | Description                                    |
| ------------------------------ | ---------------------------------------------- |
| **Read Ticket**                | Read the full ticket with conversation history |
| **Search Tickets**             | Search using Zendesk query syntax              |
| **List Tickets**               | List tickets with optional filters             |
| **Get User by Email**          | Look up a Zendesk user by their email          |
| **Get Organization for Email** | Retrieve organization context for a user       |
| **Get Ticket Fields**          | Read the values of ticket custom fields        |

## Zendesk Messenger

See our Zendesk Messneger integration guide for more details about setup and best practices here.

## Tips and best practices

**Start with draft replies.** Configure "Leave Draft Reply" as your first action. Review responses for a few days before switching to "Leave Public Reply."

**Use the triage trigger for routing.** Set up a separate triage agent using the "First Customer Message" trigger with Tag and Assign actions to organize your queue.

**Connect past tickets for better quality.** Agents trained on past tickets sound significantly more natural and consistent with your team's style.

**Set up escalation.** Configure "Assign Ticket" or "Assign to Group" actions and write clear escalation rules in your instructions.

## Troubleshooting

**Help Center not syncing?**

* Make sure your Help Center URL is correct and publicly accessible
* Check that articles are published, not drafts

**OAuth connection failing?**

* Ensure you have admin permissions in Zendesk
* Try disconnecting and reconnecting

**Agent not responding to tickets?**

* Verify the trigger is enabled in Settings > Triggers
* Check that the trigger type matches your use case

## FAQ

<details>

<summary>Can my agent reply and leave an internal note at the same time?</summary>

Yes. Configure both "Leave Public Reply" and "Leave Internal Note" as actions. In your instructions, tell the agent when to use each one. For example: "Always reply to the customer and leave an internal note summarizing the resolution."

</details>

<details>

<summary>Can I control which tickets the agent responds to?</summary>

Yes. You can configure trigger conditions to filter tickets, or use AI Triage to tag tickets first and have the agent only respond to specific tags.

</details>


# Zendesk Messenger

Automate live chat conversations through the Zendesk Messaging Widget — your agent responds to customers in real time.

## What you can do

* Automatically respond to customers in Zendesk Messaging conversations
* Hand off to a human agent when needed
* Customize the agent's name, avatar, and greeting
* Enable auto-translation for multilingual support

## How it's different from Zendesk tickets

The standard Zendesk integration handles email-based tickets. Zendesk Messenger handles **live chat conversations** through the Zendesk Messaging Widget embedded on your website or in your app.

|                    | Zendesk (tickets)               | Zendesk Messenger (live chat) |
| ------------------ | ------------------------------- | ----------------------------- |
| **Channel**        | Email tickets                   | Messaging widget              |
| **Response style** | Asynchronous                    | Real-time conversation        |
| **Actions**        | Reply, tag, assign, close, etc. | Reply, transfer to human      |
| **Best for**       | Email support automation        | Live chat automation          |

## Connecting Zendesk Messenger

### Prerequisites

* An active Zendesk integration on your eesel dashboard
* Zendesk Messaging enabled in your Zendesk account

### Setup

1. On the eesel dashboard, go to **Integrations > Zendesk** in the left sidebar and open your connected Zendesk instance.

<figure><img src="/files/bmbyg99iSlXmmRMCizaF" alt=""><figcaption></figcaption></figure>

2. In the **Triggers** section, find **Zendesk Messenger** listed as an available trigger. Click on **Connect**.

<figure><img src="/files/ecga306ldb8g4nfg5Ke0" alt=""><figcaption></figcaption></figure>

3. You will be redirected to authorize eesel AI for Zendesk Conversations.

<figure><img src="/files/5dheU9pnKHIsD9IB0gEB" alt=""><figcaption></figcaption></figure>

4. Once connected, you should see **Zendesk Messenger** as an enabled trigger. Click on the gear icon to configure the agent name, avatar, greeting message, and the Zendesk channels to respond to.

<figure><img src="/files/TxVdP2dEygn040tk6z5m" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/GDNV5iqeBtWzDJ1c1fOp" alt=""><figcaption></figcaption></figure>

### Installing eesel AI on Zendesk

1. On your Zendesk Admin Center, go to **AI > AI Agents**. Click on **Manage Marketplace Bots** at the bottom.

<figure><img src="/files/lS3AJ4TTLcdTrrwk6bpk" alt=""><figcaption></figcaption></figure>

2. Click on **eesel AI**.

<figure><img src="/files/3JifdLFejBLaNC5AtFcP" alt=""><figcaption></figcaption></figure>

3. Click on the checkbox for every channel you want the agent to respond to, then press **Save**. This will override any Responder that you have configured for those channels.

<figure><img src="/files/TUcf91YUsjwH5cHEerdU" alt=""><figcaption></figcaption></figure>

4. Your agent should now respond to customers!

## Actions

| Action                      | Description                                              |
| --------------------------- | -------------------------------------------------------- |
| **Send Messenger Reply**    | Reply to a customer in the Messaging Widget conversation |
| **Transfer to Human Agent** | Hand off the conversation to a human agent               |

## Customization

| Setting              | Description                                               |
| -------------------- | --------------------------------------------------------- |
| **Agent name**       | The name shown to customers in the chat                   |
| **Avatar**           | The image shown next to agent messages                    |
| **Greeting**         | The welcome message when a customer starts a conversation |
| **Channels**         | The Zendesk channels your agent should respond to         |
| **Auto-translation** | Automatically respond in the customer's language          |

## Tips

**Set a clear greeting.** Let customers know they're chatting with an AI assistant. Something like "Hi! I'm Acme's AI assistant. How can I help you today?"

**Configure transfer to human.** Always set up the Transfer to Human Agent action so customers can reach a person when needed. In your instructions, define when the agent should hand off.

**Test the full flow.** Test both the AI response and the human handoff to make sure the transition is smooth.

## Troubleshooting

**Can't configure your Zendesk channels?**

* Ensure that eesel AI is the default responder for the corresponding channels in your Zendesk account.
* One Zendesk subdomain can only support 3 eesel AI workspaces. If your Zendesk subdomain is connected to more than 3 workspaces, remove the Zendesk integration on those eesel AI workspaces.

**Messenger not responding?**

* Verify the Messenger connection is active in your Zendesk integration
* Check that eesel AI is the default responder for the corresponding channels in your Zendesk account.
* Check that you've toggled the corresponding channels on the configuration page inside the eesel dashboard, and that you've pressed "Activate" to save your changes.
* Ensure the Messaging Widget is deployed on your website

**Handoff not working?**

* Verify the Transfer to Human Agent action is configured
* Check that human agents are available in Zendesk to accept the conversation


# Freshdesk

## What you can do

* Train your agent on your Freshdesk Help Center, canned responses, and past tickets
* Automatically reply to tickets or draft responses for your team
* Tag, assign, close, and update tickets
* Search and read ticket history

## Connecting Freshdesk

### OAuth (recommended)

Connect your full Freshdesk account for tickets, canned responses, and all actions.

1. Go to **Integrations > Freshdesk**
2. Select **OAuth**
3. Click **Connect** and authorize eesel AI

### Quick Start

Enter your Freshdesk Help Center URL to start training immediately. No authentication needed — but you won't have access to tickets, canned responses, or actions.

1. Go to **Integrations > Freshdesk**
2. Select **Quick Start**
3. Enter your help center URL
4. Click **Connect**

## Training your agent

| Source               | Description                                | Requires             |
| -------------------- | ------------------------------------------ | -------------------- |
| **Help Center**      | Published support articles                 | Quick Start or OAuth |
| **Canned Responses** | Your team's pre-written response templates | OAuth                |
| **Tickets**          | Past resolved tickets                      | OAuth                |

## Triggers

{% hint style="warning" %}
**Freshdesk Sprout plan users:** Triggers are not supported on the Freshdesk Sprout (free) tier. Freshdesk Sprout does not support webhooks, which eesel AI requires to listen for ticket events. You'll need to upgrade to a paid Freshdesk plan (Blossom or above) to use triggers.
{% endhint %}

| Trigger                | Description                                      | Best for                  |
| ---------------------- | ------------------------------------------------ | ------------------------- |
| **@eesel Mentioned**   | Fires when @eesel is mentioned in internal notes | On-demand AI Copilot      |
| **New Ticket Created** | Fires when a new ticket comes in                 | Full automation or triage |
| **Ticket Updated**     | Fires when a ticket is updated                   | Follow-up handling        |

## Actions

### Responding

| Action                  | Description                                    |
| ----------------------- | ---------------------------------------------- |
| **Leave Public Reply**  | Send a customer-visible reply (HITL available) |
| **Leave Draft Reply**   | Create a draft for your team to review         |
| **Leave Internal Note** | Add a note only your team can see              |

### Ticket management

| Action              | Description                                     |
| ------------------- | ----------------------------------------------- |
| **Tag Ticket**      | Add tags for categorization                     |
| **Create Ticket**   | Create a new ticket                             |
| **Assign Ticket**   | Assign to a specific agent                      |
| **Assign to Group** | Route to a team queue                           |
| **Close Ticket**    | Mark as resolved                                |
| **Update Ticket**   | Change custom fields, priority, status, or tags |
| **Update Status**   | Change ticket status specifically               |

### Information lookup

| Action             | Description                                |
| ------------------ | ------------------------------------------ |
| **Read Ticket**    | Read full ticket with conversation history |
| **Search Tickets** | Search using Freshdesk query syntax        |
| **List Tickets**   | List tickets with filters                  |

## Tips and best practices

**Import canned responses.** If your team already has well-crafted canned responses, training your agent on them ensures consistent, approved messaging.

**Use "New Ticket Created" for triage.** This trigger fires before any agent interacts with the ticket — ideal for auto-categorization and routing.

**Filter past tickets by date.** When training on past tickets, focus on recent ones (last 6-12 months) for the most relevant training data.

## Troubleshooting

**OAuth connection failing?**

* Ensure you have admin permissions in Freshdesk
* Check that third-party app access is enabled in your Freshdesk settings

**Agent not responding to tickets?**

* Verify the trigger is enabled in Settings > Triggers
* Check that webhooks are configured correctly in Freshdesk


# Fresh Chat

Automate live chat conversations through Freshdesk's Fresh Chat widget — your agent responds to customers in real time.

Fresh Chat is a channel within the [Freshdesk](/integrations/freshdesk) integration — not a standalone integration. You must connect Freshdesk first before setting up Fresh Chat.

<div align="left"><figure><img src="/files/YeCbTVy1uXqOepnHkWtm" alt="" width="375"><figcaption></figcaption></figure></div>

## What you can do

* Automatically respond to customers in Fresh Chat live conversations
* Hand off to a human agent when the issue needs a personal touch
* Group conversations so follow-up messages from the same customer continue in one thread

## How it's different from Freshdesk tickets

The standard [Freshdesk](/integrations/freshdesk) integration handles email-based tickets. Fresh Chat handles **live chat conversations** through the Freshdesk chat widget embedded on your website.

|                    | Freshdesk (tickets)             | Fresh Chat (live chat)   |
| ------------------ | ------------------------------- | ------------------------ |
| **Channel**        | Email tickets                   | Chat widget              |
| **Response style** | Asynchronous                    | Real-time conversation   |
| **Actions**        | Reply, tag, assign, close, etc. | Reply, transfer to human |
| **Best for**       | Email support automation        | Live chat automation     |

## Connecting Fresh Chat

### Prerequisites

* An active [Freshdesk](/integrations/freshdesk) integration (OAuth) on your eesel dashboard
* Fresh Chat enabled in your Freshworks account

### Setup

1. On the eesel dashboard, go to your agent's **Integrations** section and click **Freshdesk**.

   <figure><img src="/files/4JV0bpN4u7gPsFyvXC8s" alt=""><figcaption></figcaption></figure>
2. Click on **Fresh Chat** under the Triggers section to open the setup form.

   <figure><img src="/files/AkRCXO0NQp37J5qgPHVi" alt=""><figcaption></figcaption></figure>
3. In your Freshworks admin panel, go to **Settings > API Settings > API Details for Chat** and copy the API key. Paste it into the **API Token** field.

   <figure><img src="/files/hqjAkJvEvC33t7NfUrE4" alt=""><figcaption></figcaption></figure>
4. Copy the webhook URL shown in the form. In your Freshchat admin, go to **Settings > Webhooks**, paste the URL, and save.

   <figure><img src="/files/tUR9EnFG8WNQ6Al7W4CY" alt=""><figcaption></figcaption></figure>
5. After saving the webhook in Freshchat, an **Authentication** section will appear with an RSA public key. Copy the full key (including the `-----BEGIN RSA PUBLIC KEY-----` and `-----END RSA PUBLIC KEY-----` lines) and paste it into the form.

   <figure><img src="/files/nEEAqunePcUHp7zuNAjZ" alt=""><figcaption></figcaption></figure>
6. Click **Connect Fresh Chat**. eesel AI will validate your API token and save the connection.

   <figure><img src="/files/Eaz4WbkOsSP6YplJWaDX" alt=""><figcaption></figcaption></figure>
7. Test the connection by opening the live chat preview in your Freshchat admin. Go to **Settings > Messenger > Web** and click **Preview** to start a test conversation with your agent.

   <figure><img src="/files/Lc45JFT9viZstAwu9R48" alt=""><figcaption></figcaption></figure>

## Actions

| Action                | Description                                                |
| --------------------- | ---------------------------------------------------------- |
| **Chat Reply**        | Send a reply to the customer in the live chat conversation |
| **Hand Off to Human** | Transfer the conversation to a human agent                 |

## Customizing the chat widget

Fresh Chat's widget appearance and behavior are configured in your **Freshchat admin panel**, not in eesel AI. To customize, go to **Settings > Web Widget > Appearance** in your Freshworks admin.

<figure><img src="/files/NLETWGFNDRlSlke9Qyqw" alt=""><figcaption></figcaption></figure>

## Tips

**Set clear expectations.** Update the widget's welcome message in Freshchat admin so customers know they're chatting with an AI assistant. Something like "Hi! I'm Acme's AI assistant. How can I help you today?"

**Configure handoff rules.** Always define when the agent should hand off to a human — for example, when the customer explicitly asks for a person, or when the issue requires account-level changes. Add this to your agent's instructions.

**Set up business hours.** Configure business hours in Freshchat admin so the widget only appears when your team (or AI agent) is available, or shows an offline message outside those hours.

**Test the full flow.** Test both the AI response and the human handoff in a real Fresh Chat conversation to make sure the transition is smooth.

## Troubleshooting

**Fresh Chat not appearing as a channel?**

* Ensure you have an active Freshdesk integration connected via OAuth
* The Fresh Chat channel only appears after the Freshdesk integration is connected

**Setup form showing again after connecting?**

* Both the API token and the webhook public key must be saved. If either is missing, the setup form will show again. Re-run the three-step setup.

**Agent not responding to chats?**

* Verify the Fresh Chat trigger is enabled on your agent
* Check that the webhook URL is correctly configured in your Freshchat admin panel
* Confirm the API token is valid — go to Freshworks admin > API Settings > API Details for Chat

**Handoff not working?**

* Ensure you have human agents available in your Freshchat account to accept conversations
* The agent routes the conversation to the assigned group, or the default group if none is set


# Intercom

## What you can do

* Train your agent on your Intercom Help Center and past conversations
* Automatically reply to customer messages or draft responses
* Assign, tag, close, and manage conversations
* Look up customer information and conversation history

## Connecting Intercom

### OAuth (recommended)

Connect your Intercom account for conversations, contacts, and all actions.

1. Go to **Integrations > Intercom**
2. Select **OAuth**
3. Click **Connect** and authorize eesel AI

### Quick Start

Enter your Intercom Help Center URL to start training immediately. No authentication needed — but you won't have access to conversations, contacts, or actions.

1. Go to **Integrations > Intercom**
2. Select **Quick Start**
3. Enter your help center URL
4. Click **Connect**

## Training your agent

| Source                 | Description                     | Requires             |
| ---------------------- | ------------------------------- | -------------------- |
| **Help Center**        | Published Intercom articles     | Quick Start or OAuth |
| **Past Conversations** | Resolved customer conversations | OAuth                |

## Triggers

| Trigger                    | Description                                      | Best for             |
| -------------------------- | ------------------------------------------------ | -------------------- |
| **Customer Sends Message** | Fires when a customer sends a message            | Full automation      |
| **@eesel Mentioned**       | Fires when @eesel is mentioned in internal notes | On-demand AI Copilot |

## Actions

### Responding

| Action                  | Description                                    |
| ----------------------- | ---------------------------------------------- |
| **Leave Public Reply**  | Send a customer-visible reply (HITL available) |
| **Leave Draft Reply**   | Create a draft for your team to review         |
| **Leave Internal Note** | Add a note only your team can see              |

### Conversation management

| Action                    | Description                                     |
| ------------------------- | ----------------------------------------------- |
| **Assign Conversation**   | Assign to a specific team member                |
| **Unassign Conversation** | Return to the unassigned queue                  |
| **Tag Conversation**      | Add tags for organization                       |
| **Close Conversation**    | Close a resolved conversation                   |
| **Update Conversation**   | Update read status, title, or custom attributes |

### Information lookup

| Action                      | Description                                 |
| --------------------------- | ------------------------------------------- |
| **Read Conversation**       | Read full conversation with message history |
| **Search Conversations**    | Search by content or state                  |
| **List Conversations**      | List with state/assignee filters            |
| **Get Conversation Fields** | Retrieve all custom attributes              |
| **Get Ticket Fields**       | Retrieve specific custom attributes         |
| **User Lookup**             | Look up a user by email                     |

## Tips and best practices

**Train on past conversations.** Intercom conversations are often more conversational than traditional tickets — training on them helps your agent match that tone.

**Use unassign for routing.** When your agent can't handle something, unassigning puts it back in the queue for a human to pick up.

**Leverage conversation fields.** If you use custom attributes in Intercom, the agent can read and update them for richer context.

## Troubleshooting

**Conversations not being picked up?**

* Verify the trigger is enabled
* Check that the Intercom webhook is correctly configured
* Ensure the conversation is from a customer (not an internal user)


# Gorgias

## What you can do

* Train your agent on your Gorgias Help Center, macros, and past tickets
* Automatically reply to customer tickets or draft responses
* Tag, assign, close, and create tickets
* Connect eesel with Gorgias Chat channels to automatically handle conversations

## Connecting Gorgias

### OAuth (recommended)

Connect your full Gorgias account for tickets, macros, and all actions.

1. Go to **Integrations > Gorgias**
2. Select **OAuth**
3. Click **Connect** and authorize eesel AI

### Quick Start

Enter your Gorgias Help Center URL to start training. No authentication needed — but you won't have access to tickets, macros, or actions.

1. Go to **Integrations > Gorgias**
2. Select **Quick Start**
3. Enter your help center URL
4. Click **Connect**

## Training your agent

| Source          | Description                          | Requires             |
| --------------- | ------------------------------------ | -------------------- |
| **Help Center** | Published support articles           | Quick Start or OAuth |
| **Macros**      | Your team's saved response templates | OAuth                |
| **Tickets**     | Past resolved tickets                | OAuth                |

## Triggers

| Trigger                    | Description                                      | Best for         |
| -------------------------- | ------------------------------------------------ | ---------------- |
| **Any Customer Message**   | Fires on any new or updated ticket               | Full automation  |
| **Agent Requests AI Help** | Fires when @eesel is mentioned in internal notes | On-demand assist |

## Actions

| Action                  | Description                                    |
| ----------------------- | ---------------------------------------------- |
| **Leave Public Reply**  | Send a customer-visible reply (HITL available) |
| **Leave Draft Reply**   | Create a draft for your team to review         |
| **Leave Internal Note** | Add a note only your team can see              |
| **Tag Ticket**          | Add tags for categorization                    |
| **Create Ticket**       | Create a new ticket                            |
| **Assign Ticket**       | Assign to a specific agent                     |
| **Close Ticket**        | Mark as resolved                               |

## Tips and best practices

**Pair with Shopify.** Connect your Shopify integration alongside Gorgias so your agent can look up order status, process returns, and check product info while handling tickets.

**Import macros.** If your team has a library of macros, training on them ensures the agent uses your approved messaging.

**Start with draft replies.** E-commerce support often involves order-specific details — review drafts first to ensure accuracy.

## Troubleshooting

**Agent not picking up tickets?**

* Verify the trigger is enabled in Settings > Triggers
* Check Gorgias webhook configuration
* Ensure the OAuth connection is active


# Jira Service Management

## What you can do

* Train your agent on your Jira knowledge base, canned replies, and past issues
* Automatically comment on issues or route them to the right team
* Search, create, assign, and label issues

{% hint style="info" %}
JSM Messenger is not currently supported. Please see our [eesel AI chat bubble integration](/use-cases/website-chat) for eesel native options.
{% endhint %}

## Connecting Jira

### API Key

Connect with your Jira subdomain, email, and API token.

1. Go to **Integrations > Jira**
2. Select **Connect**
3. Enter your Jira subdomain, email address, and API key
4. Click **Connect**

### OAuth (Marketplace)

Install eesel AI from the Atlassian Marketplace.

1. Go to **Integrations > Jira**
2. Select **Install from Marketplace**
3. Follow the Atlassian Marketplace installation flow

## Training your agent

| Source             | Description                                  | Requires         |
| ------------------ | -------------------------------------------- | ---------------- |
| **Help Center**    | Jira knowledge base articles via web crawler | API Key or OAuth |
| **Canned Replies** | Pre-written response templates               | API Key or OAuth |
| **Past Issues**    | Resolved Jira issues                         | API Key or OAuth |

## Triggers

| Trigger                    | Description                                | Best for         |
| -------------------------- | ------------------------------------------ | ---------------- |
| **Any Customer Message**   | Fires on new or updated issues             | Full automation  |
| **Agent Requests AI Help** | Fires when @eesel is mentioned in comments | On-demand assist |

## Actions

| Action               | Description                            |
| -------------------- | -------------------------------------- |
| **Comment on Issue** | Add a comment to a Jira issue          |
| **Search Issues**    | Search using JQL (Jira Query Language) |
| **Create Issue**     | Create a new Jira issue                |
| **Assign Issue**     | Assign to a specific user              |
| **Label Issue**      | Add labels for categorization          |

## Tips and best practices

**Use JQL for smart searches.** The Search Issues action supports JQL, so your agent can find related issues with precise queries.

**Set up labeling for triage.** Configure the Label action with your triage instructions to automatically categorize incoming issues.

**Combine with Confluence.** If your team uses Confluence for documentation, connect it as a knowledge source alongside Jira for comprehensive coverage.

## Troubleshooting

**API Key connection failing?**

* Generate an API token from [Atlassian account settings](https://id.atlassian.com/manage-profile/security/api-tokens)
* Use the email associated with your Atlassian account
* Enter just the subdomain (e.g., `yourcompany` not `yourcompany.atlassian.net`)


# HubSpot

AI agents and copilot to streamline support.

eesel AI plugs directly into HubSpot, helping your team manage CRM inbox conversations and Service Hub tickets. Your agent can review incoming messages, assist with replies, and take actions such as updating tickets or adjusting priorities.

This allows your support team to resolve tickets faster while keeping everything inside HubSpot.

<figure><img src="/files/7MdVBLMF9OdU1usW5Eob" alt=""><figcaption></figcaption></figure>

### Training your AI with HubSpot

Your AI agent can use several types of HubSpot-related content to improve its responses.

#### Help Center

HubSpot knowledge bases can be crawled using our website crawler, if the help center is publicly accessible.

{% stepper %}
{% step %}

#### Head to the integrations menu

<figure><img src="/files/yhghzvAGsNwibn2PlbCx" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Select website

<figure><img src="/files/GL9d5fx6Qelr5PYZMD3Q" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Add your help center URL and exclusions (optional)

<figure><img src="/files/aTXATRBso04rK3r0gN17" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

If your help center is not publicly available, you can still train your AI using other methods:

* Use our [browser extension](https://chromewebstore.google.com/detail/eesel-ai-chatgpt-sidebar/ejhkkbilnpifailgngpkgmiofhioacjd?hl=en) to train on specific private pages (available during trials).
* Send us the details of your private or internal help center on a paid plan so we can crawl it for you.

If your help center is hosted on another platform, you can also use the crawler available in that platform's integration menu inside the eesel dashboard.

If you have any questions, contact <hi@eesel.app> or reach out through the in-app chat.

***

#### Message templates

HubSpot message templates can be added to eesel so your AI can reference them when responding to tickets.

You can add templates to the eesel dashboard:

* Directly through the instructions
* Through the Create a file tab

If you have a large number of templates to import, contact support via chat or email at <hi@eesel.app>.

Automatic indexing of message templates is currently in development.

***

#### Past tickets and conversations

Training on past HubSpot tickets and conversations is not currently available by default.

If this is important for your workflow, contact support once you're on a paid plan to discuss enabling ticket and conversation training.

***

### What eesel can do in HubSpot

First, you need to connect HubSpot. Simply:

{% stepper %}
{% step %}

#### Open the integrations menu

<figure><img src="/files/yhghzvAGsNwibn2PlbCx" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Click HubSpot

<figure><img src="/files/XnDDfkoff6XjJhRtkCdt" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Click connect HubSpot and allow authorisation

<figure><img src="/files/biy1bo6MIDeNaYJSFWkK" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Test, enable a trigger and actions, and deploy

Follow the instructions below to enable the right triggers, actions, and instructions for your agent.
{% endstep %}
{% endstepper %}

Once connected, eesel can assist with several actions inside HubSpot tickets.

First, you must head to the HubSpot configuration page. Click HubSpot on the left sidebar after it's connected.

Here you can add triggers and actions. Then, you can use the Instructions page to explain to the agent when and how to use these actions. Find more info about how to set those up [here](/getting-started/instructions-triggers-and-actions).

#### Triggers

Triggers determine when the AI agent runs.

Supported triggers include:

* Every customer message\
  The agent runs whenever a new customer message is received.
* @eesel mention\
  A support agent can mention eesel in an internal comment to request assistance on a ticket.

***

#### Actions

When triggered, the agent can perform actions directly inside HubSpot:

* Reply to customer
* Add internal comment
* Update ticket
* Change ticket priority

These actions allow the agent to assist your team while keeping the full workflow inside HubSpot.

<br>


# Confluence

## Connecting Confluence

Confluence connects via the Atlassian Marketplace or with our Chrome browser extension.

{% stepper %}
{% step %}

#### Head to the integrations menu

<figure><img src="/files/yhghzvAGsNwibn2PlbCx" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Click Confluence

<figure><img src="/files/2UpAJfIjZpuHK46gYbP4" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Click install app and follow the Atlassian instructions

<figure><img src="/files/u1Qv42XQYx4siml2ECJe" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

### Connect via browser extension

This is a fast way to quickly add a set of web pages, including Confluence pages and Google Docs.

{% stepper %}
{% step %}

#### Install the extension

Head here to [install the extension](https://chromewebstore.google.com/detail/eesel-ai-chatgpt-sidebar/ejhkkbilnpifailgngpkgmiofhioacjd?hl=en) and login to eesel once you open it.
{% endstep %}

{% step %}

#### Open your Confluence pages click add sources

<figure><img src="/files/54ap7ItxTtzdaiY5leu3" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

### Prerequisites

* A Confluence Cloud workspace (Atlassian Cloud only)
* Admin permissions to install marketplace apps

## What gets synced

Your Confluence pages are synced when you select them inside our Confluence app or when you add them via Chrome Extension. Syncs are not possibly to do automatically and must be manually triggered.

## Tips

**Organize your Confluence space.** Well-structured spaces with clear page hierarchies produce better results. Your agent uses the document structure to understand context.

**Keep pages current.** Outdated Confluence pages lead to outdated answers. Review and update your documentation regularly.

**Combine with Jira.** If your team uses both Confluence and Jira, connect both — Confluence for documentation and [Jira](/integrations/jira-service-management) for issue management.

## Troubleshooting

**App not indexing content?**

* Verify the app is properly installed in your Confluence workspace
* Check that you have the correct permissions
* Contact support if pages still aren't appearing after 30 minutes

**Content seems stale?**

* Trigger a manual re-sync from the integration settings
* Check the sync status in your sidebar (look for the sync indicator)


# Troubleshooting: AI for Confluence App Not Indexing Content

If you are experiencing issues with the AI for Confluence add-on not indexing content, there are a few common reasons why this might be happening. Follow the troubleshooting steps below to identify and resolve the issue.

### Common Reasons Why Content is Not Indexed <a href="#h_41c2cb31f4" id="h_41c2cb31f4"></a>

#### 1. The Bot Lacks Proper Permissions <a href="#h_68f03c773e" id="h_68f03c773e"></a>

The AI for Confluence/AI Chat bot requires appropriate permissions to access and index content within Confluence spaces. If the bot does not have the correct permissions, it will not be able to retrieve and process pages.

Solution: To fix permission issues, follow these steps:

1. Navigate to the Confluence Space where the content is located.
2. Click on Space Settings in the left-hand sidebar.
3. Go to Space Access.
4. Click "Edit"
5. Add ChatGPT for Confluence / AI for Confluence to the users list.\
   ​

   [![](https://downloads.intercomcdn.com/i/o/lnz0cfjq/1388318314/abb4c5a49716ab4fef72dfbca67d/image.png?expires=1753407000\&signature=5ead98c81dd22a71451ae7c71b9351a3b3b44d9383d127eb66b11ff44ab146a4\&req=dSMvHsp%2FlYJeXfMW1HO4zaqiq0WaEPXeDHzU%2FM9aVyjmJUg63Y%2Fdr6xrFauY%0AZ1V6%0A)](https://downloads.intercomcdn.com/i/o/lnz0cfjq/1388318314/abb4c5a49716ab4fef72dfbca67d/image.png?expires=1753407000\&signature=5ead98c81dd22a71451ae7c71b9351a3b3b44d9383d127eb66b11ff44ab146a4\&req=dSMvHsp%2FlYJeXfMW1HO4zaqiq0WaEPXeDHzU%2FM9aVyjmJUg63Y%2Fdr6xrFauY%0AZ1V6%0A)

   \
   ​
6. Ensure that it has at least View permissions for All Content.
7. Save the changes and try re-indexing.

Optional: Checking Individual Page Restrictions If a specific page is not being indexed, it may have individual Page Restrictions preventing access. Follow these steps:

1. Navigate to the specific page that is not being indexed.
2. Click the Restrictions padlock icon to open up the page permissions.\
   ​

   [![](https://downloads.intercomcdn.com/i/o/lnz0cfjq/1388316577/639aac5a4c08ec32967ad091550f/image.png?expires=1753407000\&signature=1df687c1a70ffeee25d1973cf9480ba90943096f8e9858a2921e88cd2635a508\&req=dSMvHsp%2Fm4RYXvMW1HO4zcEk0VGGkQfVohJ7%2BI1nJlPFkna1Qtd938aWjPzp%0Aq%2BQP%0A)](https://downloads.intercomcdn.com/i/o/lnz0cfjq/1388316577/639aac5a4c08ec32967ad091550f/image.png?expires=1753407000\&signature=1df687c1a70ffeee25d1973cf9480ba90943096f8e9858a2921e88cd2635a508\&req=dSMvHsp%2Fm4RYXvMW1HO4zcEk0VGGkQfVohJ7%2BI1nJlPFkna1Qtd938aWjPzp%0Aq%2BQP%0A)
3. Ensure that ChatGPT for Confluence / AI for Confluence has View access, or that access is generally open.
4. Save any changes and reattempt indexing.

#### 2. The Content is Too Large <a href="#h_9904c5d16f" id="h_9904c5d16f"></a>

Large content pages, especially those with extensive text, tables, or attachments, may not be indexed properly by the AI for Confluence add-on due to processing limitations.

Solution:

* Try breaking down the content into smaller sections or pages.
* If the page contains large attachments, consider moving them to a dedicated storage solution and linking them within the page.
* Reduce excessive formatting, embedded elements, or code blocks that may hinder the indexing process.

#### 3. The Content is Not a Direct Child of the Space Homepage <a href="#h_86ccd1f504" id="h_86ccd1f504"></a>

For content to be indexed, it must be a child page of the space homepage. If a page exists outside the hierarchy, the add-on may not recognize it for indexing.

Solution:

1. Navigate to the page that is not being indexed.
2. Click the More Actions (•••) button at the top-right of the page.
3. Select Move and choose the homepage of the space as the new parent page.
4. Save the changes and allow time for re-indexing.

#### Additional Troubleshooting Steps <a href="#h_baaab0c84b" id="h_baaab0c84b"></a>

If you have checked the above conditions and content is still not being indexed:

* Ensure the add-on is installed correctly in your Confluence instance.
* Verify that Confluence APIs and integrations are functioning as expected.
* Contact eesel AI support for further assistance.

By following these steps, you should be able to resolve most indexing issues related to AI for Confluence and ensure smooth operation of the add-on within your Confluence workspace.

***

### Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.eesel.ai/legacy/integrations/confluence/troubleshooting-ai-for-confluence-app-not-indexing-content.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language. The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.


# Notion

## Connecting Notion

Notion connects via an internal integration token:

1. Go to **Integrations > Notion**
2. Create a Notion integration at [notion.so/my-integrations](https://www.notion.so/my-integrations)
3. Copy the **Internal Integration Token**
4. Paste the token in eesel AI and click **Connect**
5. In Notion, share the pages you want to sync with your integration

### Prerequisites

* A Notion workspace with admin or member access
* An internal integration created in Notion settings
* Pages shared with the integration

### Important: Share pages with the integration

After creating your Notion integration, you must explicitly share each page (or parent page) with it:

1. Open the page in Notion
2. Click **Share** in the top right
3. Invite your integration by name
4. Pages nested under shared pages are automatically included

## What gets synced

| Content type | Description                                |
| ------------ | ------------------------------------------ |
| **Pages**    | Full text content from shared Notion pages |

All page types are supported — text, databases, lists, etc. Nested sub-pages under shared parent pages are included automatically.

## Sync frequency and updates

* Content is periodically re-synced to pick up edits
* New pages added under shared parent pages are automatically picked up
* You can manually trigger a re-sync from the integration settings

## Tips

**Share a top-level page.** Instead of sharing individual pages, share a high-level parent page. All nested sub-pages will be included automatically.

**Keep your knowledge base organized.** Well-structured Notion pages with clear headings produce better results than long, unstructured pages.

**Update the source, not the agent.** When information changes, update it in Notion and let the sync pick it up — don't try to correct the agent's knowledge through instructions alone.

## Troubleshooting

**Pages not appearing?**

* Check that the pages are shared with your Notion integration
* Verify the integration token is correct
* Try manually triggering a re-sync

**Content seems outdated?**

* Trigger a manual re-sync from the integration settings
* Check that the page was actually updated in Notion


# Slack

## What you can do

* Deploy a knowledge agent your team can @mention in any channel
* Get instant answers from your connected knowledge sources
* Send messages to channels programmatically

## Connecting Slack

1. Go to **Integrations > Slack**
2. Click **Connect**
3. Authorize eesel AI in your Slack workspace
4. Choose which channels the agent should have access to

### Prerequisites

* Admin access to your Slack workspace (or permission to install apps)

## Trigger

| Trigger              | Description                                           |
| -------------------- | ----------------------------------------------------- |
| **@eesel Mentioned** | Fires when someone @mentions eesel in a Slack channel |

When triggered, the agent reads the message, searches your knowledge base, and replies in the thread.

## Action

| Action           | Description                                                       |
| ---------------- | ----------------------------------------------------------------- |
| **Send Message** | Send a message to a Slack channel (supports Block Kit formatting) |

## How it works

1. A team member types `@eesel what's our PTO policy?` in a channel
2. The agent picks up the mention
3. It searches your connected knowledge sources
4. It replies in the thread with an answer

```
#general
├── @alice: @eesel what's our return policy for defective items?
└── @eesel: Our return policy for defective items allows returns
             within 90 days of purchase. The customer needs to...
             📎 Source: Returns Policy (Confluence)
```

## Tips

**Add the agent to relevant channels.** Start with your support team channel, then expand to other teams as they find it useful.

**Train on internal docs.** Connect [Confluence](https://github.com/eeselapp/slack/blob/docs-sync/docs/3.0/integrations/confluence.md), [Notion](/integrations/notion), or [Google Drive](/integrations/google-drive) so the agent can answer questions from your internal documentation.

**Introduce it to the team.** Post a quick message explaining what the agent can do and how to use it. Example: "We've added @eesel to this channel! Mention it with any question and it'll search our docs for an answer."

## Troubleshooting

**Agent not responding to mentions?**

* Check that the trigger is enabled in Settings > Triggers
* Verify the agent has been added to the channel
* Make sure you're using `@eesel` (the exact name)

**Agent responding in wrong channels?**

* Review which channels the agent has access to in the Slack integration settings


# Microsoft Teams

## What you can do

* Deploy a knowledge agent your team can @mention in any channel
* Get instant answers from your connected knowledge sources
* Send messages to channels programmatically

## Connecting Teams

This integration is currently not available self-serve. Please contact us.

### Prerequisites

* Admin access to your Teams workspace (or permission to install apps)

## Trigger

| Trigger              | Description                                           |
| -------------------- | ----------------------------------------------------- |
| **@eesel Mentioned** | Fires when someone @mentions eesel in a Teams channel |

When triggered, the agent reads the message, searches your knowledge base, and replies in the thread.

## Action

| Action           | Description                                                       |
| ---------------- | ----------------------------------------------------------------- |
| **Send Message** | Send a message to a Teams channel (supports Block Kit formatting) |

## How it works

1. A team member types `@eesel what's our PTO policy?` in a channel
2. The agent picks up the mention
3. It searches your connected knowledge sources
4. It replies in the thread with an answer

```
#general
├── @alice: @eesel what's our return policy for defective items?
└── @eesel: Our return policy for defective items allows returns
             within 90 days of purchase. The customer needs to...
             📎 Source: Returns Policy (Confluence)
```

## Tips

**Add the agent to relevant channels.** Start with your support team channel, then expand to other teams as they find it useful.

**Train on internal docs.** Connect Confluence, Notion, or Google Drive so the agent can answer questions from your internal documentation.

**Introduce it to the team.** Post a quick message explaining what the agent can do and how to use it. Example: "We've added @eesel to this channel! Mention it with any question and it'll search our docs for an answer."

## Troubleshooting

**Agent not responding to mentions?**

* Check that the trigger is enabled in Settings > Triggers
* Verify the agent has been added to the channel
* Make sure you're using `@eesel` (the exact name)

**Agent responding in wrong channels?**

* Review which channels the agent has access to in the Teams integration settings


# Shopify

Connect your Agent with Shopify so that it can learn from your product pages, make recommendations, lookup orders, action refunds, and more.

## What you can do

* Look up customer order history and tracking information
* Search and browse your product catalog
* Process returns, refunds, and cancellations
* Generate visual product carousels in chat
* Check product inventory and variant details

## Connecting Shopify

### OAuth (recommended)

Install eesel AI from the Shopify App Store.

1. Go to **Integrations > Shopify**
2. Select **Install Marketplace App**
3. Follow the Shopify installation flow
4. Authorize eesel AI to access your store data

### Access token

Connect with a Shopify Admin API access token.

1. Go to **Integrations > Shopify**
2. Select **Credentials**
3. Enter your shop name and Admin API access token
4. Click **Connect**

## Actions

### Customer and order lookup

| Action                    | Description                                     |
| ------------------------- | ----------------------------------------------- |
| **Get Customer by Email** | Look up customer profile and details            |
| **Get Order History**     | Retrieve a customer's order history by email    |
| **Get Order by ID**       | Get detailed information about a specific order |
| **Get Order Fulfillment** | Check shipping status and tracking information  |

### Product information

| Action                        | Description                                              |
| ----------------------------- | -------------------------------------------------------- |
| **Search Products**           | Search your product catalog by query                     |
| **Get Products**              | Retrieve all products in your store                      |
| **Get Product Variants**      | Get variant details (size, color, SKU, price, inventory) |
| **Get Product Metafields**    | Get custom product metadata                              |
| **Get Variant Metafields**    | Get custom variant metadata                              |
| **Generate Product Carousel** | Create a visual product display in chat                  |

### Order management

| Action            | Description                 |
| ----------------- | --------------------------- |
| **Create Return** | Initiate a product return   |
| **Refund Order**  | Process a refund            |
| **Cancel Order**  | Cancel an unfulfilled order |

## Common scenarios

**"Where's my order?"** Agent looks up the customer by email → gets order history → finds the relevant order → checks fulfillment status → replies with tracking info.

**"I want to return this item"** Agent looks up the order → verifies it's eligible for return → creates a return request.

**"What products do you have for...?"** Agent searches the product catalog → presents relevant products → optionally generates a product carousel in chat.

## Tips

**Pair with a helpdesk.** Shopify works best alongside a helpdesk integration like [Zendesk](/integrations/zendesk) or [Gorgias](/integrations/gorgias). The agent handles tickets while looking up Shopify data as needed.

**Enable HITL for order management.** Turn on Human in the Loop for sensitive actions like refunds and cancellations.

**Use product carousels in chat.** The Generate Product Carousel action creates a visual product display — great for the [Chat Bubble](/use-cases/website-chat) on your website.

## Troubleshooting

**Can't connect?**

* Ensure you have admin access to your Shopify store
* For API token connections, verify the token has the correct scopes

**Product data seems outdated?**

* Product data is fetched in real-time from Shopify, so it should always be current
* If issues persist, try disconnecting and reconnecting


# Magento

Connect your Agent with Magento so it can look up orders, check payments, track shipments, and take order actions on your behalf.

## What you can do

* Look up orders by order number or customer email
* Check shipment and tracking information
* Check payment status on an order
* Refund or cancel orders
* Send customer-facing order notices
* Check product stock by SKU

## Connecting Magento

You'll need two things to connect:

* Your Magento store URL (e.g. `https://store.example.com`)
* A Magento integration access token (API key)

The steps below walk through generating the access token from your Magento Admin Panel.

### Step 1: Log in to the Magento Admin Panel

Open your browser and go to your Magento admin URL (e.g. `https://yourstore.com/admin`). Sign in with your admin credentials.

### Step 2: Open the Integrations page

In the left sidebar, click **System**. Under the **Extensions** section, select **Integrations**.

### Step 3: Create a new integration

Click **Add New Integration** in the top-right corner. Fill in the required details:

* **Name** — a descriptive label (e.g. `eesel_orders_integration`)
* **Email** — any valid email address you control
* **Callback URL** and **Identity Link URL** — leave blank
* **Your Password** — your Magento admin password (required to authorize the integration)

Leave the other fields at their defaults.

### Step 4: Configure API permissions

Switch to the **API** tab on the left side of the integration form.

Under **Resource Access**, select **Custom**, then expand the **Sales** section in the resource tree and check **Orders** to grant order-related access.

Add other resources only if you need them — keeping the scope tight is the safer default.

### Step 5: Save and activate

Click **Save** at the top-right. You'll be returned to the Integrations list.

Find the integration you just created and click **Activate** in the **Actions** column. A confirmation pop-up will appear showing your access keys — keep this window open.

### Step 6: Copy the access token

In the activation pop-up you'll see four values: Consumer Key, Consumer Secret, Access Token, and Access Token Secret.

Copy the **Access Token** value and store it somewhere safe (a password manager works well). This is the API key you'll paste into eesel. Click **Done** to finish activation in Magento.

### Step 7: Connect in eesel

1. In eesel, go to **Integrations > Magento**
2. Enter your store URL and the **Access Token** from Step 6
3. Click **Connect Magento**

## Actions

### Order lookup

| Action                  | Description                                           |
| ----------------------- | ----------------------------------------------------- |
| **Get Order by ID**     | Pull full details for a specific order number         |
| **Get Orders by Email** | Find a customer's recent orders by email              |
| **Get Order Tracking**  | Get shipment status and tracking numbers for an order |
| **Get Payment Status**  | Check whether a payment went through and method used  |

### Order actions

| Action                | Description                                       |
| --------------------- | ------------------------------------------------- |
| **Refund Order**      | Refund an order via Magento's creditmemo endpoint |
| **Cancel Order**      | Cancel an order that hasn't shipped               |
| **Send Order Notice** | Send a customer-facing notice about an order      |

### Product information

| Action                 | Description                                   |
| ---------------------- | --------------------------------------------- |
| **Check Stock Status** | Inventory level and in-stock status for a SKU |


# Google Drive

## Connecting Google Drive

1. Go to **Integrations > Google Drive**
2. Click **Connect with Google**
3. Sign in to your Google account and grant eesel AI read access
4. Select the files and folders you want to sync

### Prerequisites

* A Google account with access to the files you want to sync
* Files must be shared with or owned by the connected account

## What gets synced

| Content type      | Description                                 |
| ----------------- | ------------------------------------------- |
| **Google Docs**   | Full text content from your documents       |
| **Google Sheets** | Spreadsheet data including all sheets       |
| **PDFs**          | PDF files stored in Drive                   |
| **Folders**       | All supported files within selected folders |
| **Other Files**   | Text-based files (txt, md, csv, etc.)       |

## Selecting content

After connecting, you can choose which files and folders to sync using the Google Drive picker:

* Select individual files
* Select entire folders (all supported files within are synced)
* Mix and match across your Drive, shared files, or your team's Shared Drive

## Sync frequency and updates

* Content is periodically re-synced to pick up changes
* You can manually trigger a re-sync from the integration settings
* New files added to synced folders are automatically picked up

## Tips

**Start with your most-referenced docs.** Focus on the documents your team looks up most often — policies, procedures, product guides.

**Use folders for easy management.** Create a dedicated folder in Drive (e.g., "AI Knowledge Base") and sync the whole folder. Adding new docs to it automatically trains your agent.

**Avoid syncing irrelevant content.** Marketing decks, personal notes, and old drafts can confuse your agent. Be selective.

## Troubleshooting

**Files not appearing after sync?**

* Check that the files are shared with the connected Google account
* Ensure files are in a supported format (see the table above)
* Files over 50 MB are not supported and will fail
* Google Docs, Google Sheets, and Google Slides items over 10 MB are not supported. This is a limitation from Google Drive's Export API.

**Can't add new files?**

* If you see a legacy connection warning, disconnect and reconnect to upgrade to the new integration

**Connection expired?**

* Google OAuth tokens can expire. Disconnect and reconnect to refresh.


# Website

Connect your agent with your website so that it can crawl your site pages and use them as knowledge.

You can have your agent link to specific URLs, and walk users through troubleshooting or recommend product pages.

Note: to set up automatic syncing of your website pages, this is only available on a paid plan upon request.

## Setting up the crawler

1. Go to **Integrations > Website** (or use Quick Start when creating an agent)
2. Enter your website URL (e.g., `https://www.yourcompany.com`)
3. Optionally configure path filters
4. Click **Connect** to start crawling

### Prerequisites

* A publicly accessible website
* The crawler respects `robots.txt`

## How it works

The crawler:

1. Starts at the URL you provide
2. Follows links to discover pages
3. Extracts text content from each page
4. Indexes the content for your agent to search

### Crawl limits

| Plan           | Max pages |
| -------------- | --------- |
| **Trial**      | 100 pages |
| **Paid plans** | 500 pages |

## Configuring path filters

Use include and exclude paths to control what gets crawled:

**Include paths** — Only crawl pages matching these paths

* Example: `/help`, `/docs`, `/support`

**Exclude paths** — Skip pages matching these paths

* Example: `/blog`, `/careers`, `/pricing`

This is useful for large websites where you only want your agent to learn from specific sections.

## Sync frequency and updates

* The crawler periodically re-crawls your site to pick up changes
* You can manually trigger a re-crawl from the integration settings
* New pages linked from existing pages are discovered automatically

## Tips

**Use path filters on large sites.** If your site has thousands of pages, focus the crawler on help and documentation sections.

**Crawl your help center.** If your help center is on a subdomain (like `help.yourcompany.com`), enter that URL directly.

**Combine with other sources.** The website crawler is great for getting started quickly, but add help center articles, documents, and past tickets for comprehensive coverage.

**Check what got crawled.** After the crawl completes, browse the indexed pages in your Files tab to verify the right content was picked up.

## Troubleshooting

**Crawler not finding pages?**

* Make sure pages are publicly accessible (not behind a login)
* Check that `robots.txt` isn't blocking the crawler
* Verify that pages are linked from the starting URL (orphan pages won't be found)

**Too many irrelevant pages crawled?**

* Add exclude paths for sections you don't want (blog, careers, etc.)
* Use include paths to restrict crawling to specific sections


# Uploading Files

## Uploading files

1. Go to your agent's **Files** section
2. Drag and drop files into the upload area, or click to browse
3. Files are processed and indexed automatically

## Creating files in the platform

You can also create files directly in the eesel AI platform:

1. Go to your agent's **Files** section
2. Click **Create** to start a new file
3. Write or paste your content
4. Save — the file is immediately available as knowledge

This is useful for:

* Writing custom knowledge articles specific to your agent
* Adding quick notes or policies without needing an external tool
* Creating content that doesn't live anywhere else

## Supported formats

| Format         | Extension | Notes                                         |
| -------------- | --------- | --------------------------------------------- |
| **PDF**        | `.pdf`    | Text-based PDFs (scanned images may not work) |
| **Plain text** | `.txt`    | Any plain text file                           |
| **Markdown**   | `.md`     | Markdown formatted files                      |
| **CSV**        | `.csv`    | Comma-separated data files                    |

## Tips

**Use PDFs for policies and manuals.** Upload your company handbook, product manuals, or policy documents as PDFs.

**Create files for agent-specific knowledge.** If there's information your agent needs that doesn't exist in any other tool, create it directly in the platform.

**CSV files work for structured data.** If you have a product catalog, FAQ list, or pricing table in a spreadsheet, save it as CSV and upload.

**Keep files focused.** Upload files that are directly relevant to what your agent needs to know. Avoid dumping large files with mixed content.

**Update by re-uploading.** To update an uploaded file, upload the new version. For files created in the platform, edit them directly.

## Troubleshooting

**File not processing?**

* Check that the file is in a supported format
* Ensure the file isn't password-protected
* For PDFs, make sure it contains selectable text (not just scanned images)

**Content not appearing in answers?**

* Give it a few minutes — processing large files takes time
* Test in the chat by asking a question specifically about the file's content

<br>


# Gmail

(Some features may not yet be available out of the box in the trial just yet. Please reach out about any integrations that aren't.)

## What you can do

* Search through emails using Gmail syntax
* Read full email conversations
* Send emails with CC/BCC support
* Look up email threads from URLs

## Connecting Gmail

1. Go to **Integrations > Gmail**
2. Click **Connect with Google**
3. Sign in to your Google account and grant eesel AI access
4. Authorize the requested permissions

### Prerequisites

* A Gmail or Google Workspace account

## Actions

| Action                 | Description                                                                 |
| ---------------------- | --------------------------------------------------------------------------- |
| **Search Emails**      | Search using Gmail syntax (e.g., `from:customer@example.com subject:order`) |
| **Read Email**         | Read the full content of a specific email by ID                             |
| **Send Email**         | Send an email with optional CC and BCC recipients                           |
| **Get Email from URL** | Extract an email thread from a Gmail URL                                    |

## Use cases

**Support workflow:** Your agent can search for previous email conversations with a customer to understand history before responding to a ticket.

**Email-based support:** Use the Send Email action to have your agent respond directly via email.

**Context gathering:** When handling a support ticket, the agent can look up related email threads for additional context.

## Tips

**Use Gmail search syntax.** The Search Emails action supports full Gmail search operators — `from:`, `to:`, `subject:`, `has:attachment`, date ranges, and more.

**Combine with helpdesk.** Gmail works well alongside helpdesk integrations — your agent can check email history while handling tickets.

## Troubleshooting

**Connection expired?**

* Google OAuth tokens can expire. Disconnect and reconnect to refresh.

**Emails not found?**

* Check that the connected Gmail account has access to the emails you're searching for
* Verify your search syntax is correct


# Asana

AI-powered task creation and project management

eesel AI connects with Asana so your AI can automatically create tasks, update projects, and keep your team organized - all from within your existing helpdesk or chat workflows.<br>

<figure><img src="/files/JnJs7w38EQkn7vt6GYLQ" alt=""><figcaption></figcaption></figure>

## What you can do

* Provide status updates on tasks and projects
* Comment on tasks with relevant information
* Cite specific task assigness, due dates, and status
* Answer team questions about ongoing work in Slack or Teams
* Stay current as tasks are created, updated, or completed

{% hint style="info" %}
Note on sources: Asana is currently an **action only** integration. The AI cannot be trained on Asana project content. The AI can create and update your tasks, but does not index your Asana workspace as a knowledge source.
{% endhint %}

## Connecting Asana

{% stepper %}
{% step %}

### Go to your eesel dashboard and choose the agent you want to connect

You can connect with multiple agents if you want to.
{% endstep %}

{% step %}

### Click the integrations tab > Asana

{% endstep %}

{% step %}

### Follow the integration steps via Pipedream and grant access

The Pipedream flow should walk you through each auth step.
{% endstep %}

{% step %}

### Configure your integration triggers and actions

Click Asana from the list of integrations on the left sidebar of the eesel dashboard. From there, you can edit your triggers and actions. Select the ones you want to use and explain in the instructions how they should be used and when.
{% endstep %}

{% step %}

### Test your integration

Click an onboarding task, or ask in the sidebar chat to test an action

<figure><img src="/files/wdMRyUlQxzXk2mrtEWC5" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Confirm the integration works

<figure><img src="/files/aROwEqVcAF6aiLkjTgNU" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

### Actions <a href="#actions" id="actions"></a>

| Action                    | Description                                                                                                                    |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Update task               | Updates a specific and existing task                                                                                           |
| Get list of user projects | Return a list of projects given the user and workspace grid                                                                    |
| Search tasks              | Searches for a task by name within a project                                                                                   |
| Search tasks Premium      | Searches for a task by name, assignee, section, project, completed since, and modified since. Requires a Premium Asana account |
| Search sections           | Searches for a section by name within a particular project                                                                     |
| Search projects           | Finds an existing project                                                                                                      |
| List task stories         | Lists stories (including comments) for a task                                                                                  |
| Get tasks from task list  | Returns the compact list of tasks in a user's My Tasks list                                                                    |
| Find task by ID           | Searches for a task by ID. Returns the complete task record for a single task                                                  |
| Delete task               | Deletes a specific and existing task                                                                                           |
| Create task               | Creates a new task                                                                                                             |
| Create task from template | Creates a new task from a task template                                                                                        |
| Create task comment       | Adds a comment to a task                                                                                                       |
| Create subtask            | Creates a new subtask and adds it to the parent task                                                                           |
| Create project            | Create a new project in a workspace or team                                                                                    |
| Add task to section       | Add a task to a specific, existing section. This will remove the task from the other section                                   |


# Help Scout

AI agents and copilot for your Help Scout inbox

eesel AI plugs into your Help Scout workspace, learns from your past conversations, help center articles, and more - and seamlessly joins your support flow like a new teammate.

## What you can do

Once Help Scout is connected, here are some examples of what your eesel agent can do:&#x20;

* Draft replies in conversations for team review
* Read Help Scout docs and past conversations for context
* Update conversation tags and assignment
* Respond when new messages arrive from customers
* Work alongside your team in the Help Scout mailbox
* Respond in 80+ languages out of the box<br>

{% hint style="info" %}
Help Scout Beacon is not a currently support channel.
{% endhint %}

## Connect your Help Scout

{% stepper %}
{% step %}

### Go to the integrations menu

In the eesel AI dashboard, click the + button on the left sidebar to view all possible integrations. Click Help Scout.

<figure><img src="/files/uRAmeFAq3oJKFqPUEcBw" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Connect via Pipedream

Follow the instructions to connect via Pipedream. This will allow your agent to pull past conversations from Help Scout and use as a knowledge source.

<figure><img src="/files/UYzcx9WXJS3WmkBoRuRN" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Add triggers and actions

Enable triggers, and any actions you'd like your agent to be able to take

<figure><img src="/files/jMoDCYDHdcpC36KEp5A6" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Instruct and test

Explain to the agent how it should act when it gets triggered, and how and when it should use each action. You can test in the sidebar.

<figure><img src="/files/nN9nRpJnj5RKLryJf6wu" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

## Training Sources

Your Help Scout agent can use sources from outside Help Scout (as detailed in our other integration pages) as well as Help Scout sources. Here are the Help Scout sources:&#x20;

### Help Center

1. Go to your eesel dashboard and choose the bot you want to train, or create a new one.
2. Click the Integrations tab in the sidebar.
3. Click the + button and search for Help Scout.
4. Connect your Help Scout account via the Pipedream integration flow.

Once connected, go to Sources > Docs and enter your Help Scout help center URL manually.

### Past conversations (tickets)

Training on past Help Scout conversations lets your AI learn from how your team has handled real customer questions.

1. Connect your Help Scout account (see above).
2. Click on your Help Scout integration in the sidebar and navigate to Tickets.
3. Filter the conversations you want to train on and click Process Tickets.
4. You'll receive a notification once the training job completes.

### Actions <a href="#actions" id="actions"></a>

| Action                   | Description                                       |
| ------------------------ | ------------------------------------------------- |
| Update conversation      | Updates a conversation                            |
| Send reply               | Sends a reply to a conversation.                  |
| List tags                | Lists all tags in Help Scout                      |
| Get tag by ID            | Gets a tag by its ID                              |
| Get conversation threads | Retrieves the threads of a specific conversation  |
| Get conversation details | Retrieves the details of a specific conversation  |
| Create customer          | Creates a new customer record in Help Scout       |
| Add note to conversation | Adds an internal note to an existing conversation |


# Salesforce

AI agents and copilot powered by your Salesforce data

eesel AI connects to your Salesforce org, giving your AI instant access to contacts, accounts, cases, and opportunities - so it can answer questions and take action without ever leaving your workflow.

<figure><img src="/files/BMxtaZOnBzfFkFuK0ENr" alt=""><figcaption></figcaption></figure>

## What you can do

Once Salesforce is connected, here are some examples of what eesel can do:&#x20;

* Draft or send replies on cases for team review
* Read knowledge articles and case history for context
* Update case status, priority, and fields
* Reference contac and account context for personalised responses
* Work within your Salesforce Service Cloud setup

## How to connect

To connect your Salesforce with your eesel AI agent, simply:&#x20;

1. Select the agent in the top left drop down that you would like to connect
2. Click the + button on the left sidebar to open the integrations menu
3. Search for Salesforce, and click connect.&#x20;
4. Authorise eesel to connect with your Salesforce and follow the prompts.&#x20;
5. Once connected, click Salesforce on the left sidebar under your integrations. Then, add triggers and actions.
6. Edit instructions (found on the left sidebar) to ensure it knows how and when to use each action you have enabled
7. Test and iterate using the sidebar chat or your Salesforce instance.

## Training on Salesforce sources

### Salesforce Records (Read)

You can train your AI bot on Salesforce data, making it aware of your customer records, open cases, and more.

1. Go to your eesel dashboard and choose or create a bot.
2. Click the Integrations tab in the sidebar.
3. Click the + button, search for Salesforce, and connect via the Pipedream integration flow.
4. Once connected, your bot will be able to query Salesforce records in real time when handling conversations.


# Custom APIs

## Available only on paid subscriptions - please contact us once on a subscription to enable.

The Custom Action tool allows you to define custom web requests for the bot to use.

<figure><img src="https://3098247345-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUZKi9A4XwKvuOPgMvVMe%2Fuploads%2Fgit-blob-757e6771ddb35342779d5d31832fa0ce0baa6007%2Fimage%20(1).png?alt=media" alt="custom action tool" width="563"><figcaption><p>Preview of custom action tool (subject to change)</p></figcaption></figure>

<table><thead><tr><th width="277.11328125">Fields</th><th>Description</th></tr></thead><tbody><tr><td>Name</td><td>Name of your custom action. This will determine how the action can be called inside of your custom prompt. The name will be automatically converted to <code>custom_api_&#x3C;name></code>.</td></tr><tr><td>URL</td><td><p>Endpoint you want to make a request to. Query parameters are supported.<br><br>Example:</p><pre class="language-url"><code class="lang-url">https://your-domain.com/path?q={{param}}
</code></pre></td></tr><tr><td>Payload Template <em>(Optional)</em></td><td><p>Request body to be sent to the endpoint. Can be empty.<br><br>Example:</p><pre class="language-json"><code class="lang-json">{
  "fieldName": "value",
  "anotherField": "{{param2}}" // this can be passed in by the AI by configuring the prompt
}
</code></pre></td></tr><tr><td>Headers <em>(Optional)</em></td><td>Request headers to be sent to the endpoint. Can be empty.</td></tr></tbody></table>

***

### How to use?

You can use the tool just like any other existing tools. Refer to the following guide for more information.

{% tabs %}
{% tab title="Where to Enable" %}
{% hint style="info" %}
You can have multiple instances of custom action.
{% endhint %}

In the sidebar, click on **Customize** to open up the customize fly-out.

<figure><img src="https://3098247345-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUZKi9A4XwKvuOPgMvVMe%2Fuploads%2Fgit-blob-e72a23815c8fd15aaf3653e24ec863b144d7398e%2Fimage%20(1)%20(1).png?alt=media" alt="" width="366"><figcaption></figcaption></figure>

In the fly-out, click on **Create new action**.

<figure><img src="https://3098247345-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUZKi9A4XwKvuOPgMvVMe%2Fuploads%2Fgit-blob-ae2d2804b818dabf789ec676604e1c9162ae4b6c%2Fimage%20(2).png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

Then look for **Custom Action**.

<figure><img src="https://3098247345-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUZKi9A4XwKvuOPgMvVMe%2Fuploads%2Fgit-blob-82de1b87e5a544f596e04ea44d4674345053162a%2Fimage%20(3).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

Finally, define your custom web request and hit **Create Custom Web Request**. Once created, custom action will appear under **Actions**.
{% endtab %}
{% endtabs %}


# Network Access

Allow your agent to fetch live data from external APIs using Network Access

> Network Access lets your agent make outbound HTTP requests to external APIs — so it can look up live data like orders, shipping status, or inventory, then use that information when responding to customers.

<figure><img src="/files/YUwSZVGQy159QPq8iHEX" alt=""><figcaption></figcaption></figure>

## What you can do

* Fetch live data from any REST API (orders, customers, inventory, shipping, etc.)
* Make GET requests to retrieve data or POST requests to trigger actions
* Attach authentication headers (API keys, Bearer tokens, Basic auth) per domain
* Combine with any helpdesk so the agent responds with real-time data

***

## Setting up Network Access

Network Access is configured per agent in the **Settings** tab.

1. Open your agent in the eesel AI platform
2. Go to the **Settings** tab
3. Scroll to the **Network Access** section
4. Click **+ Add policy**
5. Fill in the fields:

| Field            | What to enter                                                                     |
| ---------------- | --------------------------------------------------------------------------------- |
| **Domain**       | The base domain of the API (e.g. `api.yourservice.com`)                           |
| **Header name**  | The authentication header name (e.g. `Authorization`)                             |
| **Header value** | The full header value including scheme (e.g. `Basic abc123==` or `Bearer sk-...`) |

6. Click **Save policies**

<figure><img src="/files/wGzLcH5phOJbpio1WLSr" alt=""><figcaption></figcaption></figure>

> **Note:** Header name and value must always be filled in together — you cannot save one without the other.

### Wildcard domains

To allow all subdomains of a domain, use a wildcard:

```
*.yourservice.com
```

This matches `api.yourservice.com`, `store.yourservice.com`, etc., but not `yourservice.com` itself.

***

## Authentication

Different APIs use different auth schemes. Here's how to configure each one.

### Basic Auth

Basic Auth encodes your credentials as a base64 string. Most APIs that use Basic Auth expect `username:password` or `api_key:` (with an empty password).

**Step 1 — Generate the base64 value:**

```bash
echo -n "YOUR_API_KEY:" | base64
```

The colon at the end is required — it separates `username:password`. If there's no password, leave it empty after the colon.

**Step 2 — Add the policy:**

| Field        | Value                        |
| ------------ | ---------------------------- |
| Domain       | `api.yourservice.com`        |
| Header name  | `Authorization`              |
| Header value | `Basic <your base64 output>` |

### Bearer Token

| Field        | Value                 |
| ------------ | --------------------- |
| Domain       | `api.yourservice.com` |
| Header name  | `Authorization`       |
| Header value | `Bearer YOUR_API_KEY` |

### Custom API Key header

Some APIs use a custom header name instead of `Authorization`:

| Field        | Value                 |
| ------------ | --------------------- |
| Domain       | `api.yourservice.com` |
| Header name  | `X-API-Key`           |
| Header value | `YOUR_API_KEY`        |

***

## Writing instructions for your agent

Once the policy is saved, you need to tell your agent **when** and **how** to use it. Add instructions in the **Instructions** tab.

### Example — look up an order

```
When a customer asks about their order status, look it up using their order number.

Use the web_request tool:
- Method: GET
- URL: https://api.yourservice.com/orders/{order_number}

Return the order status, items, and estimated delivery date to the customer.
```

### Example — look up shipping status

```
When a customer asks where their package is, look up the shipment details.

Use the web_request tool:
- Method: GET
- URL: https://api.yourservice.com/shipments?orderNumber={order_number}

Return the tracking number, carrier, and current status to the customer.
```

### Example — trigger an action (POST)

```
When a customer requests a cancellation, cancel the order via the API.

Use the web_request tool:
- Method: POST
- URL: https://api.yourservice.com/orders/{order_id}/cancel
- Payload: { "reason": "customer request" }

Confirm the cancellation to the customer once done.
```

The agent will automatically use the auth headers from your Network Access policies — you do not need to include credentials in your instructions.

***

## How GET and POST requests work

Your agent can make four types of requests. The most common are GET (fetch data) and POST (create or trigger something).

### GET — fetching data

Use GET to retrieve information. Any parameters you specify are passed as query string values.

```
Method: GET
URL: https://api.yourservice.com/orders/{order_id}
```

### POST — sending data

Use POST to create records or trigger actions.

```
Method: POST
URL: https://api.yourservice.com/orders/{order_id}/cancel
Payload: { "reason": "customer request" }
```

> POST and PATCH requests send the payload as a JSON body. GET requests send it as query parameters.

***

## End-to-end example

This shows how to combine Network Access with a helpdesk so the agent can look up live data and respond to customers automatically.

### 1. Add Network Access policies

In **Settings > Network Access**, add a policy for each API you want the agent to access:

| Domain                         | Header name     | Header value                 |
| ------------------------------ | --------------- | ---------------------------- |
| `api.your-orders-system.com`   | `Authorization` | `Basic <base64 credentials>` |
| `api.your-shipping-system.com` | `Authorization` | `Bearer YOUR_API_KEY`        |

### 2. Connect your helpdesk

Set up your helpdesk integration (e.g. Zendesk) and configure the agent to reply via your chosen channels (messaging, email, etc.).

### 3. Write agent instructions

```
You are a customer support agent.

When a customer asks about an order:
1. Ask for their order number if not provided
2. Look up the order:
   GET https://api.your-orders-system.com/orders?number={order_number}
3. If the order has shipped, look up tracking:
   GET https://api.your-shipping-system.com/shipments?orderNumber={order_number}
4. Respond with the order status, items ordered, and tracking information

Always be friendly and concise. If the order is not found, ask the customer to double-check their order number.
```

***

## Troubleshooting

### "Header name and value need to be filled in together"

Both fields must be filled in before saving. If you want to allow a domain without any auth headers, leave both fields empty.

### "Outbound request to 'api.example.com' is not allowed"

The domain you're requesting is not in your Network Access policies. Check that:

* The domain in the policy matches the hostname exactly (e.g. `api.yourservice.com`, not `https://api.yourservice.com/v1/orders`)
* You clicked **Save policies** after adding the domain

### The API returns 401 Unauthorized

* For Basic Auth: make sure you ran `echo -n "key:" | base64` with the trailing colon
* For Bearer tokens: make sure the value starts with `Bearer` (with a space)
* Double-check that the API key is still valid in the third-party dashboard


# What are Skills?

### What Are Skills? <a href="#what-are-skills-1" id="what-are-skills-1"></a>

Skills are pre-built analytical workflows your agent can run on top of its core job. Unlike the agent's main work (answering tickets, writing posts), skills are distinct multi-step processes with their own logic and output artifacts.

**A skill is NOT:**

* A single tool call (that's just a tool)
* The agent's core behavior (that emerges from instructions + integrations)

**A skill IS:**

* A distinct workflow with multiple steps
* Has its own process and branching logic
* Produces its own output artifact (report, analysis, draft articles)

### How skills work

1. You run a skill from the dashboard or schedule it to run automatically
2. The skill reads your connected data - tickets, knowledge sources, past conversations
3. It works through its steps, which you can watch in real time
4. Results are saved as a report or set of files in your outputs, and emailed to you

### What each skill produces

Every skill produces an output artifact - a report, a set of drafted articles, a scored simulation, or a set of instruction suggestions. You can review and act on these from the dashboard.

### Skills vs. instructions

Your agent's instructions control its behavior in live conversations. Skills are separate - they're one-off or scheduled jobs that run independently, usually over historical data. Changing your instructions doesn't affect how a skill runs, and running a skill doesn't change your instructions (unless you choose to apply suggested improvements).


# Running Skills (on-demand vs scheduled)

**On-demand:**

* Click \[Run] on a skill in the sidebar
* Or ask in chat: "Run simulation on 200 tickets from last 60 days"

**Scheduled:**

* Set up via Automations > Scheduled jobs
* Options: Daily / Weekly / Monthly at a specific time (30-minute increments)
* Example: "Run simulation every Monday at 9am and email me a summary"
* Schedules can also be created via chat

**Skill outputs** are saved to OUTPUT > Skills > \[Skill Name] > \[Timestamp]. Each run creates a timestamped folder with AI-named markdown files.

{% hint style="info" %}
You can use the instructions to have your agent use a skill as part of an existing workflow! For example, at the end of every conversation run the "Knowledge Gap" skill and send the report to a Slack channel.&#x20;
{% endhint %}


# Available Skills

The following is a list of Skills for your eesel AI Agents. However, some of these Skills are not currently available self-serve during the trial.

Please reach out to the team if you'd like information on any of the below, or others you have in mind

Note: Skills can also be used as a tool during workflows as part of your agent's instructions. For example, for every ticket tagged as "Bug", run the "Bug analysis skill", which then pulls database information and analyses the user's issue and pushes an alert to the right team.

<table><thead><tr><th width="249">Skill</th><th>What It Does</th></tr></thead><tbody><tr><td>Build a custom skill</td><td>Allows you to create custom skills - including using custom APIs, as part of existing workflows in your instructions, and across any integrated platform.</td></tr><tr><td>Simulation</td><td>Pulls old conversations, generates AI responses, compares against human replies, scores accuracy, produces a gap report</td></tr><tr><td>Support Analytics / Theme Analysis</td><td>Analyzes conversations - recurring topics, volume trends, resolution rates, channel breakdown</td></tr><tr><td>KB Auto-updater</td><td>Finds KB gaps from conversation patterns, drafts articles from resolved conversations</td></tr><tr><td>Triage Review</td><td>Reviews how the agent has been triaging - re-opens, escalations, misroutes - suggests adjustments</td></tr><tr><td>Sentiment Review</td><td>Analyzes sentiment trends, flags shifts ("negative sentiment up 30% on billing tickets"), surfaces at-risk customers</td></tr><tr><td>SEO Audit</td><td>Evaluates posts for SEO quality, outputs per-post scores with specific fixes</td></tr><tr><td>Content Gaps</td><td>Analyzes what competitors rank for vs. what you've written, surfaces missing topics</td></tr><tr><td>Self Review</td><td>Reviews agent instructions, recent activity, and user interactions to surface gaps, inconsistencies, improvement suggestions</td></tr></tbody></table>

## Building a skill from scratch

With eesel, it's really simple to create your own skill from scratch. The easiest way to do this is by *chatting directly with eesel in the dashboard chat*. Simply ask eesel to help walk you through creating a custom skill based on what you want it to do.&#x20;

Here are a few example skills that you can create, just by chatting with eesel:&#x20;

1. **Evaluation skill**

   Connect your helpdesk, provide a set of criteria, and ask the skill to run an evaluation on your human agent's responses based on that criteria on a schedule. Connect Slack or Teams to send a ping to you or your team with the results or recommended actions.&#x20;
2. **SLA skill**

   Connect to your helpdesk, set some parameters for the desired SLA timeframe, and ask the skill to send a notification to the platform of your choice when the SLA is violated. E.g, send a Slack ping to the user who is assigned to this ticket with a link to the ticket and a suggest response. Add this to your existing AI support agent workflow.&#x20;
3. **Content suggestion skill**

   Connect to your helpdesk, ask the skill to run on a schedule (e.g., every Friday), and to extract the most interesting topics that people ask you about and how they phrase it, then suggest blog topics to create based on those topics and keywords. Connect via API to your content calendar or backend CMS.&#x20;

Chatting with eesel AI in the dashboard can generate an unlimited number of ideas for how you can utilise the custom skill builder. If you want some assistance setting up your custom skill or are unsure how to get started, either ask the team or ask eesel!


# Skills Marketplace (coming soon)

Our Skills Marketplace is a work in progress. Watch this space!


# The eesel CLI

A simple command-line tool to chat with your eesel agent from your terminal.

The eesel CLI is a small tool you run in your terminal. It lets you chat with your eesel agent, pick up old conversations, see what your agent is doing, and preview scheduled reports — all without opening the dashboard.

It's free, and it talks to the same backend the dashboard does. Anything you do in the CLI uses the same agent, the same knowledge, and the same actions as your dashboard agent.

> **Who is this for?** Anyone comfortable opening a terminal window. You don't need to know how to code. Every command in this guide is meant to be copy-pasted.

## What you can do with it

* **Chat with your agent** from your terminal, just like in the dashboard.
* **Keep conversations going** across multiple terminal sessions — you can come back to the same chat later.
* **Switch between agents** if your workspace has more than one.

## Installing the CLI

The CLI lives in its own public repository at [github.com/eeselapp/eesel-cli](https://github.com/eeselapp/eesel-cli). It's a single Python file — no extra packages to install. You just need Python 3.8 or newer (most computers already have it).

### 1. Run the one-line installer

Open your terminal and paste:

```bash
curl -fsSL https://raw.githubusercontent.com/eeselapp/eesel-cli/main/install | sh
```

This downloads the `eesel` script into `~/.local/bin` and makes it ready to use. That's the whole install.

### 2. Check it works

```bash
eesel --help
```

You should see a list of commands. If your terminal says *"command not found"*, see the tips below.

### Tips and options

**Different install location.** If `~/.local/bin` isn't on your PATH, install somewhere your terminal already knows about:

```bash
EESEL_INSTALL_DIR=/usr/local/bin \
  curl -fsSL https://raw.githubusercontent.com/eeselapp/eesel-cli/main/install | sh
```

**Pin a specific version.** Useful if a teammate is on an older version and you want to match:

```bash
curl -fsSL https://raw.githubusercontent.com/eeselapp/eesel-cli/main/install | sh -s -- --version v0.1.0

# or with an environment variable
EESEL_VERSION=v0.1.0 \
  curl -fsSL https://raw.githubusercontent.com/eeselapp/eesel-cli/main/install | sh
```

**Uninstall.** Two folders to delete — the script itself and your saved data:

```bash
rm ~/.local/bin/eesel
rm -rf ~/.config/eesel
```

## Logging in

Before you can chat, you need to log in. Run:

```bash
eesel login
```

This opens [dashboard.eesel.ai/cli](https://dashboard.eesel.ai/cli) in your browser. Sign in like you normally would. The page sends your access token and a refresh token back to the CLI, and you're ready to go.

You stay logged in. When your access token expires, the CLI refreshes it silently in the background using the stored refresh token, so you don't have to do anything. You only need to run `eesel login` again if the refresh fails (for example, if you've been signed out everywhere or the refresh token has expired).

To check who you're logged in as:

```bash
eesel whoami
```

To log out and forget the token:

```bash
eesel logout
```

## Chatting with your agent

### Start a new conversation

```bash
eesel new
```

This creates a fresh chat session and makes it the "active" one.

### Send a message

```bash
eesel chat "How many open Zendesk tickets did we have last week?"
```

The agent replies right in your terminal. If it uses tools (like searching your knowledge or pulling tickets), you'll see that happen too.

### Open an interactive chat

If you'd rather have a back-and-forth without retyping `eesel chat` each time:

```bash
eesel chat
```

This drops you into an interactive prompt. Type your message, press enter, and the agent replies. Type `/quit` to leave. Inside the interactive prompt you also have a few handy shortcuts:

| Shortcut    | What it does                              |
| ----------- | ----------------------------------------- |
| `/new`      | Start a new chat session                  |
| `/sessions` | List your past sessions                   |
| `/agents`   | List agents in your workspace             |
| `/show`     | Show the full history of the current chat |
| `/quit`     | Exit                                      |

## Managing chat sessions

Each chat you have is saved as a "session" on your computer, so you can come back to it later.

```bash
eesel sessions list          # see all your past chats
eesel sessions use <id>      # switch to one
eesel sessions show          # print the full message history of the active one
eesel sessions delete <id>   # delete one
```

You don't need to type the whole session ID — the first few characters are enough.

## Switching agents

If your workspace has more than one agent (for example, a Support Agent and a Sales Agent), pick which one the CLI talks to:

```bash
eesel agents list                      # see all agents
eesel agents use 3f8a1c                # or by ID prefix
```

The first time you chat, the CLI will ask which agent to use if you haven't picked one yet.

## Where your data lives

Everything the CLI saves on your computer is in one folder:

```
~/.config/eesel/
├── credentials.json         your access token, refresh token, and expiry
├── current.json             which chat session is active
└── sessions/
    └── <id>.json            one file per chat, with the full message history
```

To wipe everything (login, sessions, history), just delete that folder:

```bash
rm -rf ~/.config/eesel
```

## Common questions

**Will using the CLI affect my real agent?** Chats you send through the CLI go to the same agent as the dashboard, so they show up in your Activity log and use your normal billing quota, just like a dashboard chat would.

**Can I share a session with a teammate?** Not directly — sessions live on your computer. But if you want a teammate to see what an agent said, you can copy the output from your terminal or use `eesel sessions show` and paste it.

**Does it work offline?** No. The CLI talks to your eesel workspace over the internet. If you lose connection mid-chat, just run the command again.

**My token expired — what do I do?** Usually nothing. The CLI refreshes your access token in the background using the stored refresh token. If a command tells you the refresh failed, run `eesel login` again to sign back in.

**Can I script with it?** Yes. Every command runs without prompting (unless it needs to pick an agent), and replies come straight to standard output. You can pipe `eesel chat "..."` into other tools.


# Overview

eesel AI uses simple, usage-based pricing so you only pay for what your agents actually do.

## Pay as you go

Every AI task your agent handles falls into one of three pricing tiers based on complexity:

| Tier    | Cost  | Examples                                                 |
| ------- | ----- | -------------------------------------------------------- |
| Light   | Free  | Dashboard chats, quick lookups                           |
| Regular | $0.40 | Helpdesk tickets (Zendesk, Freshdesk, Intercom, Gorgias) |
| Heavy   | $4.00 | Blog post generation, complex multi-step tasks           |

Each helpdesk ticket is billed once at $0.40, regardless of how many messages are in the conversation.

There are no seat limits, no per-agent fees, and no caps on integrations. You get:

* Unlimited chats
* Unlimited integrations
* Unlimited AI agents
* Only pay for what you use

## Billing limits

Every workspace has a monthly spending cap (default: $250) that you can change at any time from the **Billing** settings page.

* When your usage reaches the limit, new tasks are paused until the next billing cycle.
* You'll receive email alerts at 50%, 75%, and 100% of your limit so there are no surprises.

## Invoices

Stripe handles invoicing automatically:

* An invoice is generated every time $100 in usage accrues.
* A final invoice is generated at the end of the billing period (end of month).

## Free trial

Every new account starts with a **7-day free trial**:

* $50 of free usage included
* Full access to all features
* No credit card required
* After the trial allowance is used, tasks will pause until you add billing details

## FAQ

<details>

<summary>How is a "task" defined?</summary>

A task is one unit of work your agent performs — typically one helpdesk ticket or one skill invocation (like generating a blog post). Dashboard chats are free unless they are unusually long.

</details>

<details>

<summary>Can I change my billing limit?</summary>

Yes. Go to **Settings → Billing** and update the limit at any time. The change takes effect immediately.

</details>

<details>

<summary>What happens when I hit my billing limit?</summary>

New tasks are paused. Your agents stop picking up new tickets until the next billing cycle or until you raise the limit. In-progress tasks will finish normally.

</details>

<details>

<summary>Do I get charged for failed tasks?</summary>

No. If a task fails, any reserved cost is released and you are not charged.

</details>


# Analytics and Reports

The Home dashboard includes a Reports widget showing metrics for the last 7 days:

* Tickets processed
* Resolution rate
* $ Saved
* Avg CSAT

## Outputs

The **Outputs** tab in your agent workspace shows every conversation your agent has handled. Each conversation includes:

| Column              | What it shows                                                    |
| ------------------- | ---------------------------------------------------------------- |
| **Resolution**      | Whether the conversation was resolved without human intervention |
| **CSAT**            | Customer satisfaction rating (Great, Good, Fair, Poor)           |
| **Gap in training** | Whether the agent lacked knowledge to answer the question        |
| **Channel**         | Which integration or channel the conversation came from          |

### CSV export

You can export your conversation history and metrics as a CSV file. The export is generated and sent to your email.

### Using Outputs to improve your agent

**Look for gaps in training.** Filter by conversations flagged as having a gap — these show you exactly where you need to add more knowledge.

**Review low CSAT scores.** Conversations rated Fair or Poor highlight areas where your agent's responses need improvement.

**Check resolution rates.** A high resolution rate means your agent is handling conversations well. If it's low, review the escalated conversations to understand why.

## Reports

> Reports is coming soon. Contact us and we'll let you know as soon as it's ready.


# Team & Account Management

Manage your eesel AI workspace, team members, and account settings.

## Workspace settings

Your workspace is the top-level container for all your agents, integrations, and settings. Access workspace settings from the sidebar.

## Team members

### Inviting team members

Invite colleagues to your workspace so they can view and manage agents.

1. Go to **Settings → Members**
2. Click **Invite member**
3. Choose a role for the new member
4. Enter their email address and send the invitation

The invited person will receive an email with a link to join your workspace.

### Roles

Every member in a workspace has one of three roles:

| Role       | Description                                                                                                                                              |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Owner**  | The workspace creator. Unrestricted access, including billing and ownership transfer. One per workspace.                                                 |
| **Editor** | Full administrative access. Can manage agents, integrations, settings, members, and billing, but cannot manage workspace settings or transfer ownership. |
| **Viewer** | Read-only access. Can view agents and start conversations, but cannot make any changes to the workspace.                                                 |

#### Permissions by role

| Permission                   | Owner | Editor | Viewer |
| ---------------------------- | :---: | :----: | :----: |
| View agents and chat         |   ✓   |    ✓   |    ✓   |
| Create and edit agents       |   ✓   |    ✓   |    —   |
| Manage integrations          |   ✓   |    ✓   |    —   |
| Manage knowledge sources     |   ✓   |    ✓   |    —   |
| Access workspace settings    |   ✓   |    ✓   |    —   |
| Invite members               |   ✓   |    ✓   |    —   |
| Remove members               |   ✓   |    ✓   |    —   |
| Change member roles          |   ✓   |    ✓   |    —   |
| Manage billing and plans     |   ✓   |    ✓   |    —   |
| Manage workspace             |   ✓   |    —   |    —   |
| Transfer workspace ownership |   ✓   |    —   |    —   |

Roles are set per workspace. A user can only have one role at a time.

### Changing a member's role

Editors and Owners can change the role of any non-owner member directly from **Settings → Members**. Click the role badge next to the member's name and select a new role.

## Account settings

### Updating your email

To update your account email, please contact us.

### Changing your password

Reset your password from the login page using the "Forgot password" option.

### Deleting your account

To delete your account, please go to settings and click delete workspace. Please note you will not be able to retrieve any data or configurations once deleted.

## FAQ

<details>

<summary>Can I transfer ownership of a workspace?</summary>

Yes — the Owner can transfer ownership to any Editor from **Settings → Members**. After the transfer, the previous Owner becomes an Editor. There can only be one Owner per workspace at a time.

</details>

<details>

<summary>What is the difference between Editor and Viewer?</summary>

Editors have full administrative access — they can create and manage agents, configure integrations, invite members, change settings, and manage billing. They cannot manage workspace settings or transfer ownership. Viewers can only view agents and start conversations; they cannot make any changes to the workspace.

</details>


# Billing

Manage your subscription, view invoices, and update payment information from your account settings.

## Managing your subscription

### Viewing your current plan

Go to your workspace settings to see your current plan, billing cycle, and usage.

### Upgrading or downgrading

1. Go to your workspace settings
2. Navigate to the billing section
3. Select a new plan
4. Confirm the change

Plan changes take effect at the start of your next billing cycle. If you upgrade mid-cycle, you'll be charged the prorated difference.

### Cancelling

1. Go to your workspace settings
2. Navigate to the billing section
3. Select **View Stripe dashboard** and follow the prompts to cancel you subscription.

When you cancel:

* Your agent continues working until the end of your current billing period
* After that, your agent pauses
* Your configuration, knowledge, and settings are preserved

## Payment methods

We accept all major credit cards through Stripe. Your payment information is securely stored by Stripe — we never see or store your card details.

## Invoices

Invoices are automatically generated at the start of each billing cycle. You can view and download past invoices from your billing settings. You can update your billing address via the Stripe dashboard.

## FAQ

<details>

<summary>What happens if my payment fails?</summary>

We'll retry the payment a few times. If it continues to fail, your agent will be paused until payment is resolved. Your configuration is preserved.

</details>

<details>

<summary>Can I get a refund?</summary>

Contact us at <hi@eesel.app> to discuss refund requests.

</details>


# Security and Privacy

eesel AI takes security and privacy seriously. We're committed to protecting your data and meeting the compliance standards your organization requires.

Please review the resources below. If your questions aren't answered here, contact us.

## Resources

* [Privacy Policy and Terms](https://www.eesel.ai/privacy)
* [Trust Center](https://app.aus.vanta.com/eesel.ai/trust/5ncypy4hkv10s9yf7il8sp)
* [Cloud Service Agreement](https://3098247345-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUZKi9A4XwKvuOPgMvVMe%2Fuploads%2Fgit-blob-ddf501af856c1bfb6fc7ed615096569d5198d2f4%2Feesel%20Inc%2C%20Cloud%20Service%20Agreement%20-%20Sample%20v1%20\(1\).pdf?alt=media)

## Compliance

| Standard          | Status                          |
| ----------------- | ------------------------------- |
| **SOC 2 Type II** | In progress                     |
| **GDPR**          | Compliant                       |
| **CCPA**          | Compliant                       |
| **HIPAA**         | Not compliant — [see FAQ](#faq) |
| **BAA**           | Not compliant — [see FAQ](#faq) |

## Storing and processing data

Your knowledge sources are securely stored in a SOC 2 Type II certified vector database as embeddings (mathematical representations). These embeddings are what allow your agent to find relevant answers.

When a request is made, the agent uses embeddings to find related content and shares only specific relevant snippets with the AI model to generate a response.

* Your data is used **only** to train your agent and generate responses
* Your data is **never** used to train our underlying AI models
* Data is isolated per workspace — your content is never shared with other customers

## EU Data Residency

EU data residency is available upon request — your data will be hosted exclusively on EU servers. Our subprocessors (including OpenAI and Pinecone) are SOC 2 Type II certified for data security.

Contact us if you want to be hosted on EU servers.

## Data retention

* Your data is retained as long as your account is active
* When you disconnect an integration or delete knowledge sources, the associated data is removed
* When you cancel your account, all data is deleted after a retention period
* Custom data retention options are available — contact us with your specific requirements

## Encryption

* Data is encrypted in transit (TLS 1.2+)
* Data is encrypted at rest
* API tokens and credentials are stored using industry-standard secret management

## Access control

* Authentication via secure login (MFA available — contact us to enable)
* Role-based access control for team members (see Account Management)
* API access is scoped per integration — we request only the permissions we need

## AI model security

* eesel AI uses leading AI models (OpenAI, Anthropic, Google) to power agents
* Your data is sent to these model providers only for inference (generating responses)
* No model provider stores or trains on your data
* The AI model is never given API tokens or direct access to your integrations — it only works with a copy of the data you explicitly share
* We maintain agreements with all AI model providers to ensure data protection

## FAQ

<details>

<summary>How does eesel handle prompt injection attacks?</summary>

The AI model is never given a token or API access to look at your data via tools or any other means, so prompt injection is not possible. Each agent has a separate copy of the data and can access nothing else — this copy is maintained programmatically.

</details>

<details>

<summary>How do we ensure only certain content is shared with the agent?</summary>

The AI model is never given a token or API access to your connected tools. It only works with a copy of the data you explicitly share with the agent, and that copy is maintained programmatically.

</details>

<details>

<summary>Is eesel AI HIPAA and BAA compliant?</summary>

No, eesel AI is not HIPAA and BAA compliant. However, we work with several healthcare companies. We recommend exploring custom data retention options with us — contact us with your specific requirements.

</details>

<details>

<summary>Does eesel have indemnity insurance?</summary>

Yes. Contact us via <hi@eesel.app> or via the in-app chat for more details.

</details>

## Questions?

If you have security or compliance questions, or need to complete a security questionnaire:

* **Email:** <hi@eesel.app>
* **Support:** In-app chat

We're happy to work with your security team on assessments and provide any documentation you need.


# PII Redaction for Past Tickets

Turn on PII redaction to remove credit card numbers, SSNs, names, addresses, and more from past helpdesk tickets **before** they're persisted or indexed.

## What it does

When PII redaction is enabled, every past ticket your agent syncs is run through an AI-based detector before anything is written to the database or sent to the search index. Personally identifiable information is replaced with a typed mask like `[REDACTED:CC]` or `[REDACTED:EMAIL]`.

This means:

* Your agent **cannot** see the original PII when retrieving from past tickets
* Your stored ticket history **does not** contain the original PII
* The search index **does not** contain the original PII

The masked content still has plenty of context for the agent to learn from — only the sensitive substrings are removed.

## What gets redacted

The detector looks for fifteen categories of PII:

| Category                     | Examples                                                          |
| ---------------------------- | ----------------------------------------------------------------- |
| **Credit cards**             | `4532-1234-5678-9010`                                             |
| **Social Security Numbers**  | `123-45-6789`                                                     |
| **Date of birth**            | "DOB: 1984-07-19"                                                 |
| **Bank account / IBAN**      | `GB82 WEST 1234 5698 7654 32`                                     |
| **API keys & secrets**       | AWS keys, Stripe `sk_live_*`, OpenAI `sk-*`, GitHub `ghp_*`, etc. |
| **JSON Web Tokens**          | `eyJhbGciOi…`                                                     |
| **Email addresses**          | `customer@example.com`                                            |
| **Phone numbers**            | `+1 (415) 555-0182`, `+44 20 7946 0958`                           |
| **Person names**             | "John Smith called…"                                              |
| **Physical addresses**       | "742 Evergreen Terrace, Springfield, IL 62701"                    |
| **IP addresses**             | IPv4 and IPv6                                                     |
| **Passport numbers**         | 6–9 alphanumeric                                                  |
| **Driver's licence numbers** |                                                                   |
| **National IDs**             | Aadhaar, NHS number, etc.                                         |
| **Tax IDs**                  | EIN, VAT, etc.                                                    |

The detector knows to ignore well-known **non-PII lookalikes**, including:

* Product, brand, or company names (Salesforce, Stripe, Acme Co.)
* Test card numbers (`4242 4242 4242 4242`, `5555 5555 5555 4444`, etc.)
* Order numbers, invoice IDs, ticket IDs
* Dates that aren't introduced as birth dates

## Where it applies

PII redaction runs on **past helpdesk tickets** that are synced into your agent's knowledge for training. It is **opt-in per integration**.

| Surface                                                     | Redaction applies? |
| ----------------------------------------------------------- | ------------------ |
| Past tickets synced from your helpdesk                      | Yes, when enabled  |
| Help Center articles, macros, knowledge base pages          | No                 |
| Files uploaded to your workspace                            | No                 |
| Conversations the agent has at runtime                      | No                 |
| Tickets that were indexed **before** you enabled the toggle | No (see below)     |

## Turning redaction on or off

Today PII redaction is configurable on the **Zendesk Tickets** path-settings page. (Support for Intercom, Freshdesk, Gorgias, and HubSpot is coming.)

1. In your agent's platform view, open the connected Zendesk integration
2. Click **Tickets** in the integration's sub-menu, then open its settings
3. Scroll to the **Redact PII before indexing** toggle
4. Flip it on (or off) and click **Save Settings**

The default for new Zendesk integrations is **on**. The next time you trigger a past-tickets sync (manually, or automatically after a settings change), tickets that come in will go through the redactor.

## What this doesn't do

* **Existing indexed tickets are not retroactively redacted.** Flipping the toggle only affects tickets ingested from now on. To re-redact older tickets, trigger a fresh past-tickets sync.
* **Runtime tool calls aren't affected.** When the agent fetches a Zendesk ticket live (e.g., to draft a reply), the raw ticket content reaches the model. Redaction only runs on the persistent training corpus.
* **Non-helpdesk knowledge sources aren't affected.** Articles, files, and other sources are not run through the redactor.

## How accurate is it?

Detection runs on a fast, modern LLM (Gemini 3 Flash) with a tuned prompt and a deny-list of common false positives. In our benchmarks against synthetic support tickets the redactor catches the vast majority of obvious PII without flagging things like product names or test card numbers.

That said, no automated detector is perfect:

* A new or unusual PII format may slip through
* A name that's also a common noun may be missed
* Very long tickets may have lower recall than short ones

If you're indexing tickets that contain especially sensitive data (e.g., regulated health information), pair this feature with the usual access controls and consider clearing especially sensitive tickets from your helpdesk before sync.

## FAQ

**Does redaction slow down ticket sync?**

There's an additional \~1–2 seconds per ticket for the LLM call. Past-ticket sync is a background job, so this doesn't affect interactive operations.

**What happens if the redactor's AI service is unavailable?**

The sync **fails closed** — individual tickets that can't be redacted are skipped rather than indexed in their raw form. They'll be retried on the next sync.

**Can I see what was redacted from each ticket?**

Not in the UI today. The number and types of redactions per ticket are logged on our side so support can investigate specific cases on request — contact us.

**Do you store the original ticket content anywhere after redaction?**

No. The redacted version replaces the original before anything is persisted in our database or sent to the search index.

**Will redaction be available for Intercom, Freshdesk, Gorgias, and HubSpot?**

Yes — the underlying detector already supports those integrations. We just need to expose the toggle in each one's past-tickets settings page. Coming soon. In the meantime, the past-tickets sync on those integrations does **not** redact.

## Questions?

For security or privacy questions about PII redaction, or to request the feature on a specific integration ahead of general availability:

* **Email:** <hi@eesel.app>
* **Support:** Contact us


# FAQ

## Getting started

<details>

<summary>How do I sign up?</summary>

Go to [dashboard.eesel.ai](https://dashboard.eesel.ai/api/auth/signup) and create an account. No credit card required — you get a 7-day free trial with full access to all features.

</details>

<details>

<summary>Can I extend my free trial?</summary>

Yes. Log in to your dashboard and click **Extend Trial** to get an additional 7 days. If you need more time, contact us with the in-app chat.

</details>

<details>

<summary>How long does setup take?</summary>

Most teams get their first agent running in under 15 minutes. Training on a help center takes a few minutes, and you can start testing immediately. See our specific integration quickstart guides for step-by-step instructions.

</details>

## Agents and configuration

<details>

<summary>How many agents can I create?</summary>

The number of agents depends on your plan. See [Pricing](/pricing/overview) for details.

</details>

<details>

<summary>Can I rename my agent?</summary>

Yes. Go to your agent's Home page and update the name.

</details>

<details>

<summary>Can my agent handle multiple languages?</summary>

Yes. Agents can respond in whatever language the customer writes in. For chat widgets, you can also enable auto-translation to automatically detect and respond in the visitor's language.

</details>

<details>

<summary>Can I control which tickets my agent responds to?</summary>

Yes. You can configure trigger conditions to filter tickets, or use AI Triage to categorize tickets first and have the agent respond to specific categories.

</details>

<details>

<summary>Can the agent leave a reply and an internal note at the same time?</summary>

Yes. Configure both actions and explain in your instructions when to use each one. For example, the agent can reply to the customer and leave an internal note summarizing the resolution.

</details>

## Knowledge and training

<details>

<summary>How often is knowledge re-synced?</summary>

Knowledge sources are periodically re-synced to pick up changes. You can also manually trigger a re-sync at any time from the integration settings.

</details>

<details>

<summary>Can I train on past tickets?</summary>

Yes. Connect your helpdesk via OAuth, then select the Tickets knowledge source. You can filter by status and date range to focus on your best resolved tickets. This helps the agent match your team's tone and handling style.

</details>

<details>

<summary>What file formats can I upload?</summary>

You can upload PDFs (`.pdf`), plain text (`.txt`), markdown (`.md`), and CSV (`.csv`) files. Files must contain selectable text — scanned images in PDFs may not work.

</details>

<details>

<summary>How many pages can the website crawler index?</summary>

The crawler indexes up to 100 pages on the free trial and up to 500 pages on paid plans. Use path filters to focus on the most relevant sections of your site.

</details>

## Actions and automation

<details>

<summary>What's the difference between a public reply and a draft reply?</summary>

A **public reply** is sent directly to the customer. A **draft reply** is created in your helpdesk for your team to review and send manually. We recommend starting with draft replies until you're confident in your agent's performance.

</details>

<details>

<summary>What is Human in the Loop (HITL)?</summary>

HITL is an approval step you can add to any action. When enabled, the agent prepares its response but waits for a human to approve before sending. You can enable or disable these on the specific Triggers.

</details>

<details>

<summary>Can my agent process refunds?</summary>

Yes, if you have a [Shopify](/integrations/shopify) integration connected. We recommend enabling HITL for refund actions to ensure human review before processing.

</details>

<details>

<summary>How do I turn off a scheduled automation (like the Daily Heartbeat)?</summary>

Switch it off with its toggle in **Automations**. Once it's off, it stops running on its schedule and stops sending emails — the change takes effect from the next scheduled time. Switch it back on and it starts running on its schedule again. You can still use **Run now** on an automation that's switched off if you want to trigger it manually.

</details>

## Billing and account

<details>

<summary>What happens when my trial ends?</summary>

Your agent pauses and stops responding. Your configuration, knowledge, and settings are preserved — just pick a plan to reactivate.

</details>

<details>

<summary>Can I cancel at any time?</summary>

Yes. You can cancel your subscription at any time from your account settings. Your agent continues working until the end of the current billing period.

</details>

<details>

<summary>Do you offer annual billing?</summary>

Yes. Annual billing saves 20% — Team is $239/month and Business is $639/month when billed annually. Visit [eesel.ai/pricing](https://www.eesel.ai/pricing) for the latest pricing.

</details>

## Security

<details>

<summary>Is my data safe?</summary>

Yes. eesel AI is SOC 2 Type II certified and GDPR/CCPA compliant. Your data is encrypted in transit and at rest, never shared with other customers, and never used to train AI models. See [Security and Privacy](/security/security-and-privacy) for full details.

</details>

<details>

<summary>Is EU data residency available?</summary>

Yes. Contact us via the in-app chat to enable EU data residency for your workspace.

</details>


# Troubleshooting

Common issues and how to resolve them. If your issue isn't listed here, contact us.

## Agent not responding to tickets

**Check these in order:**

1. **Is the trigger enabled?** Go to Settings > Triggers and verify the trigger is active.
2. **Is the integration connected?** Check that your helpdesk integration shows as connected in the Integrations panel.
3. **Are webhooks configured?** Some integrations require webhooks to be set up in your helpdesk. Check the integration-specific docs.
4. **Is the agent active?** Make sure your subscription is active and the agent isn't paused.

## Agent giving wrong answers

1. **Check your knowledge sources.** Test in the chat and see which sources it's pulling from. If it's using outdated content, update the source and re-sync.
2. **Refine instructions.** Add specific rules for the scenarios where it's getting things wrong.
3. **Add more relevant knowledge.** If the agent can't find the right answer, it may need additional knowledge sources covering that topic.
4. **Train on past tickets.** If the agent's tone is off, training on your team's past tickets helps it match your style.

## Agent not using the right tone

1. **Update instructions.** Explicitly describe the tone you want: formal vs. casual, concise vs. detailed, etc.
2. **Train on past tickets.** This is the most effective way to get the agent to sound like your team.
3. **Provide examples.** Include example responses in your instructions to show exactly what you expect.

## Knowledge not syncing

1. **Check the sync status.** Look at the sidebar — it shows sync indicators for each integration.
2. **Trigger a manual re-sync.** Go to the integration settings and click re-sync.
3. **Verify permissions.** Make sure the connected account has access to the content you're trying to sync.
4. **Check connection status.** Ensure the integration is still connected (OAuth tokens can expire).

## OAuth connection failing

1. **Check permissions.** You typically need admin access in the connected tool.
2. **Clear browser cache.** Sometimes stale sessions interfere with OAuth flows.
3. **Try a different browser.** If the OAuth popup isn't loading, try a different browser.
4. **Disconnect and reconnect.** Remove the existing connection and set it up again.

## Chat widget not appearing on website

1. **Check the embed code.** Make sure the snippet is placed before the `</body>` tag.
2. **Clear your browser cache.** The widget may be cached from before you added it.
3. **Check for JavaScript errors.** Open your browser console and look for errors related to the widget.
4. **Verify the channel is active.** Make sure the channel is configured and active in your agent workspace.

## Website crawler missing pages

1. **Check robots.txt.** The crawler respects `robots.txt` — make sure it's not blocking pages.
2. **Verify pages are linked.** The crawler follows links from your starting URL. Orphan pages won't be found.
3. **Check crawl limits.** Trial accounts are limited to 100 pages, paid plans to 500. Use path filters to prioritize.
4. **Check path filters.** If you've set include/exclude filters, make sure they're not accidentally excluding the pages you want.

## Slack agent not responding

1. **Check the trigger.** Go to Settings > Triggers and verify the @eesel trigger is enabled.
2. **Verify channel access.** Make sure the agent has been added to the channel you're trying to use.
3. **Use the correct @mention.** Make sure you're mentioning `@eesel` exactly.
4. **Check knowledge sources.** The agent needs connected knowledge sources to answer questions.

## Still stuck?

If none of the above solutions work, [contact our support team](broken://pages/xI4pBiuZBsABL7CjvuwN). Include:

* What you're trying to do
* What's happening instead
* Your agent name or workspace
* Any error messages you're seeing


# Contact Us

We're here to help. Reach out through any of these channels.

## Support

**In-app chat** — The fastest way to get help. Click the support chat in your eesel AI dashboard.

**Email** — <hi@eesel.app> — We typically respond within a few hours during business hours.

## Sales

**Book a demo** — [Schedule a call](https://calendly.com/eesel/30) to see eesel AI in action and discuss your use case.

**Custom plan inquiries** — Contact us at <hi@eesel.app> for custom pricing, compliance documentation, or specific requirements.

## Resources

* [FAQ ](/support/faq)— Answers to common questions
* [Troubleshooting](/support/troubleshooting) — Solutions to common issues
* [Getting Started](/) — Setup guides and quickstarts


