# Change Integration User
Source: https://docs.irisagent.com/account-management/Change-Integration-User
Update the primary integration user or token for connecting IrisAgent to your ticketing system
## **Introduction**
The integration user of IrisAgent is used as an author for private notes and for sending replies to customers. By default, the user who first gave IrisAgent access to your ticketing system becomes the integration user.
## **Steps to change the integration user**
1. Go to the [Change Integration User](https://web.irisagent.com/manage-integration-user) page.
2. Select the platform that needs the integration user rotation.
3. When you connect your platform, sign in as the user you actually want IrisAgent to act as in your ticketing platform (for example, Zendesk). Whoever is signed in during the connection becomes the integration user.
4. Follow the instructions relevant to your selected platform.
## **Salesforce: refreshing the integration token**
If you connect IrisAgent to Salesforce, the self-serve "Change Integration User" page above does not apply. Signing in again with Salesforce will not replace your stored integration token on its own.
To rotate the integration user or refresh the token for a Salesforce connection, contact your IrisAgent point of contact or email [contact@irisagent.com](mailto:contact@irisagent.com) and ask them to add the `salesforceTokenRefresh` flag on your admin user. Once that flag is set, sign in again with Salesforce as the user you want IrisAgent to act as, and the integration token will be updated.
## **Use a dedicated user for IrisAgent activity**
We recommend connecting as a dedicated user (for example, one named "IrisAgent AI") rather than a personal account. This way, private notes and AI-generated insights are clearly attributed to that designated user, so your team immediately knows the insights are coming from IrisAgent.
# Agent Assist / Copilot App
Source: https://docs.irisagent.com/agent-copilot
AI-powered Agent Assist sidebar for Zendesk, Salesforce, Intercom, and Freshworks. Get real-time AI answers and context inside your ticketing system.
IrisAgent Agent Assist is an AI-powered sidebar that works directly inside your ticketing system. It gives support agents real-time context, AI-generated answers, and productivity tools without leaving the conversation. Agent Assist is available for Zendesk, Salesforce, Intercom, Freshworks, and other ticketing systems.
This guide covers each feature of the Agent Assist sidebar, how to use it, and tips for getting the most out of it.
***
## Search from Confluence
You can also embed the existing [AI Search widget in Confluence](/deploying-irisagent/Internal-AI-Search-on-Confluence). Paste the existing Website Search Widget deployment snippet into a JavaScript-enabled HTML macro; no IrisAgent code changes are needed for that method. If only an iFrame macro is available, use a hosted page containing the widget instead. Both methods use the same shared widget key and knowledge configuration as your AI Search deployment, with source links and follow-up questions. It does not require an additional employee sign-in or receive the current ticket's context.
## Getting Started
Once your administrator has connected IrisAgent to your ticketing system, the Agent Assist sidebar appears automatically when you open a support ticket or conversation. No additional setup is needed on the agent side.
The sidebar loads relevant AI insights for the current ticket as soon as you open it. Each section can be configured by your administrator to match your team's workflow, so the sections you see may differ from what's described below.
***
## Sidebar Features
### IrisGPT Chat
The IrisGPT chat input appears at the top of the sidebar. Think of it as having a knowledgeable coworker available to answer any question about the current ticket or your product in general.
**How to use it:**
Type a natural language question into the text field and press Enter. IrisGPT searches your knowledge base, past tickets, and connected documentation to generate an answer. Responses include links to source articles so you can verify and share them with the customer.
**Example questions:**
* "How do I reset a customer's password?"
* "What is our refund policy for annual subscriptions?"
* "Has this customer reported this issue before?"
***
### Suggested Resolution
The Suggested Resolution section shows an AI-generated answer for the current ticket, created automatically when the ticket is first loaded. IrisAgent analyzes the ticket, matches it against your knowledge base, historical tickets, and any matching [SmartOps procedures](/configuring-ai-and-automation/Workflows), and produces a ready-to-use response. When a procedure matches, the suggestion follows that procedure (including Custom API steps) instead of a free-form knowledge-base answer.
**What you'll see:**
* A formatted resolution text
* Links to the knowledge base articles and documentation that informed the answer
* **Refine** and **Send to Draft** (Zendesk) or **Insert into Email** (Salesforce)
* Thumbs up/down buttons to rate the quality of the suggestion
**Refine:** Opens a **Refine Resolution** dialog. Type how you want the answer changed (for example, "make this shorter" or "more polite") and submit. The card updates in place. Refine starts from the original suggestion, not a previous refinement.
**Send to Draft / Insert into Email:** Inserts the current resolution into the Zendesk reply editor or Salesforce Case Feed email composer so you can edit it before sending. In Salesforce, use **IrisAgent Sidebar: Inline Email** on the Case record page and keep the standard **Email** action visible in the Case Feed publisher. Draft insertion is not available on Jira Service Management.
**Tips:**
* Refine the tone or length first, then **Send to Draft** so the composer gets the version you want
* You can still copy the text if you prefer not to use the draft composer
* Rating suggestions helps IrisAgent improve over time
* If the suggestion references articles, review them for additional context the customer may need
***
### Dynamic Resolution
Dynamic Resolution generates a fresh AI answer on demand, using all comments and updates on the ticket up to the current moment. Unlike the Suggested Resolution (which is generated when the ticket first loads), Dynamic Resolution captures the full context of an ongoing conversation.
**How to use it:**
1. Click the **Get Dynamic Resolution** button in the Dynamic Resolution section
2. IrisAgent reads through all ticket comments and conversation history
3. A new resolution is generated and displayed with supporting links
4. If you've already generated one, the button changes to **Refresh Resolution** so you can regenerate it after new comments are added
5. Use **Refine** to rewrite the answer from instructions (same dialog as Suggested Resolution)
6. Use **Send to Draft** to drop the current answer into the Zendesk reply editor (Zendesk only)
**When to use Dynamic Resolution vs. Suggested Resolution:**
* **Suggested Resolution** is best for new or simple tickets where the initial question is clear
* **Dynamic Resolution** is best for tickets that have evolved through multiple back-and-forth exchanges, where the latest context matters most
***
### Case Summary
The Case Summary provides a concise, AI-generated overview of the current ticket. It distills the key points from the ticket description and any conversation history into a quick-read summary.
This is especially useful when picking up a ticket that another agent started, or when returning to a ticket after some time. Instead of reading through the entire thread, you can get up to speed in seconds.
***
### Case Priority
The Case Priority section shows a computed priority score (0-100) along with a priority label (Critical, High, Medium, or Low). It also displays how long the ticket has been open.
Use this to quickly triage your queue and identify which tickets need immediate attention.
***
### Case Sentiment
Case Sentiment uses AI to analyze the tone of the customer's messages and displays a color-coded indicator ranging from Negative to Positive. This helps you gauge the customer's mood before responding, so you can adjust your tone accordingly.
The five sentiment levels are: Negative, Moderately Negative, Neutral, Moderately Positive, and Positive.
***
### Customer Overview
The Customer Overview section gives you a snapshot of the customer behind the current ticket, including the number of open and total cases they have, their health score, and their average sentiment across all interactions.
Click **Check full details** to open the full customer profile in the IrisAgent dashboard, where you can see their complete ticket history and engagement patterns.
***
### Similar Cases
The Similar Cases section lists historically similar tickets to this ticket's domain. Each entry shows the case subject and links directly to the original ticket in your ticketing system.
This is one of the most powerful features for resolving tickets quickly. If a similar issue was resolved before, you can see exactly how it was handled and apply the same approach.
***
### Overall Search
The search bar lets you search across your entire knowledge base, past tickets, and connected issue trackers (like Jira) from one place. Type at least three characters to search.
**Results are grouped into:**
* **Articles** from your knowledge base and documentation
* **Cases** from your historical tickets
* **Issues** from your connected issue tracker (Jira, etc.)
Each result includes a title, relevance score, and a direct link.
***
### Jira / Issue Tracking
If your organization has connected Jira (or another issue tracker), this section shows Jira issues that are linked to the current ticket and AI-suggested issues that may be related.
**What you can do:**
* **View linked issues** to understand if there's an ongoing engineering effort related to this ticket
* **Link a suggested issue** to associate the ticket with an existing Jira issue
* **Create a new Jira issue** directly from the sidebar by selecting a project, issue type, and filling in a summary
This bridges the gap between support and engineering without requiring agents to switch to Jira.
Administrators can [customize the Jira issue description template and configure Jira-to-Zendesk field sync](/configuring-ai-and-automation/Jira-Integration-Settings).
***
### Macro Resolution (Zendesk only)
For Zendesk users, the Macro Resolution section shows AI-recommended macros that may apply to the current ticket. Click to apply them directly.
***
## Providing Feedback
Most sections include thumbs up and thumbs down buttons. Your feedback directly improves IrisAgent's AI accuracy over time. If a suggested resolution was helpful, give it a thumbs up. If it missed the mark, a thumbs down helps the system learn.
***
## Configuration
Administrators can configure which sections appear in the sidebar and in what order from the IrisAgent dashboard under Agent Assist settings. Sections can also be customized per agent role, so different teams can see the sections most relevant to their workflow.
For setup instructions specific to your ticketing system, see:
* [Zendesk Setup Guide](https://docs.irisagent.com/data-sources/Zendesk)
* [Intercom Integration](https://irisagent.com/intercom/)
* [Salesforce Integration](https://irisagent.com/salesforce/)
* [Freshworks Integration](https://docs.irisagent.com/data-sources/Freshworks)
* [Jira Integration](https://docs.irisagent.com/data-sources/Jira-Software-or-Service-Desk)
* [Jira Integration Settings](/configuring-ai-and-automation/Jira-Integration-Settings)
***
## FAQ
**Does the sidebar slow down my ticketing system?** No. The sidebar loads asynchronously and does not affect the performance of your ticketing platform.
**Can I hide sections I don't use?** Yes. Ask your administrator to customize the sidebar sections from the IrisAgent dashboard.
**How current is the Suggested Resolution?** The Suggested Resolution is generated when the ticket loads. For the latest context after multiple comments, use Dynamic Resolution instead.
**What data does IrisAgent use to generate answers?** IrisAgent uses your knowledge base, historical tickets, connected documentation (Confluence, Notion, etc.), integrated issue trackers, and any matching SmartOps procedures. It never uses data from other customers.
**Is my data secure?** IrisAgent is SOC 2 Type II certified and GDPR compliant. All data is encrypted at rest and in transit.
# Delete articles
Source: https://docs.irisagent.com/api-reference/delete-articles
/api-reference/openapi.json delete /v1/articles
Send a request to delete knowledge base articles for AI training via this endpoint
# Get AI answer to any query
Source: https://docs.irisagent.com/api-reference/get-ai-answer-to-any-query
/api-reference/openapi.json post /v1/irisgpt/ask
Get an AI answer to any support query using the trained information such as knowledge articles, tickets, documentation, and more.
# Get AI-powered tag
Source: https://docs.irisagent.com/api-reference/get-ai-powered-tag
/api-reference/openapi.json post /v1/tag
Get AI-powered tag(s) for a support conversation using pre-built AI models
# Get sentiment
Source: https://docs.irisagent.com/api-reference/get-sentiment
/api-reference/openapi.json post /v1/sentiment
Get AI-powered sentiment analysis for a support conversation
# Get summary
Source: https://docs.irisagent.com/api-reference/get-summary
/api-reference/openapi.json post /v1/summary
Get an AI-powered summary of your support conversation or ticket
# IrisAgent API Overview
Source: https://docs.irisagent.com/api-reference/introduction
Reference for the public IrisAgent API endpoints used to ask questions, ingest content, and retrieve tags, sentiment, and summaries
## Welcome
The IrisAgent API lets you use IrisAgent as a service from your own application.
You can power intelligent conversations and search, and index and connect your
internal and external knowledge articles, tickets, community forums, product
documentation, and other informational content.
We follow the OpenAPI specification, and the full machine-readable definition is
published alongside these docs.
View the OpenAPI specification file
## Base URL
All requests are made against:
```
https://api1.irisagent.com
```
## Authentication
All API endpoints are authenticated using Bearer tokens, which are provided by
your IrisAgent point of contact. Pass the token in the `Authorization` header on
every request:
```
Authorization: Bearer YOUR_API_KEY
```
Treat the key as a secret. Send it from your backend rather than from browser or
mobile client code, and rotate it through your IrisAgent contact if it is ever
exposed.
## What the API covers
The endpoints fall into three broad groups.
### Asking and answering
* `POST /v1/irisgpt/ask` returns a grounded answer to a customer or agent question
* `POST /v1/summary` returns a summary
* `POST /v1/feedback` records user feedback on an answer
### Classification and analysis
* `POST /v1/tag` returns an AI-generated tag for a ticket
* `POST /v1/sentiment` returns sentiment for a ticket
### Ingesting and searching content
* `POST /v1/articles` uploads knowledge articles, and `DELETE /v1/articles` removes them
* `POST /v1/cases` uploads support cases
* `POST /v1/incidents` uploads incidents
* `POST /v1/search/cases` searches across cases
* `GET /v1/community/search/articles` searches articles
Full request and response schemas for each endpoint are in the API reference
pages generated from the specification.
## Choosing the API or an integration
The API is the right choice when your content or your support workflow lives in a
system IrisAgent does not integrate with directly, or when you are embedding
IrisAgent inside your own product surface.
If your content already lives in a supported platform, a native integration is
usually less work and stays in sync automatically. See
[Ticketing System KB](/data-sources/Ticketing-Provider-KB),
[Public Websites](/data-sources/Public-Websites), and
[Custom API](/data-sources/Custom-API) for those options.
# Search articles
Source: https://docs.irisagent.com/api-reference/search-articles
/api-reference/openapi.json get /v1/community/search/articles
Search knowledge base articles for any query using AI-powered recommendation
# Search cases
Source: https://docs.irisagent.com/api-reference/search-cases
/api-reference/openapi.json post /v1/search/cases
Search support cases using AI-powered recommendation. You can provide a search query, a conversationId to load ticket content, or both.
At least one of query or conversationId must be provided. When both are provided, the ticket content is combined with the query for a richer search.
# Send user feedback
Source: https://docs.irisagent.com/api-reference/send-user-feedback
/api-reference/openapi.json post /v1/feedback
Send user or agent feedback on IrisGPT AI answers via this API. This feedback helps IrisAgent improve the quality of its responses over time.
# Upload articles
Source: https://docs.irisagent.com/api-reference/upload-articles
/api-reference/openapi.json post /v1/articles
Send knowledge base articles for AI training via this API
# Upload incidents
Source: https://docs.irisagent.com/api-reference/upload-incidents
/api-reference/openapi.json post /v1/incidents
Send engineering, devops, or statuspage incidents for AI training via this endpoint
# Upload support cases
Source: https://docs.irisagent.com/api-reference/upload-support-cases
/api-reference/openapi.json post /v1/cases
Send support cases for AI training via this API
# AI Response Style
Source: https://docs.irisagent.com/configuring-ai-and-automation/AI-Response-Style
Give the AI custom instructions for the tone, phrasing, and formatting of case responses
## **Overview**
AI Response Style lets you give the AI custom instructions for how it should respond to cases. These guidelines control tone, phrasing, and formatting, and apply to all AI-generated case responses for your account.
To configure it, open the [IrisAgent dashboard](https://web.irisagent.com), go to **Deploy** in the left navigation, and select **Cases**.
## **Setting Answer Guidelines**
1. On the **Cases** page, find the **AI Response Style** section.
2. In the **Answer Guidelines** box, describe how you want the AI to respond. You can use up to 2000 characters.
3. Click **Save Guidelines**.
Some examples of guidelines you can set:
* *"Use a friendly and empathetic tone. Begin responses with a greeting."*
* *"Avoid step-by-step instructions when a support article link can be provided instead."*
* *"Keep responses concise and avoid technical jargon."*
* *"Always close by inviting the customer to reply if they need anything else."*
Guidelines affect only the wording and presentation of the answer. They do not change which knowledge base content the AI draws from, and they will not cause the AI to fabricate information that is not in your knowledge base.
To change which knowledge base content the AI retrieves, see [Search Term Rewrites](/configuring-ai-and-automation/Search-Term-Rewrites).
If you need help configuring your AI response style, reach out by [sending us an email](mailto:contact@irisagent.com?subject=AI%20Response%20Style).
# AI for Macros
Source: https://docs.irisagent.com/configuring-ai-and-automation/AI-for-Macros
AI-recommended Zendesk macros, ranked from macros your agents actually applied on similar tickets
## Introduction
[Macros in Zendesk](https://support.zendesk.com/hc/en-us/articles/4408844187034-Creating-macros-for-repetitive-ticket-responses-and-actions) let agents apply a saved reply and a set of ticket actions in one click. As the macro list grows, picking the right one is the hard part.
IrisAgent recommends the macro to apply on a Zendesk ticket from the Copilot sidebar. Suggestions turn on automatically once Zendesk tickets are connected.
## How ranking works
1. **Audit events first.** IrisAgent reads Zendesk `MacroReference` and `AgentMacroReference` events on the tickets it already pulls. Those exact macro applications are stored on the case. Suggestions rank macros that were actually applied on similar tickets.
2. **Tags as fallback.** For older tickets that have no audit evidence, IrisAgent uses matching tags. Unique per-macro tags improve that fallback. They are not required for suggestions to run.
3. **No extra LLM call.** Macro ranking does not add a model request.
Only **active**, non-suppressed macros with enough content are candidates. On the tag fallback, the macro must have been used at least once in the last 30 days. Votes come from **solved or closed** similar cases.
## Optional: unique tags (helps historical tickets)
If you want better fallback ranking on tickets that predate audit capture:
1. Give each relevant Zendesk macro an action that adds a **unique** tag.
2. Keep that tag one-to-one with the macro.
## Turning macros off
Macro suggestions stay on by default. If you need them off for your account, ask IrisAgent support.
## Related
* [Agent Assist / Copilot](/agent-copilot)
* [Zendesk](/data-sources/Zendesk)
# Knowledge Suggestions (AutoKB)
Source: https://docs.irisagent.com/configuring-ai-and-automation/AutoKB
Automatically generate knowledge base articles from support cases and publish them to Zendesk Guide or KnowledgeOwl
## **Overview**
AutoKB uses AI to automatically generate knowledge base articles from your resolved support cases. Instead of manually writing documentation for common issues, AutoKB analyzes case data and creates draft articles that you can review, edit, and publish directly to your customer-facing knowledge base.
Key capabilities:
* **Automatic article generation** from resolved support cases
* **One-click publishing** to Zendesk Guide or KnowledgeOwl
* **Download articles** as Markdown or PDF for offline review
* **Track published articles** with direct links back to your knowledge base
## **Viewing Knowledge Suggestions**
Go to **Automate** → **Knowledge Suggestions** on the [IrisAgent dashboard](https://web.irisagent.com/autokb). You will see a table of AI-generated article drafts with the following columns:
* **Name** -- the article title
* **Source Case ID** -- the support case the article was generated from
* **Created At** -- when the article was generated
* **Published Provider** -- the knowledge base it was published to (if applicable)
* **Published Article ID** -- a link to the published article (if applicable)
Click on any article to open a preview of the full content in a side panel. You can also search articles by title using the search bar.
### **Downloading Articles**
Each article row has actions to download the content:
* **Download as Markdown** -- exports the raw markdown content
* **Download as PDF** -- generates a styled PDF version
You can also mark articles as read using the checkmark icon to keep track of which drafts you have already reviewed.
## **Publishing Articles to Your Knowledge Base**
To publish AutoKB drafts directly into your knowledge base, you first need to configure the destination, then use the publish action on individual articles.
### **Configuring Zendesk Guide**
If your ticketing system is Zendesk, you can push AutoKB articles directly into Zendesk Guide.
1. Go to the **Data Sources** page on the [IrisAgent dashboard](https://web.irisagent.com).
2. In the **Knowledge Bases** section, find the **Zendesk** card and click the **settings icon**.
3. Toggle the **Enable AutoKB** switch to on.
4. Configure the following required fields:
* **Section** -- select the Zendesk Guide section where articles will be published. This dropdown lists all available sections from your Zendesk Guide.
* **Locale** -- select the language for published articles (e.g., `en-us`). Available locales update based on the selected section.
* **User Segment** -- choose who can view the published articles (e.g., "Signed-in users" or "Staff").
* **Permission Group** -- choose which team members can manage the articles (e.g., "Admins" or "Agents and admins").
5. Click **Save** to apply the configuration.
All four fields (Section, Locale, User Segment, and Permission Group) are required when AutoKB is enabled for Zendesk Guide. If you change the section, the locale selection will reset automatically.
### **Configuring KnowledgeOwl**
If you have KnowledgeOwl connected, you can push AutoKB articles into a KnowledgeOwl project.
1. Go to the **Data Sources** page on the [IrisAgent dashboard](https://web.irisagent.com).
2. In the **Knowledge Bases** section, find the **KnowledgeOwl** card and click the **settings icon**.
3. Under the **AutoKB** section labeled "Configure project for automatic article generation":
* **Project ID** -- select or search for the KnowledgeOwl project where articles should be published. This field autocompletes from your existing KnowledgeOwl projects.
4. Click **Save** to apply the configuration.
You can also configure content ingestion settings separately in the **Ingestion** section of the same sidebar, which controls which KnowledgeOwl projects IrisAgent reads from to generate responses.
### **Publishing an Article**
Once your knowledge base destination is configured:
1. Go to **Automate** → **Knowledge Suggestions**.
2. Find the article you want to publish and click the **Publish** action on its row.
3. A dialog will appear listing your configured knowledge base providers. Select the destination.
4. The article will be published and the table will update to show the **Published Provider** and a clickable **Published Article ID** linking to the live article.
The publish option only appears for articles that have not yet been published and only if at least one knowledge base provider is configured and connected.
If you need assistance setting up AutoKB, reach out by [sending us an email](mailto:contact@irisagent.com?subject=AutoKB%20Setup).
# AutoQA: Automated Conversation Quality Assurance
Source: https://docs.irisagent.com/configuring-ai-and-automation/AutoQA
Automatically evaluate support conversations for quality, compliance, and process adherence
## **Overview**
AutoQA uses AI to automatically review and score support conversations against quality rules you define in plain English. Instead of manually auditing a sample of tickets, AutoQA evaluates every conversation and flags violations, giving you full visibility into agent and AI performance.
Key capabilities:
* **Natural language rules** -- describe what to monitor in plain English and AutoQA handles the rest
* **Automatic evaluation** -- every conversation is scored against your active rules without manual effort
* **Configurable severity** -- classify violations as Critical, Warning, or Info to prioritize what matters most
* **Conversation-level scoring** -- each conversation receives a QA score from 0 to 5
* **Detailed review reports** -- see which rules passed or failed, with explanations and flagged messages
## **Managing QA Rules**
Navigate to the **AutoQA Rules** page on the [IrisAgent dashboard](https://web.irisagent.com/auto-qa/rules). You will see a summary of your QA program at the top:
* **Active Rules** -- number of rules currently being evaluated
* **Cases Scored** -- total conversations evaluated
* **Avg Pass Rate** -- percentage of evaluations that passed across all rules
* **Rules Below 90%** -- number of rules with a pass rate under 90%, flagged as critical
Below the summary is a table of all your rules. You can filter by **All**, **Active**, or **Inactive** tabs, and use the search bar to find rules by description or category.
### **Creating a Rule**
1. Click **Create New Rule** on the AutoQA Rules page.
2. Fill in the following fields:
* **Rule Description** -- describe what you want to monitor in plain English. AutoQA will evaluate every conversation against this rule. For example: *"Flag conversations where the agent did not verify the customer's identity before making account changes."*
* **Category** -- group this rule for reporting and filtering. Options are:
* **Compliance** -- security, identity verification, data handling
* **Tone & Empathy** -- customer interaction quality
* **Resolution Quality** -- accuracy and correctness of responses
* **Process Adherence** -- procedural requirements
* **Escalation** -- escalation triggers and requirements
* **Custom** -- any other category you define
* **Severity** -- how critical is a violation of this rule:
* **Critical** -- high-impact violations that need immediate attention
* **Warning** -- moderate issues to address
* **Info** -- low-priority or informational findings
3. Click **Create Rule**.
Once created, the rule is active by default and will be applied to all new conversations.
### **Example Rules**
Here are some examples to help you write effective QA rules:
| Category | Example Rule |
| ------------------ | ---------------------------------------------------------------------------------------- |
| Compliance | Agent must verify customer identity before making any account changes |
| Tone & Empathy | Agent must maintain a professional and empathetic tone throughout the conversation |
| Process Adherence | Agent should offer a follow-up or ask if the customer needs anything else before closing |
| Resolution Quality | AI agent must not fabricate or hallucinate product features, pricing, or policies |
### **Editing a Rule**
Click the **edit icon** on any rule row, or select **Edit** from the actions menu. You can update the description, category, and severity. When editing, you will also see performance stats for the rule:
* **Pass Rate (30d)** -- percentage of conversations that passed this rule over the last 30 days
* **Cases Evaluated** -- total conversations scored against this rule
* **Status** -- whether the rule is active or inactive
* **Created by** -- the user who originally created the rule
Click **Save Changes** when done.
### **Enabling or Disabling a Rule**
Click the **actions menu** (three dots) on any rule row and select **Disable** or **Enable**. Inactive rules are not evaluated against new conversations but are preserved for future use.
### **Deleting a Rule**
Click the **actions menu** on any rule row and select **Delete**. This permanently removes the rule and its evaluation history.
## **Reviewing QA Results**
Navigate to the **QA Reviews** page on the [IrisAgent dashboard](https://web.irisagent.com/auto-qa/reviews) to see evaluation results. The summary cards at the top show:
* **Reviewed (7d)** -- total conversations reviewed in the last 7 days
* **Failures** -- number of conversations that failed at least one rule
* **Critical Failures** -- failures involving a Critical severity rule
* **Avg QA Score** -- average score across all reviewed conversations (out of 5)
### **Filtering Reviews**
Use the filter controls to narrow down results:
* **Result** -- filter by All, Pass, or Fail
* **Rule** -- filter by a specific rule
* **Severity** -- filter by Critical, Warning, or Info
* **Search** -- search by case ID, subject, or agent name
### **Review Details**
Click on any review row to expand it and see the full evaluation:
* **QA Scorecard** -- lists every rule that was evaluated, showing whether the conversation passed or failed each one. Failed rules include an explanation of the violation.
* **Conversation Excerpt** -- shows the relevant messages from the conversation. Messages that triggered a violation are highlighted so you can quickly see the problem area.
### **Understanding Scores and Pass Rates**
AutoQA uses color coding to help you quickly identify issues:
| Metric | Green | Orange | Red |
| --------- | ------------ | ---------- | --------- |
| Pass Rate | 90% or above | 75% -- 89% | Below 75% |
| QA Score | 4.0 or above | 3.0 -- 3.9 | Below 3.0 |
If you need help setting up AutoQA rules for your team, reach out by [sending us an email](mailto:contact@irisagent.com?subject=AutoQA%20Setup).
# Jira Integration Settings
Source: https://docs.irisagent.com/configuring-ai-and-automation/Jira-Integration-Settings
Customize Jira issues created from Agent Assist and sync linked Jira data into Zendesk ticket fields.
Use **Jira Integration** settings to control the Jira description that Agent Assist prefills for new issues and, if Zendesk is your ticketing system, keep Zendesk ticket fields synchronized with linked Jira issues.
These settings are available to administrators after Jira is connected. Open **Settings > Agent Assist App > Jira Integration**, then choose **Issue template** or **Field sync**.
## Customize the Jira issue template
The issue template prefills the Jira description when an agent creates an issue from the Agent Assist sidebar. Agents can review and edit the description before creating the issue.
To configure the template:
1. Open **Issue template** from the **Jira Integration** card.
2. Enter the default description for new Jira issues.
3. Insert placeholders wherever ticket context should appear:
| Placeholder | Replaced with |
| -------------------- | ---------------------------------- |
| `{{ticket_id}}` | The current support ticket ID |
| `{{ticket_subject}}` | The current support ticket subject |
4. Review the preview and select **Save**.
The template can combine placeholders with static text. It cannot be blank and can contain up to 10,000 Unicode characters. Select **Use product default** to restore the IrisAgent template.
Changing the template affects Jira issues created after you save. It does not modify existing Jira issues.
## Show linked Zendesk tickets in Jira
If Zendesk is your ticketing system, IrisAgent can maintain a list of linked Zendesk tickets directly on each Jira issue. This lets Jira users see the related support conversations without opening the Agent Assist sidebar.
Ask a Jira administrator to create these two custom fields with the exact names and types shown below:
| Jira custom field | Type | Value maintained by IrisAgent |
| --------------------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
| `Iris Zendesk Tickets` | Paragraph (supports rich text) | A bulleted list containing up to 200 ticket IDs, subjects, and links, followed by the number of remaining linked tickets |
| `Iris Zendesk Ticket Count` | Number | The number of Zendesk tickets currently linked to the Jira issue |
Add both fields to the field context and issue layouts used by the projects connected to IrisAgent. A common layout is to place **Iris Zendesk Ticket Count** in the issue details and **Iris Zendesk Tickets** in the main content area.
The resulting Jira issue can look like this:
After the Jira administrator creates and places both fields:
1. In IrisAgent, open **Settings > Agent Assist App > Jira Integration**.
2. Select **Linked tickets**.
3. Turn on **Write linked tickets to Jira** and select **Save**.
This setting is disabled by default. When enabled, IrisAgent recomputes and overwrites both fields after an agent creates a Jira issue or links an existing Jira issue from the IrisAgent sidebar. Repeating the same link does not add a duplicate ticket. Links created outside these sidebar actions appear the next time an agent creates or links a Jira issue from the sidebar; IrisAgent does not continuously poll Jira for link changes.
The numeric field always contains the total number of linked Zendesk tickets. To stay within Jira field-size limits, the rich-text field shows the first 200 tickets and then a final row with the number of additional linked tickets.
Turning the setting off stops future updates but does not clear values already written to Jira.
The Jira user connected to IrisAgent must be able to browse and edit the target issues, and both fields must be editable for the applicable issue type. IrisAgent does not create these fields automatically because creating global Jira fields requires Jira administrator access.
If either field is missing, has a different name or type, or is outside the target issue's field context, Jira linking continues to work but IrisAgent does not write the linked-ticket summary. Tickets suggested by IrisAgent are not included until an agent links them to the Jira issue.
You can use the numeric field in Jira Query Language (JQL), for example:
```text theme={null}
"Iris Zendesk Ticket Count" > 0
```
## Sync Jira fields to Zendesk
Field sync is available when Zendesk is your ticketing system. It copies selected Jira values into Zendesk ticket fields for Jira issues linked through the IrisAgent sidebar or the Zendesk Jira integration. The sync is one-way from Jira to Zendesk.
### Supported fields
You can use the following Jira source fields:
* Status
* Priority
* Issue type
* Labels
* Issue key
* Summary
You can sync them to compatible, active Zendesk custom ticket fields. You can also sync Jira values to the standard Zendesk **Status** and **Priority** fields.
Common mappings include:
| Jira source | Compatible Zendesk destinations |
| ----------- | ------------------------------- |
| Status | Status, dropdown, text |
| Priority | Priority, dropdown, text |
| Issue type | Dropdown, text |
| Labels | Multi-select, text |
| Issue key | Text |
| Summary | Text, textarea |
The destination list shows only compatible fields. Each Zendesk field can be the destination of one mapping, and the standard Status and Priority fields can each be mapped only once.
### Configure field mappings
1. Open **Field sync** from the **Jira Integration** card.
2. Turn on **Enable field sync**.
3. Select **Add mapping**.
4. Choose a Jira source field and a compatible Zendesk destination field.
5. For dropdowns and the standard Zendesk Status or Priority field, add at least one **Value mapping** from a Jira value to a Zendesk option.
6. For supported custom fields, optionally enable **Clear when Jira value is empty**.
7. Add any additional mappings and select **Save**.
For fields that require value mappings, only mapped Jira values are synchronized. If a Jira value is not mapped, IrisAgent skips that update until the Jira issue changes again. This prevents an unsupported value from being written to Zendesk.
Updating the standard Zendesk Status field can run Zendesk triggers and automations, affect SLA timing, send satisfaction surveys, or start ticket auto-close workflows. A Solved update can fail when a ticket is unassigned. Closed is not available as a destination because closing a Zendesk ticket cannot be reversed.
The standard Status and Priority fields cannot be cleared when the Jira value is empty. If your Zendesk account uses custom ticket statuses, IrisAgent uses the account's default custom status for the mapped status category.
### What happens after you save
IrisAgent starts processing Jira changes ingested after the configuration is saved. Existing linked tickets are not backfilled; their mapped Zendesk fields update the next time the linked Jira issue changes.
Updates run asynchronously after Jira changes are ingested. If a Zendesk ticket has multiple linked Jira issues, the most recently updated Jira issue supplies the synchronized value. IrisAgent skips a Zendesk update when the destination already contains the correct value.
Renaming a mapped Zendesk field does not break the mapping because IrisAgent stores the field ID. If a destination field is deleted or deactivated, update the field-sync configuration and select another destination.
## Related guides
* [Connect Jira Software](/data-sources/Jira-Software)
* [Set up Zendesk](/data-sources/Zendesk)
* [Use the Agent Assist sidebar](/agent-copilot)
# Segment Tickets and Chats by Product
Source: https://docs.irisagent.com/configuring-ai-and-automation/Product-Segmentation
Map tickets, knowledge base articles, and chatbots to specific products so each one only retrieves the knowledge that belongs to its product.
If your account supports more than one product, you usually want IrisAgent to answer a ticket using only the knowledge that belongs to that product. A billing question should pull from billing articles, a shipping question from shipping articles, and so on. Product segmentation lets you do exactly that.
It works in two halves that need to agree with each other:
1. **Article Product Classifier** tags each knowledge base article with a product.
2. **Case Product Classifier** tags each incoming ticket with a product.
When a ticket comes in, IrisAgent matches the ticket's product to articles carrying the same product, so only the relevant knowledge is considered. If you only have a single product, you can skip this entirely.
Both classifiers live in the portal under **Settings** in the **Ingestion** section. They are optional. With no configuration, every ticket can retrieve from your full knowledge base.
## How matching works
A ticket and an article are connected when they resolve to the **same product value**. The product value is just a label you choose (for example, `billing` or `shipping`). Use the same label in both classifiers so the two sides line up.
* The **Article Product Classifier** decides an article's product from its URL.
* The **Case Product Classifier** decides a ticket's product from its Zendesk brand ID, tags, keywords, or text.
Get the labels consistent across both and the right articles surface for the right tickets automatically.
## Configure the Article Product Classifier
This maps knowledge base articles to products using patterns matched against each article's URL.
1. Go to **Settings** in the portal and open the **Ingestion** section.
2. Click **Configure** on the **Article Product Classifier** card.
3. Click **Add Group** and enter a **Product Category** (the product label, for example `billing`).
4. Add one or more **URL patterns** (regular expressions) that match the article URLs for that product. For example, `^https://help\.example\.com/billing/.*`.
5. Repeat for each product, then click **Save**.
When an article URL matches a group's pattern, that article is tagged with the group's product.
## Configure the Case Product Classifier
This maps incoming tickets to products. You can use any combination of the available signals:
1. **Zendesk Brand ID** exactly matches the ticket's source brand. This option is available only when Zendesk is the connected ticket source.
2. **Tags** that were applied to the ticket at creation time (for example, a `billing` tag).
3. **Keywords** found in the ticket subject or description. Keyword matching is whole word and case insensitive, so `bill` matches `Bill` but not `billing`.
4. **Regex patterns** matched against the ticket subject and description.
To set it up:
1. Go to **Settings** in the portal and open the **Ingestion** section.
2. Click **Configure** on the **Case Product Classifier** card.
3. Click **Add Group** and enter a **Product ID** (use the same label you used in the Article Product Classifier, for example `billing`).
4. Add any combination of the signals that identify that product. For Zendesk, you can enter the numeric **Zendesk Brand ID** shown in Zendesk for that brand. Otherwise, add **Tags**, **Keywords**, or **Regex Patterns**.
5. Repeat for each product, then click **Save**.
Each Zendesk Brand ID must contain only digits and can be assigned to only one product group. IrisAgent trims spaces from the beginning and end when you save the configuration.
New mappings apply only to tickets ingested after you save the configuration. Existing tickets are not reclassified.
### Match precedence
When a ticket could match more than one product, IrisAgent decides by signal type in this order:
1. For Zendesk tickets, an exact **Zendesk Brand ID** match wins first.
2. If no brand ID matches, a **regex** match wins.
3. If no regex matches, a **keyword** match wins.
4. If none of the other signals match, a **tag** match wins.
Within regex, keyword, and tag signals, groups are evaluated in the order you arranged them, so the first matching group wins the tie. Duplicate Zendesk Brand IDs are rejected when you save the configuration.
The Case Product Classifier is config first. Once a group is configured, it fully owns how that account's tickets are assigned to products.
## Segment the chatbot by product
You can scope a chatbot to a single product so it only answers from that product's knowledge. This is set on the chatbot configuration rather than on a ticket.
1. Go to **AI Products** → **Chatbot**, click **Configure and deploy**, and select the chatbot configuration you want to scope.
2. In the **Product ID** section, enter the product label you want this chatbot to use (for example, `billing`).
3. Click **Update Configuration**.
The chatbot now retrieves only from articles that the **Article Product Classifier** tagged with that same product label.
Only set a **Product ID** on the chatbot if you have a matching product configured in the **Article Product Classifier**. The label must match exactly (a typo like `billing` versus `Billing` breaks the link). If the chatbot's Product ID does not match any classified articles, every chat returns no answer because no knowledge is in scope. Leave the field empty to let the chatbot retrieve from your full knowledge base.
## Example
A two-product account selling billing and shipping might configure:
**Article Product Classifier**
* Product Category `billing`, URL pattern `^https://help\.example\.com/billing/.*`
* Product Category `shipping`, URL pattern `^https://help\.example\.com/shipping/.*`
**Case Product Classifier**
* Product ID `billing`: Zendesk Brand ID `123456789`, keyword `invoice`, regex `(?i)\b(invoice|payment)\b`
* Product ID `shipping`: tag `shipping`, keyword `ship`
A Zendesk ticket from brand `123456789` matches `billing` before IrisAgent evaluates its text or tags. A ticket from another brand reading "my payment failed" matches the `billing` regex. In both cases, IrisAgent answers using only the billing articles.
Keep the product labels identical across the two classifiers. A typo (for example `billing` versus `Billing`) breaks the link and the ticket will not find its articles.
# Revise Chatbot Answers
Source: https://docs.irisagent.com/configuring-ai-and-automation/Revise-Chatbot-Answers
Learn how to update and refine AI answers provided by IrisGPT using the dashboard
## Revise Chatbot Answers
Train your chatbot to give better responses by revising AI answers directly from the IrisAgent dashboard. When the chatbot provides an answer that could be improved, you can update it in just a few clicks—no code required.
## Overview
The **Revise** feature allows you to:
* Review chatbot conversations in real-time
* Edit AI responses that need improvement
* Train the chatbot to provide your revised answer for similar future questions
* Maintain consistent, on-brand messaging across all customer interactions
Revised answers are applied immediately. The next time a customer asks a similar question, the chatbot will use your updated response.
## How It Works
When you revise an answer, you're creating a training rule that tells IrisGPT how to respond to specific types of questions. You can either provide a **Direct Answer** (the exact response you want) or give **Instructions for AI Agent** (guidelines for how the AI should formulate its response).
***
## Step 1: Ask a Question in the Chatbot
Start by identifying an AI response that needs improvement. You can do this by:
* Testing the chatbot yourself with sample questions
* Reviewing recent customer conversations
For example, type a question like "What is AutoKB?" into the IrisAgent chatbot and observe the response you receive.
***
## Step 2: Open the Conversations Tab
In the IrisAgent dashboard, open **Activity** → **Conversations**, where recent chatbot interactions are listed.
Locate the conversation containing the question you want to revise (e.g., "What is AutoKB?"). Click on the conversation to view the full exchange.
***
## Step 3: Open the Revise Answer View
Within the conversation detail view, you'll see the question and the AI's response. Look for the **Revise** button in the bottom-right corner of the AI answer.
Click **Revise** to open the answer editor.
***
## Step 4: Edit and Save the New Answer
You'll now see the revision editor with two tabs:
Use this option to provide the exact response you want the chatbot to give. This is best for:
* Specific factual information
* Standard responses with precise wording
* Answers that should always be consistent
Simply type your improved answer in the text editor. You can use formatting options like **bold**, *italic*, links, and lists.
Use this option to give the AI guidelines on how to respond. This is best for:
* Answers that may need slight variations
* Responses that should incorporate real-time context
* Guidelines on tone, length, or structure
**Optional:** Add training examples by entering additional query text or ticket IDs. This helps the AI recognize variations of the same question.
When you're satisfied with your changes, click **Save** to apply the revision.
***
## Step 5: Test the Updated Answer in the Chatbot
Return to the chatbot interface and ask the same question again (e.g., "What is AutoKB?").
Confirm that the chatbot now responds with exactly the revised answer you configured.
**Success!** Your chatbot is now trained to provide the improved response for this type of question.
***
## Managing Revised Answers
All your revisions are saved as training rules. To view or edit existing revisions:
1. Go to **Automate** → **Procedures** in the sidebar
2. Browse your list of training rules
3. Click any rule to edit or delete it
Regularly review your training rules to ensure they stay up-to-date with your product and policies.
***
## Best Practices
Customers prefer clear, direct answers. Aim for responses that quickly address the question without unnecessary filler.
When appropriate, link to relevant help center articles so customers can learn more.
Ensure revised answers align with your company's tone and communication style.
If customers ask the same question in different ways, add those variations as training examples to improve matching.
***
## FAQ
Revisions are applied immediately after you click Save. The next matching question will receive your updated response.
Yes. Go to **Automate** → **Procedures**, find the rule, and either edit it or delete it to restore the AI's default behavior.
**Direct Answer** provides a word-for-word response. **Instructions for AI Agent** gives the AI guidelines to formulate its own response based on your criteria.
Yes, revisions apply to IrisGPT across all deployed channels (website chatbot, help center, etc.).
***
## Related Articles
Deploy IrisGPT on your website
Create automated workflows with AI
Use AI to enhance agent macros
Automatically resolve common tickets
# Search Term Rewrites
Source: https://docs.irisagent.com/configuring-ai-and-automation/Search-Term-Rewrites
Rewrite the terms customers use so they match your knowledge base before the AI searches it
## **Overview**
Search Term Rewrites (shown as **Query Term Rewrites** in the dashboard) rewrite terms in the user's question (or case text) so they match your knowledge base before the AI searches it. This is useful when customers use abbreviations, slang, or internal shorthand that differs from the wording in your articles.
For example, if your articles use the word "account" but customers often type "acct", you can add a rule that rewrites "acct" to "account" so the right articles are retrieved.
To configure it, open the [IrisAgent dashboard](https://web.irisagent.com), go to **Deploy** in the left navigation, and select **Cases**.
Search Term Rewrites apply to **both chat and case answers**. They only affect retrieval (which articles the AI finds). They do **not** change the answer text shown to the customer.
## **Adding a Rewrite Rule**
1. On the **Cases** page, find the **Query Term Rewrites** section.
2. Check **Enable query term rewrites**.
3. Click **+ Add rule**.
4. Fill in the rule:
* **From** -- the term as the customer might type it (for example, `acct`).
* **To** -- the term your knowledge base uses (for example, `account`).
* **Whole word** -- when checked, the rule only matches the term as a complete word, not as part of a larger word. For example, with "Whole word" on, a rule for `acct` will not match inside `accts`.
* **Ignore case** -- when checked, the rule matches regardless of capitalization (so `Acct`, `ACCT`, and `acct` are all rewritten).
5. Add more rules as needed by clicking **+ Add rule** again. Remove a rule with the **×** button.
6. Click **Save Rewrites**.
Both **Whole word** and **Ignore case** are enabled by default for new rules.
## **Example Rules**
| From | To | Notes |
| ---------- | ------------------- | ------------------------------------------------------ |
| acct | account | Common abbreviation |
| pw | password | Shorthand |
| icloud | invoicecloud | Maps a misheard or shortened term to your product name |
| cancel sub | cancel subscription | Expands shorthand to match article wording |
## **Validation**
When you save, IrisAgent checks that every rule has a **From** term and that the **From** and **To** values are different. If a rule is missing a **From** term or has identical **From** and **To** values, you will see an error and the rules will not be saved.
To change the tone and wording of the answer itself (rather than what the AI retrieves), see [AI Response Style](/configuring-ai-and-automation/AI-Response-Style).
If you need help configuring search term rewrites, reach out by [sending us an email](mailto:contact@irisagent.com?subject=Search%20Term%20Rewrites).
# Ticket Deflection
Source: https://docs.irisagent.com/configuring-ai-and-automation/Ticket-Deflection
Start automating tickets using IrisAgent AI
## **Introduction**
IrisAgent provides recommended AI answers from knowledge base and past tickets that can be used to automatically reply to incoming tickets without waiting for the agent. This reduces the time to respond to tickets and improves customer satisfaction.\
\
The AI answers in the "Suggested Resolution" widget that you see on the IrisAgent app within your ticketing system are the same answers that are sent out to customers automatically. The answers are generated by our AI models that are trained on your knowledge base and past tickets.
## **Set up Ticket Deflection**
### **Set up Ticket Deflection on All Tickets**
\
We recommend using this feature carefully as all tickets that have an AI answer will get an auto-response. Please see the recommended way to set up deflection on specific tickets below.\
\
On our dashboard, go to **Automate** → **Case Triggers**, and toggle on the **Enable Case Deflection** switch to enable this feature.\
\
You can disable this feature anytime using the same switch.
Once enabled, you can review all the tickets that received an AI auto-response and the associated deflection metrics by clicking on the new trigger that was created automatically called **System: Case Deflection**.
### **Set up Ticket Deflection on Specific Tickets**
\
This is our recommended option to enable ticket deflection safely on a specific type of tickets.
1. On our dashboard, go to **Automate** → **Case Triggers**, and click **Create New Trigger**.
2. Add the conditions that you want to trigger the deflection from the right panel on **Conditions**. For example, you can add a condition to trigger deflection only when the ticket has a particular tag or contains certain keywords.
3. Add the action **Auto-respond to customer** from the **Actions** panel on the right.
4. Add the text `{{irisgpt.case.answer}}` in the text box. This will automatically insert the AI answer generated by IrisAgent. You can add other text before or after this tag.
5. Give a name to this trigger on the top by clicking on the pencil icon
6. Click on **Add New Trigger** to save the trigger.
Once enabled, you can review all the tickets that received an AI auto-response and the associated deflection metrics by clicking on the this trigger that you created.\
\
Feel free to [email us](mailto:contact@irisagent.com) if you encounter any issues or require assistance with product onboarding.
# Ticket Sentiment
Source: https://docs.irisagent.com/configuring-ai-and-automation/Ticket-Sentiment
Guide to using AI based sentiment analysis of support tickets
## **Introduction**
\
IrisAgent provides AI-powered sentiment analysis for actionable ticket sentiment and voice of customer. Our AI Sentiment Analysis solution provides instant visibility into the emotional tone of customer interactions.\
\
Leveraging advanced natural language processing algorithms, machine learning, and opinion mining, our solution can identify positive or negative sentiment as they unfold, allowing your support team to respond promptly to customer needs. It adeptly identifies positive and negative sentiments in text data from customer interactions, offering insights that can drive product improvements and enhance customer satisfaction.
## **Leveraging Ticket Sentiment in IrisAgent**
### **View Ticket Sentiment on the Agent Copilot Sidebar app**
\
Ticket Sentiment will be shown for all tickets in the agent copilot sidebar app that you install in your ticketing systems, like Zendesk, Salesforce, etc. The sentiment score can be any of the following: Positive, Moderate Positive, Neutral, Moderate Negative, or Negative. We allow fine-grained access control, so if you'd like to hide ticket sentiment widget for any agents, please let us know.
### **View Ticket Sentiment on IrisAgent Dashboard for Top N Tickets**
\
Navigate to the \*\*Needs Attention \*\*page on our dashboard. On the \*\*Cases that need attention \*\*table, you can see the sentiment score and overall priority score for the top N problematic tickets. You can sort the tickets based on sentiment score to prioritize the tickets that need immediate attention.
### **Write Ticket Sentiment to your Ticketing System**
\
For easier access to sentiment data, you can write the sentiment score to the tags field your ticketing system. This will help your agents to understand the customer's sentiment without having to navigate to the IrisAgent dashboard.
1. Go to **Automate** → **Case Triggers** on the IrisAgent dashboard.
2. Click on **Create New Trigger** button.
3. Select a specific condition or add **Ticket Content** condition with empty value to enable for all tickets.
4. Under **Actions**, select **Write custom tag** action.
5. Enter the tag name as ticket sentiment (in double curly brackets) in the text box.
6. Click on **Add New Trigger** button.
This will start writing the numerical value of Sentiment Score (between -100 and 100) to the "Tags" field in your ticketing system.\
\
Feel free to [email us](mailto:contact@irisagent.com) if you encounter any issues or require assistance with product onboarding.
# Ticket Tagging
Source: https://docs.irisagent.com/configuring-ai-and-automation/Ticket-Tagging
Automate ticket tagging to remove manual work and get rich analytics
Check out this video for a quick overview of setting up automations on IrisAgent.
## Set up automated tagging
Manual ticket classification is time-consuming and inconsistent. IrisAgent can classify incoming tickets from plain-language procedures, write procedure tags back to your ticketing system, and populate custom fields such as Module, Component, Issue Type, or any other field your team uses.
There are three complementary ways to automate classification: fully automated trend detection, existing rule-based tags, and procedure-based AI classifications.
### Fully automated
This is enabled by default. IrisAgent automatically predicts tags for incoming tickets based on historical data and trends from your ticketing system. No additional setup is required. You will start seeing tags under the Categories page on the [IrisAgent dashboard](https://web.irisagent.com/overview).
### Existing rule-based tags
Existing regex or rule-based ticket classifications continue to use their configured ticket-tag behavior. Procedure-based classifications can run alongside them.
### Procedure-based AI classifications
Create a procedure for every value that IrisAgent should classify. For example, `EMR` can be a procedure in the `Module` classification group, while `ePrescribe` can be a procedure in the `Component` group.
1. Go to **Automate** → **Procedures** on the [IrisAgent dashboard](https://web.irisagent.com/automation/categories).
2. Create a procedure or edit an existing one.
3. Enter a clear procedure name, scenario, and representative training examples.
4. Open the scenario settings and turn on **Use as an AI classification**.
5. Optionally enter a **Classification group (tagField)**, such as `Module`, `Component`, or `Issue Type`.
6. Set the procedure status to **Enabled**, then save it.
An eligible procedure is one that is enabled and has **Use as an AI classification** turned on. IrisAgent writes the matched procedure name as the ticket tag by default. You do not need to create a separate tag mapping when the ticket tag should have the same value as the procedure name.
Procedure-level filters still determine which tickets are eligible. For example, product, channel, chatbot, or other procedure filters apply before classification writeback.
## Classification groups
A classification group tells IrisAgent which procedures are alternatives within the same field. IrisAgent evaluates different groups in parallel and returns at most one matching procedure from each group.
For example:
| Classification group | Procedures |
| -------------------- | --------------------------------- |
| Module | EMR, Billing, Scheduling |
| Component | ePrescribe, Patient Chart, Claims |
| Issue Type | Bug, Configuration, How-to |
A ticket can therefore receive one Module, one Component, and one Issue Type classification at the same time. Procedures without a classification group remain available as ungrouped classifications.
## Write classifications to custom fields or alternate tags
Use classification output mappings when the destination value differs from the procedure name or when the result should populate a ticket custom field.
1. Go to **Settings** → **Ingestion** → **AI Classification Writeback**.
2. Click **Add mapping**.
3. Select an enabled classification procedure. Its classification group is filled automatically.
4. Configure one or both destination types:
* Under **Ticket tags**, click **Add tag** to write an additional or provider-specific tag. The original procedure tag is still written automatically.
* Under **Custom fields**, click **Add field**, then enter the ticketing-system field name or stable field ID and the value to write.
5. Select a write policy for each destination, then save.
Available write policies are:
* **Only if empty**: writes only when IrisAgent can confirm the destination is empty. If the field was not ingested and its current value cannot be verified, IrisAgent leaves it unchanged.
* **Always replace**: writes the configured value even when the destination already contains a value.
* **Preview only**: records what IrisAgent would write without changing the ticketing system.
Each mapping can contain multiple ticket-tag and custom-field destinations. A procedure does not need a mapping when its only output is the default same-name ticket tag.
AI classification writeback is activated per account. If you have configured eligible procedures but do not see values written to your ticketing system, contact IrisAgent Support to confirm activation and provider-field access.
# Workflows
Source: https://docs.irisagent.com/configuring-ai-and-automation/Workflows
Set up automated workflows using plain English or drag and drop interface to automate manual tasks and processes
### Create Workflows or Procedures using plain English
Plain-English procedures power IrisAgent's **AI Agent and Agent Assist**. The same procedures run for chat, voice, ticket auto-respond, and the copilot sidebar (Suggested Resolution and Dynamic Resolution). This is the fastest way to automate customer conversations and agent replies without building flowcharts or writing code.
**Procedures take precedence over answers from your trained knowledge base.** When a query matches a procedure's scenario, the AI Agent and Agent Assist follow the procedure's steps instead of generating a free-form answer from trained articles or past tickets. Use procedures whenever you want to enforce a specific flow (e.g. collect required fields, call an API, or hand off to a team).
You can [configure standard operating procedures by describing them in plain English](https://irisagent.com/smart-operating-procedures/) — also called **SmartOps**. Instead of designing a rigid decision tree, you simply describe the scenario and the steps the AI Agent should take, and IrisAgent trains a model to automatically recognize when the scenario applies and execute the workflow end-to-end.
**Common use cases:**
* **Order status lookups:** "When a customer asks about the status of their order, collect their order ID and look it up using the Order Status API."
* **Refund and cancellation handling:** "If a customer requests a refund, verify the order is within the 30-day window, confirm the reason, and create a refund ticket in Zendesk."
* **Password reset and account unlocks:** "When a user says they are locked out, verify their email, trigger a password reset link, and confirm once it has been sent."
* **Subscription upgrades or downgrades:** "If a customer wants to change their plan, confirm the new tier, check eligibility, and hand off to billing if manual approval is needed."
* **Appointment scheduling:** "When a customer asks to book a demo, collect their preferred date, time, and timezone, then create the calendar event."
* **Troubleshooting known issues:** "If the customer reports login errors on the mobile app, ask for their app version and OS, then walk them through the standard fix."
**To create a plain-English procedure:**
1. Go to **Automate** → **Procedures** on the [IrisAgent dashboard](https://web.irisagent.com/automation/categories) and click **Create New Procedure / Q\&A**.
2. Enter the **name**, a **short scenario description** (when the AI Agent should trigger this procedure), and the **actions** the AI Agent should take (the steps, questions to ask, and any APIs or systems to call). Click on **Save**.
Write scenario descriptions the way you would brief a new agent — focus on the customer intent ("when a customer asks about…") rather than exact phrasing. IrisAgent's AI handles the wording variations, so you don't need to list every possible way a customer might phrase the request.
### Author the fields the AI should collect
The procedure editor has an **Information to collect** list. That is how you author the required fields the AI asks for, one at a time, before it calls an API or continues the steps.
* Add, reorder, or remove fields. Labels become stable snake\_case keys.
* The list applies only to **Instructions for AI Agent** procedures (order ID, email, reason). A **Direct Answer** never interviews the customer, and the editor is hidden for that type.
Custom API placeholders like `{{orderId}}` are still collected automatically if you do not list them here. Authoring the list is how you control the questions and their order.
### Scope a procedure to a product and a channel
On the same procedure:
* **Product ID (optional)** pins the procedure to one or more products. Separate multiple product IDs with commas. When a case or chat has a product scope, IrisAgent serves procedures that share any of those product IDs, plus every unscoped procedure. A case or chat with no product runs every procedure, scoped or not. Leave the field empty to run for all products.
* The Procedures table **filters by channel**: Chat, Email, and Voice, with per-channel counts. A procedure with no channel scope runs on every channel. **Agent Assist uses the Email channel** (the copilot sidebar is served as email). Unchecking Email to keep a procedure out of ticket auto-replies also removes it from the agent sidebar.
**Ticket Agent can prefill the product.** When you create a procedure from a Support Analyst recommendation, the Product ID field is filled from the source tickets so you do not retype it.
### Create Zendesk tickets from a procedure
The built-in **Create Zendesk ticket** action creates a ticket in your connected Zendesk account using the information collected during the procedure. It is available automatically when Zendesk is your account's active ticketing provider. You do not need to create a Custom API, configure an endpoint, or add separate credentials.
#### Add the ticket action
1. Open or create a procedure under **Automate → Procedures**.
2. In **Availability**, choose the channels that should use it. For inbound calls, select **Voice** and **Inbound** under **Voice calls**.
3. Choose **Instructions for AI Agent** in the **Action** section. Do not use **Direct Answer** for a procedure that needs follow-up questions or action execution.
4. Add the fields you need to **Information to collect**. For a callback request, for example, add **Caller name**, **Caller email**, **Caller phone**, and **Issue summary**. Add other business-specific fields as needed and put them in the order you want the AI to ask for them.
5. Place the cursor at the appropriate step in your instructions. Under **Actions → Connected actions**, click **Create Zendesk ticket**. This inserts `{{Create Zendesk ticket}}` into the instructions.
6. Describe when to run the action and what the AI should do after it succeeds. The action can be a step in the conversation; it is not limited to the end of a procedure.
7. Set **Status** to **Enabled** and save the procedure before testing it.
The built-in action does not impose a fixed list of required fields. Your procedure defines what to collect. If the action is missing, ask an administrator to verify that Zendesk is the active ticketing provider for your account.
#### What goes into the ticket
| Ticket value | How it is populated |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Requester name** | From **Caller name**, **Requester name**, **Customer name**, **Full name**, or **Name**, in that order. Defaults to `IrisAgent customer` if none is collected. |
| **Requester email** | From **Caller email**, **Requester email**, **Customer email**, **Email address**, or **Email**, in that order. |
| **Subject** | From **Ticket subject**, **Issue summary**, **Subject**, **Summary**, or **Reason**, in that order. Otherwise, it uses `Customer request from` followed by the requester name. |
| **Description** | Every non-empty field collected by the procedure, with its label and value. |
Field labels are normalized to keys such as `caller_email` and `issue_summary`. Use one of the recognized labels above when you want a value to populate the requester or subject. Other collected values, such as account number or service address, are included in the description.
Add **Caller email** or another recognized email field if the ticket needs the customer's email address. The action uses the email collected by the procedure; it does not substitute the connected administrator's email when that value is missing.
Collected fields are not automatically mapped to Zendesk custom ticket fields, and the action does not automatically attach the full conversation transcript. If you need custom-field IDs or a different ticket payload, use a [Custom API](/data-sources/Custom-API) action instead.
After a successful call, the action returns `status: created` and `ticket_id`. Later instructions can use that result to confirm creation and share the ticket number. Only tell the customer that a ticket was created after the action succeeds.
#### Example: collect a request for follow-up
Add **Caller name**, **Caller email**, **Caller phone**, and **Issue summary** to **Information to collect**, then use instructions such as:
```text theme={null}
1. Greet the caller and explain that you can record their request for the support team.
2. Collect the listed information one item at a time. Reuse information the caller has already provided.
3. Confirm the issue summary and callback details with the caller.
4. Run {{Create Zendesk ticket}} with the collected information.
5. If creation succeeds, give the caller the returned ticket number and explain the team's follow-up process.
6. If creation fails, do not claim that a ticket was created. Explain the problem and offer the configured alternative contact method.
```
To create a ticket only when a human is needed, put the action inside that condition in the instructions. If you also want a live handoff, run the ticket action first, then use **Escalate to human**. That button inserts the plain keyword `escalate`, without curly brackets.
Ticket creation and escalation are separate actions. Creating a ticket does not automatically transfer a call, and `escalate` does not automatically run **Create Zendesk ticket**. For phone handoff, also configure [Voice AI call transfer](/deploying-irisagent/Voice-AI#transfer-calls-to-a-human).
#### Verify the ticket flow
Save the procedure with **Status: Enabled**, then start a conversation on a selected channel using the scenario you defined. Confirm that the AI collects the requested fields, runs the action at the intended step, and only reports success after creation. Open the resulting ticket in Zendesk and check its requester, subject, and description. A test that reaches this action creates a real ticket in the connected account; use appropriate test details.
### Using Custom APIs in plain-English procedures
IrisAgent can call your own external APIs mid-conversation to look up live data — such as order status, account tier, or subscription details — and present the result to the customer in natural language, without any agent involvement.
**How it works:**
1. A customer asks a question that requires real-time data (e.g. "What is the status of my order?").
2. IrisAgent's AI identifies the relevant workflow and determines what information it needs to collect (e.g. the order number).
3. The AI asks the customer follow-up questions, one at a time, until it has all required fields.
4. IrisAgent automatically calls your configured API with the collected data and the ticket's context.
5. The API response is handed back to the AI, which formats it into a natural-language answer for the customer.
**Prerequisites:** You must first configure the API under [Custom APIs](/data-sources/Custom-API). During setup, any `{{variableName}}` placeholder you add to the URL or request body that is not a built-in ticket variable (e.g. `{{orderId}}`, `{{email}}`) is automatically treated as a field to collect from the customer.
**Example:** A SmartOp for order status lookup might be described as:
> "When a customer asks about the status of their order, collect their order ID and look it up using the Order Status API."
IrisAgent maps "Order Status API" to the configured Custom API, collects `{{orderId}}` from the customer, calls the endpoint, and replies with the result — all without leaving the chat.
### Create Workflows using drag and drop interface (only for cases)
This workflow builder applies to **cases (tickets)** only. For chat, voice, ticket auto-respond, and agent assist, use the plain-English procedures described above.
Agents and supervisors spend manual effort in triaging and resolving cases that may already be known or solved previously. IrisAgent solves this with automated case workflows built on AI-powered tagging, AI-based answers to known issues, and configurable actions for ticket assignment and notifications. Using the drag and drop trigger builder, you can combine any number of **Conditions** (such as AI category, AI sentiment, keywords in the subject or description, priority, channel, or customer attributes) with **Actions** (such as assigning to a team, adding tags, setting priority, posting an internal note, or sending a notification) — no code required.
**Common use cases:**
* **Auto-tagging cases by AI category:** Automatically apply tags like `billing`, `refund`, or `outage` when IrisAgent's AI classifies an incoming case, so reports and views stay consistent without agent effort.
* **Routing based on AI categories or keywords:** Send all cases tagged as `billing` to the Finance queue, or route any case mentioning "cancel my subscription" to a retention specialist.
* **Priority escalation:** Automatically set priority to **Urgent** and notify a supervisor on Slack when a case is classified as an `outage` or contains churn-risk language.
* **Known-issue auto-response:** When a case matches a known issue (e.g. a recurring bug), post IrisAgent's AI-generated answer as a private note so the agent can reply in one click.
* **VIP handling:** Route cases from enterprise or high-ARR customers to a dedicated team and add a "VIP" tag.
* **Sentiment-based escalation:** Flag cases with negative sentiment for supervisor review or auto-assign them to a senior agent.
**To create a new case workflow:**
1. Go to **Automate** → **Case Triggers** on the [IrisAgent dashboard](https://web.irisagent.com/triggers) and click **Create New Trigger**.
2. Drag and drop any number of **Conditions** (e.g. AI category equals `billing`, subject contains `refund`) and **Actions** (e.g. assign to team, add tag, set priority, send notification) into your trigger. Conditions are evaluated with AND logic, so the trigger fires only when all conditions are met.
3. Give your trigger a name by clicking on the pencil icon.
4. Click on the **Add New Trigger** button to save the trigger. The workflow will start running on new incoming cases immediately.
Start with a narrow condition set (for example, one AI category plus one keyword) and review the first few cases it fires on before broadening the rule. This helps you validate the behavior without mis-routing a large volume of cases.
## Enable AI insights as a private note in your ticketing system
\
You can show IrisAgent's AI insights as a private note on tickets so that it's front and center for your agents.
1. Go to **Automate** → **Case Triggers** on the [IrisAgent dashboard](https://web.irisagent.com/triggers).
2. Enable or disable the toggle on the top for Private Note
3. Click on the gear icon on the Private Note card to select/unselect the AI insights you'd like to show as a private note.
Feel free to [email us](mailto:contact@irisagent.com) if you encounter any issues or require assistance with product onboarding.
# Confluence
Source: https://docs.irisagent.com/data-sources/Confluence
IrisAgent Installation Guide for Confuence to sync your knowledge content. Please note that the steps to connect with Confluence and Jira Software are the same, just the scope of the token provided below are different.
## **Introduction**
\
IrisAgent provides AI-powered answers to support tickets from internal knowledge base in Confluence using the Atlassian Confluence integration.
## **Connect with Atlassian**
1. Login to the [IrisAgent dashboard](https://web.irisagent.com/). This step assumes that you have already connected IrisAgent to your ticketing provider.
2. Click on **Manage Integrations** option on the bottom left menu.
3. If you are using Atlassian cloud instance, click on **Connect with Atlassian/Jira Cloud**. Else, if you are using Atlassian on-prem instance, click on **Connect with Atlassian/Jira Server**. Give the OAuth permissions and click on Allow. This will automatically connect IrisAgent with Jira and Confluence.
* If you are connecting with Atlassian Cloud, a follow-on page will show up that asks for the Atlassian cloud token, email address, and base URL. Here are [the steps to create the token](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/).
* If you are connecting with Atlassian Server, a follow-on page will show up that asks for the Atlassian server token and base URL. Here are [the steps to create the token](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/).
## Selecting certain Confluence Spaces
1. When creating the token in the step above, ensure you only give permissions to the relevant projects.
2. After you connect with your Atlassian account, the Atlassian tile on the "Manage Integrations" page should as connected. Click on the Settings gear icon. This is show a side panel where you can select/deselect which projects you want IrisAgent to have access to.
## **Details on IrisAgent's Atlassian Connection**
IrisAgent only ingests data from Atlassian from the last 3 months (can be configured). It make POST and GET API calls to fetch data while ensuring that the Atlassian's rate limits are not exceeded. The frequency of API call can be configured based on customer's preference.
### **Permissions of the Atlassian Token**
The Atlassian token generated by a user has the same access level as that user’s permissions within jira. It is recommended that a service user be created and that user’s token be entered in the IrisAgent dashboard, so that permissions can be easily granted/revoked as and when new functionality is introduced.
### **OAuth permissions needed for Confluence**
IrisAgent uses this integration to automatically suggest articles and resolutions from Confluence that match a new support case and assist both support reps and customers in finding faster resolutions. The token needs to have the following permissions in Confluence:
1. Read all blogs
2. Read all pages
### **Granting Access only to either Jira/Confluence**
1. Create a service user who has access only to the feature you want to use. E.g. : A service user with access restricted only to Confluence.
2. If the service user has access to one of Jira/conlfluence, please ensure that all permissions required within that section are met.
3. Generate a token for this service user and follow the same connection procedure by visiting the “Manage Integrations” section as mentioned above.s
### **Data Governance and Security**
Data between customer environments and IrisAgent’s systems is always encrypted at rest and during transmission, authenticated at each endpoint, monitored for integrity, and protected by enterprise-grade security protocols and operational best practices.
* IrisAgent removes PII data and does not store any PII data on our servers.
* Data is encrypted in transit and at rest. IrisAgent uses industry-standard encryption protocols to ensure that your data is secure.
* You can ensure that the integration with Atlassian is only for specific projects and spaces, so that no data is shared outside of the scope of your support operations.
* IrisAgent only ingests data from Atlassian from the last 3 months (can be configured). It makes API calls safely to fetch data while ensuring that the Atlassian's rate limits are not exceeded. The frequency of API call can be configured based on customer's preference.
* IrisAgent does not share any data with third parties.
* IrisAgent is SOC 2 Type II compliant and GDPR compliant.
# Custom APIs
Source: https://docs.irisagent.com/data-sources/Custom-API
Connect any external HTTP API to IrisAgent so it can fetch live data and use it as a trigger condition or AI workflow step
## Overview
Custom APIs let you connect IrisAgent to any external HTTP endpoint — your internal systems, third-party services, or data warehouses. Once configured, a Custom API can be used in two ways:
* **As a trigger condition** in the drag-and-drop Workflows builder (e.g., "only run this automation if the customer is on the Premium plan")
* **As a live data source** in AI-powered FAQ workflows, where IrisAgent collects required fields from the customer, calls your API, and presents the response in natural language
***
To create a Zendesk ticket with information collected by a procedure, use the built-in [Create Zendesk ticket action](/configuring-ai-and-automation/Workflows#create-zendesk-tickets-from-a-procedure). It appears automatically when Zendesk is your active ticketing provider and uses your existing connection. You only need a Custom API if you require a different payload, such as mapping values to Zendesk custom ticket fields.
## Step 1: Open the Custom APIs configuration
1. Log in to the [IrisAgent dashboard](https://web.irisagent.com/).
2. Click on **Data Sources** in the left navigation.
3. Scroll to the **Development** section and click **Configure** on the **Custom APIs** card.
This opens a side panel with two tabs: **APIs** and **Credentials**.
***
## Step 2: Add a credential (if your API requires authentication)
Skip this step if your API is publicly accessible or uses URL-based tokens.
1. In the side panel, click the **Credentials** tab.
2. Click **Add Credential**.
3. Fill in the fields:
| Field | Description |
| ------------------- | ------------------------------------------------------------ |
| **Credential Name** | A human-readable label, e.g. `Production Bearer Token` |
| **Header Name** | The HTTP header to send, e.g. `Authorization` or `X-API-Key` |
| **Header Value** | The secret value, e.g. `Bearer sk-abc123` |
4. Click **Create & Select**.
Credential values are stored securely and cannot be viewed after saving. Store them in a safe location before saving.
***
## Step 3: Create a Custom API
1. Click the **APIs** tab and then **Add API**.
2. Fill in the **Create Custom API** form:
### Basic information
| Field | Description |
| ------------------ | ---------------------------------------------------------------------------------- |
| **Name** | A descriptive name shown in the trigger builder, e.g. `Customer Premium Check API` |
| **API Credential** | Select a credential from Step 2, or leave as *None* for unauthenticated requests |
### HTTP configuration
| Field | Description |
| ---------------- | ---------------------------------------------------------------------------------- |
| **Method** | `GET`, `POST`, `PUT`, or `DELETE` |
| **URL** | The full endpoint URL. Supports template variables (see below) |
| **Headers** | Any additional headers beyond the credential. Add as many key/value rows as needed |
| **Request Body** | Available for `POST` and `PUT` methods. Supports template variables |
### Template variables
Use `{{variableName}}` placeholders in the URL, headers, or body to inject live ticket context at call time. IrisAgent automatically substitutes these before making the request.
**Built-in variables (always available):**
| Variable | Value injected |
| --------------- | ------------------------------------------------- |
| `{{ticketId}}` | The unique identifier of the ticket |
| `{{priority}}` | The priority level of the ticket |
| `{{status}}` | The current status of the ticket |
| `{{subject}}` | The subject line of the ticket |
| `{{accountId}}` | The account/company ID associated with the ticket |
**Example URL using a built-in variable:**
```text theme={null}
https://api.yourcompany.com/customers/check?ticketId={{ticketId}}&accountId={{accountId}}
```
**Custom variables** — for FAQ workflows that collect information from the customer (such as an order number or email address), you can define your own placeholder names:
```text theme={null}
https://api.yourcompany.com/orders/{{orderId}}
```
IrisAgent will automatically detect `{{orderId}}` as a field it needs to collect from the customer before calling the API.
### Response schema
Define the fields you expect back from your API. This tells IrisAgent how to interpret the response.
1. Click **Add Field**.
2. For each field, set:
* **Field name** — matches the JSON key in the response, e.g. `isPremium`
* **Field type** — `String`, `Boolean`, `Integer`, or `Float`
3. Add one field per value you want to use in an expression or surface to the customer.
**Example** — for a response like `{"isPremium": true, "tier": "enterprise"}`:
* Field `isPremium` → Boolean
* Field `tier` → String
### Expression
Write a condition that evaluates the API response. IrisAgent uses this expression to determine the trigger result.
Access response fields using `response.fieldName`:
```text theme={null}
response.isPremium == true && response.tier == "enterprise"
```
Set the **Return Type** to match what your expression evaluates to (`Boolean`, `String`, `Integer`, or `Float`).
### Prerequisite (optional): run another API first
Some workflows need to call one API and then feed its result into a second call. A common case: HubSpot requires a contact's record ID to link it to a ticket, so you have to create or look up the contact **before** creating the ticket.
The **Prerequisite** section, at the bottom of the form, lets this Custom API run another Custom API first and reuse its result:
| Field | Description |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Run this action first** | Select another Custom API to run before this one. Its Expression result is captured. Leave as *None* to disable chaining |
| **Store its result as** | A variable name (letters, numbers, and underscores). The prerequisite's result becomes available to this API as `{{yourName}}` in the URL, headers, and body |
At call time IrisAgent runs the prerequisite first, evaluates its Expression, and injects the value under the name you chose. You then reference it like any other template variable, for example `{{contactId}}`.
The injected value comes from the prerequisite API's own **Expression**, so make sure that API's Expression returns the single value you want (for example, the new record's `id`). The prerequisite dropdown never lists the API you are currently editing, so an API cannot depend on itself.
3. Click **Create API** to save.
***
## Step 4: Test your API
After saving, reopen the API in edit mode to use the built-in test tool.
1. Click the **edit icon** next to your API in the table.
2. Expand the **Test API** section.
3. Enter sample values for each template variable (built-in and custom).
4. Click **Run Test**.
IrisAgent will call your API with the provided values and show:
* The expression result
* The execution time in milliseconds
* Any error message if the call failed
Iterate on the URL, expression, or schema until the test returns the expected result.
***
## Example: chain two APIs to link a HubSpot Contact to a ticket
When a chatbot handoff creates a HubSpot ticket, HubSpot will not automatically link the person to it just because their email appears in the ticket text. To show up under the ticket's **Contacts** panel, the ticket has to be created with an association to the contact's record ID. That takes two calls: first resolve the contact, then create the ticket linked to it. Use a **Prerequisite** to chain them.
### API 1: Upsert HubSpot contact
This creates the contact if it is new, or returns the existing one, and outputs its ID.
| Field | Value |
| ------------------ | --------------------------------------------------------------------------------------------------- |
| **Name** | `Upsert Hubspot contact` |
| **API Credential** | Your HubSpot credential (the private app token must include the `crm.objects.contacts.write` scope) |
| **Method** | `POST` |
| **URL** | `https://api.hubapi.com/crm/v3/objects/contacts/batch/upsert` |
| **Request Body** | see below |
| **Expression** | `response.results[0].id` |
| **Return Type** | `String` |
Request body:
```json theme={null}
{
"inputs": [
{
"idProperty": "email",
"id": "{{email}}",
"properties": { "email": "{{email}}", "firstname": "{{name}}" }
}
]
}
```
`{{email}}` and `{{name}}` are custom variables IrisAgent collects from the customer during the conversation.
### API 2: Create HubSpot ticket
This creates the ticket and links it to the contact from API 1.
| Field | Value |
| ---------------------------------------- | ----------------------------------------------- |
| **Name** | `Create Hubspot ticket` |
| **Method** | `POST` |
| **URL** | `https://api.hubapi.com/crm/v3/objects/tickets` |
| **Request Body** | see below |
| **Prerequisite → Run this action first** | `Upsert Hubspot contact` |
| **Prerequisite → Store its result as** | `contactId` |
Request body (the `associations` block references `{{contactId}}` from the prerequisite; association type ID `16` is HubSpot's Ticket-to-Contact type):
```json theme={null}
{
"properties": {
"subject": "Support: {{issue}}",
"content": "Issue: {{issue}}\nName: {{name}}\nEmail: {{email}}"
},
"associations": [
{
"to": { "id": "{{contactId}}" },
"types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 16 } ]
}
]
}
```
Now when the handoff runs, IrisAgent upserts the contact, captures its ID as `{{contactId}}`, and creates the ticket already linked to that contact.
***
## Using Custom APIs in Workflows
### \[Recommended] As a live data source in AI FAQ workflows for chats and cases
See [Workflows — Using Custom APIs in plain-English workflows](/configuring-ai-and-automation/Workflows#using-custom-apis-in-plain-english-workflows) for how to wire a Custom API into an AI-driven multi-turn conversation.
### As a trigger condition (drag-and-drop builder) for cases
1. Go to **Automate** → **Case Triggers** on the [IrisAgent dashboard](https://web.irisagent.com/triggers).
2. Click **+ Create New Trigger** and add a **Condition**.
3. In the condition picker, scroll to the **API** section — your Custom APIs appear listed as `API: `.
4. Select your API. Depending on its return type, you will be prompted to enter a comparison value (e.g. `true` for a Boolean, or a string to match).
5. Save and activate the trigger.
When a ticket arrives, IrisAgent automatically calls your API with the ticket's context, evaluates the expression, and runs the trigger actions only if the condition is met.
***
Feel free to [email us](mailto:contact@irisagent.com) if you encounter any issues or need help setting up your Custom API integration.
# Freshworks
Source: https://docs.irisagent.com/data-sources/Freshworks
IrisAgent Installation Guide for Freshworks
## Sign up on IrisAgent Dashboard
* Go to the [IrisAgent Dashboard](https://web.irisagent.com/) and sign in with either GSuite, Microsoft, or Okta SSO.
* Click on **Connect with Freshdesk**. Give the OAuth permissions and click on Allow. This will automatically connect with both Zendesk tickets and Zendesk Guide/Knowledge.
* This step is optional. If you want to connect with more platforms, such as Jira, Confluence, Salesforce, etc., navigate to **Manage Integrations** on the bottom left and connect with the relevant platforms.
## Install the IrisAgent app into your Freshworks account
1. Navigate to [IrisAgent's listing](https://www.freshworks.com/apps/freshdesk/irisagent/) on the Freshworks Marketplace.
2. Click on Install and follow the next steps.
# Helpshift
Source: https://docs.irisagent.com/data-sources/Helpshift
IrisAgent Installation Guide for Helpshift
## Overview
IrisAgent connects to Helpshift using a scoped API key that your Helpshift admin generates. Unlike Zendesk, Helpshift does not use OAuth: you stay in full control of the key, its permissions (read-only or read and write), and can revoke it at any time from your Helpshift dashboard.
Once connected, IrisAgent ingests your Helpshift issues, messages, tags, and custom issue fields to power agent assist, AI tagging and routing, trending incident detection, AutoQA, and AutoKB.
## Generate an API key in Helpshift
You need a Helpshift **Admin** role for this step.
1. In your Helpshift dashboard, navigate to **Settings > APIs**.
2. Under **REST APIs**, click **Add partner**.
3. Enter the partner email address provided by the IrisAgent team.
4. Select the permission level:
* **Read-only**: recommended to get started. Enables ingestion, agent assist, tagging suggestions, incident detection, AutoQA, and AutoKB.
* **Read & Write**: additionally lets IrisAgent write tags, custom issue fields, and notes back onto your Helpshift issues.
5. Click the **VIEW API KEY** option to reveal the key and copy it.
Keys are scoped per partner, so IrisAgent's key is separate from any other integration you run (Power BI, Slack, Jira). You can change its permissions or delete it at any time from the same page.
## Sign up on IrisAgent Dashboard
* Go to the [IrisAgent Dashboard](https://web.irisagent.com/) and sign in with either GSuite, Microsoft, or Okta SSO.
* Click on **Connect with Helpshift**.
* Enter your **Helpshift domain** (the `` in `.helpshift.com`) and paste the **API key** generated above, then click **Connect**. IrisAgent validates the key and starts ingesting your issues.
* This step is optional. If you want to connect with more platforms, such as Jira, Confluence, Salesforce, etc., navigate to **Manage Integrations** on the bottom left and connect with the relevant platforms.
## Connect your knowledge base
IrisAgent grounds AI answers in your existing knowledge content:
* **Helpshift FAQs**: ingested automatically through the same API connection.
* **Public help center or website**: add the URL under **Manage Integrations > Website Content** and IrisAgent will ingest the main page and all sub-pages.
* **Other sources**: Confluence, uploaded documents, and [custom knowledge APIs](/data-sources/Custom-API) are also supported.
## Agent copilot inside Helpshift
Helpshift does not provide an embeddable app framework in its agent dashboard, so IrisAgent's copilot is delivered through:
* **IrisAgent browser extension**: overlays AI-suggested resolutions, similar cases, and knowledge directly alongside the Helpshift issue view. No Helpshift configuration required.
* **Native write-back** (requires a Read & Write key): IrisAgent posts suggested tags and custom issue field values onto the issue so agents see them in the Helpshift UI they already use.
* **IrisAgent dashboard**: triage analytics, trending incident alerts, AutoQA reviews, and AutoKB drafts live in the IrisAgent web app side by side with Helpshift.
## Real-time updates
For lower-latency ingestion, your Helpshift admin can additionally configure a webhook from **Settings > APIs > Partners webhooks** pointing at the endpoint provided by the IrisAgent team. Webhooks push issue activity to IrisAgent as it happens; otherwise IrisAgent polls the REST API at regular intervals.
## Questions?
Reach out to us at [contact@irisagent.com](mailto:contact@irisagent.com) and we will help you get set up.
# Hubspot Service
Source: https://docs.irisagent.com/data-sources/Hubspot
IrisAgent Installation Guide for Hubspot Service Software
## Sign up on IrisAgent Dashboard
* Go to the [IrisAgent Dashboard](https://web.irisagent.com/) and sign in with either GSuite, Microsoft, or Okta SSO.
* Click on **Connect with Hubspot** and enter the following information.
* **Find your Hub ID:** To find your Hub ID, log in to HubSpot and open the dropdown menu under your account name in the upper right. You can also find your Hub ID in your HubSpot account's URL.
* **Create a Private App Access Token**: Required scopes: **tickets**, **sales-email-read** (for ticket comments), and **crm.objects.owners.read** (for agents) \
[More info: Creating Private Apps](https://developers.hubspot.com/docs/api/private-apps)
* This step is optional. If you want to connect with more platforms, such as Jira, Confluence, Salesforce, etc., navigate to **Manage Integrations** on the bottom left and connect with the relevant platforms.
# Intercom
Source: https://docs.irisagent.com/data-sources/Intercom
IrisAgent Installation Guide for Intercom
## Sign up on IrisAgent Dashboard
* Go to the [IrisAgent Dashboard](https://web.irisagent.com/) and sign in with either GSuite, Microsoft, or Okta SSO.
* Click on **Connect with Intercom**. Give the OAuth permissions and click on Allow. This will automatically connect with both Intercom tickets and articles.
* This step is optional. If you want to connect with more platforms, such as Jira, Confluence, Salesforce, etc., navigate to **Manage Integrations** on the bottom left and connect with the relevant platforms.
## Install the IrisAgent app into your Intercom account
* In Intercom, open **Settings → Integrations → App Store**, search for **IrisAgent**, and open the listing. Intercom also includes IrisAgent in its [third-party apps directory](https://www.intercom.com/help/en/articles/11070907-apps-built-by-third-parties-third-party-apps).
* Click on Install and follow the next steps.
# Jira Software
Source: https://docs.irisagent.com/data-sources/Jira-Software
Connect one or more Jira Software accounts to IrisAgent for issue ingestion, product-aware routing, and support-case correlation.
## Overview
IrisAgent correlates Jira issues with support cases so support, engineering, and product teams can identify related bugs and understand their customer impact. Jira Software can be connected as an issue provider even when your primary ticketing system is Zendesk, Salesforce, Intercom, Freshworks, HubSpot, or another supported platform.
You can connect multiple Jira accounts or sites. Each Jira account has independent credentials, project scope, product routing, comment settings, and ingestion state.
If Jira Service Management is your primary ticketing system, start with the [Jira Service Desk/Jira Software setup guide](/data-sources/Jira-Software-or-Service-Desk). Use the instructions on this page for additional Jira accounts used as issue providers.
## Before you begin
For each Jira account, use an Atlassian service user with access only to the projects that IrisAgent should ingest. The API token has the same Jira permissions as the user who creates it.
The service user needs:
* Read access to the Jira projects and issues that IrisAgent should ingest.
* Read access to comments if you enable **Ingest comments**.
* Write access to comments if you enable **Post comments to cases**.
* Access to the `/issue/createmeta` endpoint if agents will create Jira issues from the IrisAgent Copilot app.
Create an API token by following [Atlassian's API token instructions](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/).
## Connect your first Jira account
1. Sign in to the [IrisAgent dashboard](https://web.irisagent.com/).
2. Open **Data Sources** and select **Development**.
3. Choose **Atlassian/Jira Cloud** for Jira Cloud or **Atlassian/Jira Server** for an on-premises Jira instance.
4. Enter the Jira email, site subdomain, and API token.
5. For Jira Cloud, enter the part of the site URL before `.atlassian.net`. For example, enter `acme` for `https://acme.atlassian.net`.
6. If you use a scoped Atlassian API token, also enter the Cloud ID. You can obtain it from `https://.atlassian.net/_edge/tenant_info`.
7. Select **Connect Jira**.
A successful connection verifies the credentials and stores the Jira account. Project selection controls when issue ingestion begins.
After connecting Jira, administrators can [customize the issue description created from Agent Assist and sync Jira fields to linked Zendesk tickets](/configuring-ai-and-automation/Jira-Integration-Settings).
## Connect a second Jira account
1. On **Data Sources > Development**, open **Configure Jira providers** from the Atlassian/Jira card.
2. Select **Add Jira instance**.
3. Complete the connection fields:
* **Provider ID**: A unique internal key, such as `support`, `payments`, or `acme_jira`. It does not come from Jira and cannot be changed later. Use 1–64 letters, numbers, underscores, or hyphens.
* **Display name**: A recognizable name shown in the dashboard.
* **Product IDs**: Optional comma-separated case product IDs that should route to this Jira account. Product IDs must be unique across enabled Jira providers.
* **Jira email**: The service user's Atlassian email address.
* **Jira subdomain**: The part before `.atlassian.net` for Jira Cloud.
* **Cloud ID**: Required for scoped Atlassian API tokens; otherwise optional.
* **API token**: The service user's Jira API token.
* **Default provider**: Handles cases whose product ID does not match another enabled provider.
4. Select **Connect Jira**.
You can repeat these steps for additional Jira accounts. Every connected account must use a different Provider ID.
## Configure and enable a Jira provider
New Jira providers start **Disabled**. This is intentional: an empty project selection can otherwise mean every project, so IrisAgent waits for an administrator to choose an explicit project scope before the first ingestion.
After connecting an account:
1. Open **Configure Jira providers**.
2. In the provider card, open **Jira projects** and select at least one project.
3. Enter the case **Product IDs** that should route to this provider. Use the exact values stored in your ticketing system's case `productId` field.
4. For every selected Jira project, set its **Project product mapping**. This value is stored on ingested Jira issues and lets product-aware Jira search match them to cases with the same product ID.
5. Optionally enable **Ingest comments** or **Post comments to cases**.
6. Turn on the **Enabled** toggle.
7. Select **Save settings**.
Select a Jira project before enabling a new provider. IrisAgent rejects an enabled provider with no selected projects to prevent accidental ingestion of every project.
### Product routing and the default provider
When IrisAgent needs a Jira provider for a case, it compares the case's `productId` with the Product IDs configured on each enabled provider.
* A matching Product ID routes the case to that Jira provider.
* The enabled **Default provider** handles a case when no configured Product ID matches.
* Product IDs and selected Jira project keys cannot overlap across enabled providers because the route would be ambiguous.
* Keep one enabled provider as the default unless every possible case product ID has an explicit provider route.
The provider-level **Product IDs** route cases to the correct Jira account. **Project product mapping** stamps ingested Jira issues with a product ID so Jira search and case-answer retrieval can constrain results to the case's product.
### Example: two Jira accounts
| Setting | Support Jira | Payments Jira |
| ----------------------- | ------------------------------------------ | --------------------- |
| Provider ID | `support` | `payments` |
| Product IDs | `Support`, `Customer Care` | `Payments`, `Billing` |
| Selected projects | `SUP`, `CSM` | `PAY` |
| Project product mapping | `SUP` → `Support`; `CSM` → `Customer Care` | `PAY` → `Payments` |
| Default provider | Yes | No |
With this configuration, a case whose `productId` is `Payments` or `Billing` uses the Payments Jira account. A case whose product ID does not match either provider uses Support Jira because it is the default.
## Ingestion behavior
After you enable and save a provider, the next scheduled ingestion run imports issues from its selected projects. This happens asynchronously and may not be visible immediately after saving.
Each Jira account maintains its own credentials, selected projects, ingestion cursor, and provider identity. Issues from different Jira accounts remain distinguishable even if those accounts use the same issue key.
By default, IrisAgent ingests recent Jira data. The lookback window and ingestion frequency can be configured for your deployment. API requests respect Atlassian rate limits.
## Troubleshooting
### “Select at least one Jira project before enabling this provider”
Leave the provider disabled, choose at least one value from **Jira projects**, then enable the provider and save the settings.
### Jira projects are missing
Confirm that the service user can browse the expected Jira projects and that the token has permission to read projects. Reconnect the provider if its permissions or token changed.
### A scoped token requires a Cloud ID
Open `https://.atlassian.net/_edge/tenant_info`, copy the Cloud ID, and reconnect the provider with that value.
### Product-aware search returns no Jira issues
Confirm both parts of the routing configuration:
1. The provider's **Product IDs** include the case product ID.
2. Each selected Jira project has a **Project product mapping** with the corresponding product ID.
New mappings apply as Jira issues are ingested or updated.
## Data governance and security
* Data is encrypted in transit and at rest.
* Jira access is limited by the permissions of the service user and the projects selected in IrisAgent.
* IrisAgent makes authenticated API requests and observes Atlassian rate limits.
* IrisAgent does not share customer Jira data with third parties.
* IrisAgent is SOC 2 Type II and GDPR compliant.
# Jira Service Desk/Jira Software
Source: https://docs.irisagent.com/data-sources/Jira-Software-or-Service-Desk
IrisAgent Installation Guide for Jira issues. Use this guide to use Jira as your primary ticketing or issue provider. If you are looking to connect with Jira Software for bug tracking as an addon to your ticketing provider, see this page.
## Sign up on IrisAgent Dashboard
* Go to the [IrisAgent Dashboard](https://web.irisagent.com/) and sign in with either GSuite, Microsoft, or Okta SSO.
* Click on **Connect with Jira Service Desk** (same button also works for Jira Software). Obtain a token from your Atlassian account with "write:jira-work" permissions as per the steps [on the official Atlassian docs](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/). Enter the token, email, and subdomain and click on Connect.
* This step is optional. If you want to connect with more platforms, such as Jira Software, Salesforce, etc., navigate to **Manage Integrations** on the bottom left and connect with the relevant platforms.
To connect a second Jira account for engineering issues while keeping this Jira Service Management account as the primary ticketing source, follow [Connect a second Jira account](/data-sources/Jira-Software#connect-a-second-jira-account).
## Install the IrisAgent app into your Jira account
1. Navigate to [IrisAgent's listing](https://marketplace.atlassian.com/apps/1229507/irisagent?tab=overview\&hosting=cloud) on the Atlassian Marketplace.
2. Click on Install and follow the next steps.
# Public Websites
Source: https://docs.irisagent.com/data-sources/Public-Websites
Crawl your public documentation, tutorials, and blogs so IrisAgent can answer from content already published on your site
## Overview
A large share of the answers your customers need is already published: product
documentation, getting-started tutorials, release notes, and blog posts. IrisAgent
provides a specialized web scraper designed for extracting data from public
websites, so that content can be ingested and used in answers without being
duplicated into a knowledge base first.
This is a good fit for public-facing content. For knowledge that sits behind a
login or inside an internal wiki, use [Confluence](/data-sources/Confluence) or
[Upload Content](/data-sources/Upload-Content) instead.
## Add a website
1. Go to **Data Sources** → **Website** on the [IrisAgent dashboard](https://web.irisagent.com/).
2. Open the **Website Content** card.
3. Add the top-level URL to your website. This page and its subpages will be crawled and indexed.
Because the crawler follows subpages from the URL you provide, point it at the
most specific root that covers the content you want. Giving it a documentation
root rather than your marketing homepage keeps the index focused on pages that
actually answer support questions.
## Keeping crawled content current
The crawler re-visits your site so that newly published and updated pages are
picked up over time. If you publish a page and need it reflected sooner, you can
re-run the crawl from the same **Website Content** card.
## Related data sources
* [Ticketing System KB](/data-sources/Ticketing-Provider-KB) for the knowledge base in your ticketing system
* [Confluence](/data-sources/Confluence) for internal Atlassian knowledge
* [Upload Content](/data-sources/Upload-Content) for CSV and PDF files
## Data governance and security
Data between customer environments and IrisAgent's systems is always encrypted at
rest and during transmission, authenticated at each endpoint, monitored for
integrity, and protected by enterprise-grade security protocols.
* IrisAgent only crawls pages that are publicly reachable on the URL you provide.
* IrisAgent removes PII data and does not store any PII data on our servers.
* IrisAgent does not share any data with third parties.
* IrisAgent is SOC 2 Type II compliant and GDPR compliant.
# Salesforce
Source: https://docs.irisagent.com/data-sources/Salesforce
IrisAgent Installation Guide for Salesforce
## Sign up on IrisAgent Dashboard
* If you are a Salesforce admin, go to the [IrisAgent Dashboard](https://web.irisagent.com/) and sign in your Salesforce credentials.
* If connecting with a production Salesforce account, please select the Continue with Salesforce option.
* If connecting with a Salesforce Sandbox account, please select the Continue with Salesforce Sandbox option.
* Give the OAuth permissions and click on Allow.
## Install the IrisAgent app in Salesforce account
1. Install the IrisAgent app using the installation link for your org type:
* **Production or Developer org:** [Production installation link](https://login.salesforce.com/packaging/installPackage.apexp?p0=04tak000000dE9ZAAU)
* **Sandbox org:** [Sandbox installation link](https://test.salesforce.com/packaging/installPackage.apexp?p0=04tak000000dE9ZAAU)
Make sure you are logged into the target Salesforce org before opening the link. Sandbox orgs must use the `test.salesforce.com` link above, not the production one.
2. Select the option Install for All Users (note that you can later restrict access to certain profiles). Click on Install after checking the acknowledgment. After installation, click on Done.
## Display the IrisAgent app on the Lightning Salesforce case page
1. Go to Setup – Object Manager. Search for the Case object.
2. Click on the Lightning Record Pages menu option and edit or create a Lightning page.
3. Click Edit.
4. Select **IrisAgent Sidebar: Inline Email** and set it to the desired location on the page. Do not add the standard **IrisAgent Sidebar** component as well.
5. Make sure the standard **Email** action is visible in the Case Feed publisher when the page loads. This lets agents insert Suggested and Dynamic Resolutions into the inline email composer.
6. Click on Save. If a pop box opens, click on Activate.
## Share the list of custom fields
Salesforce Service Cloud allows use of many custom fields. We would need those field names to perform data ingestion. Please email the API field names for the following entities at [this email address](mailto:contact@irisagent.com):
1. Article body in Salesforce Knowledge
2. Case priority
3. Any other entity for which you are using a custom field, instead of the default standard field that you would like IrisAgent to access
Permissions accessed by IrisAgent
1. IrisAgent uses [the “api” scope](https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_tokens_scopes.htm\&type=5).
2. The token obtained after the OAuth flow will have access to all the objects the logged-in user has access. Hence, a separate service user should be created for IrisAgent with sufficient permissions to access the objects required by IrisAgent.
3. Below are the objects accessed by IrisAgent
```text theme={null}
Objects with Read permissions: CaseArticle, CaseSolution, Solution, Account, CaseTag, Contact, EmailMessage, LiveChatTranscript, User, Group, Knowledge__kav, Knowledge__DataCategorySelection
Objects with Read and Write permissions: Case, CaseComment
```
The above steps will complete the installation of IrisAgent. Please [email us](mailto:contact@irisagent.com) once these steps are completed, and our team will start setting up the machine learning models for your account.
# Salesforce CRM
Source: https://docs.irisagent.com/data-sources/SalesforceCRM
IrisAgent installation guide for Salesforce CRM, to bring customer and account context into support answers
## Overview
Connecting Salesforce as a CRM is different from connecting Salesforce as a
ticketing system. The CRM connection brings customer and account context into
IrisAgent: who the customer is, what they have bought, and how important the
account is. That context helps IrisAgent prioritize and route work, and gives
agents the account picture next to the ticket rather than in another tab.
If you are looking to connect Salesforce as your ticketing system instead, see
the [Salesforce](/data-sources/Salesforce) guide.
## Before you start
This step should be completed after you have connected IrisAgent to your
ticketing system. The CRM connection layers account context onto tickets that
IrisAgent is already ingesting, so the ticketing connection needs to exist first.
## Integrating IrisAgent with Salesforce CRM
If you are using Salesforce as your CRM, follow the steps below to connect with
IrisAgent.
1. After logging in to the [dashboard](https://web.irisagent.com/), click on **Manage Integrations**.
2. Click on the **Connect** button for Salesforce CRM.
3. You will see the OAuth screen. Click on **Allow**.
Once the connection is authorized, the Salesforce CRM tile on the **Manage
Integrations** page shows as connected.
## Scoping the connection
As with any integration, the token generated by a user carries that user's own
permissions in Salesforce. We recommend creating a dedicated service user with
access limited to the objects IrisAgent needs, and connecting with that user.
Permissions can then be granted or revoked centrally as requirements change.
## Related integrations
* [Salesforce](/data-sources/Salesforce) as a ticketing system
* [HubSpot](/data-sources/Hubspot) as an alternative CRM
* [Custom API](/data-sources/Custom-API) to pull context from an internal system
## Data governance and security
Data between customer environments and IrisAgent's systems is always encrypted at
rest and during transmission, authenticated at each endpoint, monitored for
integrity, and protected by enterprise-grade security protocols.
* IrisAgent removes PII data and does not store any PII data on our servers.
* IrisAgent does not share any data with third parties.
* IrisAgent is SOC 2 Type II compliant and GDPR compliant.
# Shopify
Source: https://docs.irisagent.com/data-sources/Shopify
Connect a Shopify store to IrisAgent and add your existing chatbot to the storefront
## Overview
The Shopify integration connects a Shopify store to an IrisAgent account and records which existing chatbot is associated with that store. In the initial release, you install the chatbot on the storefront by copying its JavaScript embed code into the Shopify theme.
The integration supports:
* Connecting one Shopify store to an IrisAgent account
* Associating an existing IrisAgent chatbot with the Shopify connection
* Viewing the connected store and granted Shopify permissions
* Changing the associated chatbot or disconnecting the store later
* Answering live product, pricing, and inventory questions
* Looking up order status and shipment tracking after matching an order number and email address
Product and order information is read live from Shopify and is not synchronized into the IrisAgent knowledge base. Refunds, cancellations, returns, and other write actions are not included.
## Before you begin
You need:
* IrisAgent administrator access
* Shopify administrator access for the store
* At least one chatbot configured in IrisAgent
* The permanent `*.myshopify.com` domain for the store
During the private rollout, the Shopify app can be installed only on approved development or test stores. Installation by unrelated merchants will become available after the app is approved for public Shopify distribution.
## Connect Shopify
1. Log in to the [IrisAgent dashboard](https://web.irisagent.com/).
2. In the left navigation, open **Data Sources → E-commerce**.
3. Select the **Shopify** card.
4. Enter the permanent Shopify domain, such as `your-store.myshopify.com`.
5. Choose the IrisAgent chatbot to show on the store.
6. Click **Connect Shopify**.
7. Review and approve the requested permissions in Shopify.
After authorization, Shopify returns you to IrisAgent and the connection status shows the store name and granted permissions.
Stores connected before read-only order lookup was introduced must click **Reconnect Shopify** and approve the `read_orders` permission. Without that permission, product search remains available but order status and shipment tracking are disabled.
## Configure commerce capabilities
After connecting the store, use **Read-only commerce capabilities** on the Shopify configuration page to enable or disable:
* **Product search, pricing, and inventory availability**
* **Order status and shipment tracking**
These capabilities apply only to the chatbot selected under **Chatbot shown on this store**.
For product questions, the chatbot searches current Shopify product data and returns up to five matching products. For order questions, the chatbot collects both the order number and the email used on the order. IrisAgent returns order details only when both values match the same Shopify order.
Shopify's standard `read_orders` permission covers orders from the most recent 60 days. Access to older orders requires Shopify's separately approved `read_all_orders` permission, which this integration does not request by default.
## Add the chatbot to the storefront
Connecting Shopify does not publish the chatbot. Install it using the embed code available from the chatbot configuration in IrisAgent.
1. In IrisAgent, go to **AI Products** → **Chatbot** and click **Configure and deploy**.
2. Use the **Configuration** selector to choose the chatbot that you want to install.
3. Click **Deploy**.
4. Click **Reveal API Key**, then copy the complete embed-code snippet.
5. In Shopify Admin, open **Online Store → Themes**.
6. For the published theme, click the **…** menu and select **Edit code**.
7. Under **Layout**, open `theme.liquid`.
8. Paste the copied IrisAgent snippet immediately before the closing `