# Wrangle Help Docs

## What is Wrangle?

Wrangle is an app that helps you manage recurring workflows and ticketing in your Slack and Teams channels.

With Wrangle, you can tame the chaos of chat and organize requests for your team's help. Instead of @channel requests and DMs, you gather requests using intake forms. Then, Wrangle routes any number of approvals or tasks to your team to process each request.&#x20;

Wrangle gives you comprehensive monitoring views of the workflows in progress so nothing falls through the cracks. And it's all done in Slack or Teams, where your team is already collaborating.

## How to Get Started

The best way to manage common, repeatable requests and business processes is by using Wrangle [workflows](/workflows/using-a-workflow)**.** Or, if you get a lot of inbound requests that don't fit within a repeatable process, you can use a Wrangle [inbox](/tickets/guide-to-ticketing/what-is-a-wrangle-inbox) to manage tickets.

Check out our [Wrangle Webinars playlist](https://youtube.com/playlist?list=PLGhVUJ-l5oLdv54T9U5WTTrTHwcf-T2yW\&feature=shared) for a high-level overview of both workflows and inboxes.

## Quick Links

* [Guide to Ticketing](/tickets/guide-to-ticketing)
* [What is a Wrangle Inbox?](/tickets/guide-to-ticketing/what-is-a-wrangle-inbox)
* [Creating Tickets](/tickets/creating-tickets)
* [Designing a Workflow](/workflows/designing-a-workflow)
* [Editing Workflow Settings and Design](/workflows/designing-a-workflow/editing-workflow-settings-and-design)
* [Rolling out Wrangle to your Workspace](/best-practices/rolling-out-wrangle-to-your-workspace)
* [Managing Incoming Workflow Requests](/best-practices/managing-incoming-workflow-requests)
* [Broadcast announcements](/broadcasts/broadcast-announcements)
* [FAQs](/more-help/faqs)
* [Video Library](https://www.youtube.com/channel/UCCJfjvqpMLJUyrtOVagOGpA)


# Getting Started with Wrangle

Get up and running with Wrangle in just a few minutes. This guide will walk you through setting up your first inbox and turning Slack or Teams messages into trackable tickets.

{% content-ref url="/pages/tOpIzQ2nD1nCJTTTxofN" %}
[Wrangle for Slack](/tickets/getting-started-with-wrangle/wrangle-for-slack)
{% endcontent-ref %}

{% content-ref url="/pages/mDzvOV6oZ2pkQhlRCnzt" %}
[Wrangle for Teams](/tickets/getting-started-with-wrangle/wrangle-for-teams)
{% endcontent-ref %}


# Wrangle for Slack

Get up and running with Wrangle ticketing in just a few minutes. This guide will walk you through setting up your first inbox and turning Slack messages into trackable tickets.

### Step 1: Connect Slack to Wrangle

Before you can start managing tickets, you'll need to connect Wrangle to your Slack workspace. This takes just a few clicks.

[Installing Wrangle in Slack](/tickets/getting-started-with-wrangle/installing-wrangle-in-slack)

### Step 2: Create your first Inbox in Wrangle

An Inbox is a collection of related tickets that are worked on by a specific set of Agents (team members who can assign and resolve tickets). Think of it as a folder for organizing your support requests. [Setting up your inbox](https://docs.wrangle.io/~/revisions/yQdtavUu3XlWg8BivjVb/tickets/setting-up-your-inbox) takes just a few minutes and gets you ready to start managing tickets right away.&#x20;

<figure><img src="/files/hJhKwhohGiHspVA21sjM" alt="Inbox page"><figcaption></figcaption></figure>

**What you'll need:**

* A name for your inbox (e.g., "IT Help Desk" or "Customer Support")
* Team members to assign as agents

**Why you might want multiple Inboxes:**

Different teams often need separate inboxes to manage their tickets independently. For example:

* **IT Help Desk** with IT analysts as agents
* **HR Questions** for the HR team
* **Customer Support** for your support team

You can also create specialized inboxes within a single team. For instance, an IT team might have separate inboxes for "IT Security" and "General IT Support" to route specific types of issues to the right specialists.

### Step 3: Turn Slack messages into tickets

Once your inbox is set up, you can [turn any Slack message into a ticket](https://docs.wrangle.io/~/revisions/tkMgcRwylvf1GG81MVcV/tickets/creating-tickets). This allows your team to track, prioritize, and resolve requests without losing context.

### Step 4: Manage tickets from Slack or the web

**Monitor and work on tickets from wherever you are:**

* **In Slack:** Claim, update, and resolve tickets directly in the thread.
* **Web dashboard:** Claim, update, and resolve tickets, view your full queue, and run reports.

***

### Working with tickets in Slack

#### Claiming tickets

When a new ticket is created, it appears as "Not assigned" with a "New" status. Agents can claim tickets by:

<figure><img src="/files/Q2STloPelj6GJvfI0zY7" alt="Unclaimed tickets will say &#x22;Not assigned&#x22; and have the &#x22;New&#x22; status"><figcaption></figcaption></figure>

* Replying in the thread
* Clicking "Claim it"
* Updating the ticket status

{% hint style="info" %}
If a claimed ticket is moved to a different inbox, the status will revert to "New" and it will be unassigned.
{% endhint %}

#### Setting priority and adding tags

Agents can also update the priority from Slack. The assigned priority will be visible in the ticket thread.

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

Additionally, agents can add tags to categorize each ticket.

<div><figure><img src="/files/98fbL4hogWEdoaSyf0aW" alt=""><figcaption><p>Use the three-dot menu to change tags</p></figcaption></figure> <figure><img src="/files/e0nUO0Mhh6HKJBsgudCz" alt=""><figcaption><p>Add existing tags from Slack, or open the web app to create a new one</p></figcaption></figure></div>

{% hint style="info" %}
If you'd like to add a tag that doesn't exist yet, you'll be redirected to our web app due to limitations with the Slack UI
{% endhint %}

#### Adding ticket followers

If someone besides the requester and agent wants to receive notifications about a ticket's progress, they can be added as a follower. Followers will get notifications about new messages and status updates in the ticket thread, or via DM if the inbox is [private](/tickets/private-ticketing).

Followers can be added from both Slack and the web. To add a follower from Slack, open the three-dot menu in the ticket thread, click "Change followers," then add their names.

<figure><img src="/files/iOHHOJUYmEfqmyjqlIX2" alt=""><figcaption><p>Add followers from Slack</p></figcaption></figure>

To add a follower from the web, [open the ticket](#managing-tickets-on-the-web), click "Add Followers," then add their names.

<figure><img src="/files/GsGauxGX78T5gK1HAzlm" alt=""><figcaption><p>Add followers from the web</p></figcaption></figure>

{% hint style="info" %}
Only the ticket requester, agents, admins, observers, and other followers can add or remove followers in a ticket.&#x20;
{% endhint %}


# Enterprise Grid

Wrangle ticketing and workflows can both be used within Enterprise Grid.

If you're part of a larger organization, there's a chance your company is using Slack's [Enterprise Grid](https://slack.com/resources/why-use-slack/slack-enterprise-grid). We've put together this guide to help you understand how to set up Wrangle within your grid.<br>

### Wrangle accounts are created at the workspace level

Within Enterprise Grid, many Slack workspaces can be connected to one another via shared admin controls and shared channels.\
\
When you install Wrangle, you install into a single workspace. Due to how Enterprise Grid works, it's relatively easy to be working from a different workspace and not realize it.\
\
When interacting with Wrangle, make sure you're using the workspace that you installed Wrangle into. If you're not sure which one that is, reach out via Slack or <support@wrangle.io> and we're happy to help.<br>

### Select a workspace to use with Wrangle

#### From the web

Using the Wrangle web app, you login by first selecting your Slack workspace as shown below:

<figure><img src="/files/adTdgiZ6xNb0IIitn8oV" alt=""><figcaption><p>Here we're logging in to the wrangle-eg-1 Slack Workspace</p></figcaption></figure>

If you accidentally login to Wrangle using a different Slack workspace, you might notice that your account looks different. Luckily, this is easy to fix. Just [logout](https://slack.wrangle.io/auth/logout), and log back in to the workspace you want to use Wrangle with.\ <br>

#### From Slack

Similar to the web, it's possible to be using Wrangle from Slack from the wrong workspace and not realize it. If you are accessing [Wrangle App Home](/best-practices/wrangle-app-home) and not seeing the content you expect, you may want to confirm that you are using Wrangle with the installed workspace.\
\
\
**Via the Slack web app or a desktop client**

<figure><img src="/files/O81qAt3jB0uiy1PW2Xks" alt=""><figcaption><p>Use the workspace picker to change the workspace you are using with Wrangle</p></figcaption></figure>

**Via Slack on a mobile device:**

<div align="left"><figure><img src="/files/qqjoE5efbrSQIC6t0AV2" alt="Slack workspace picker on mobile"><figcaption><p>Open the workspace picker on mobile</p></figcaption></figure> <figure><img src="/files/DZek9J5bzlMFxPSh0uEe" alt=""><figcaption><p>Select a workspace to use with Wrangle</p></figcaption></figure></div>

<br>

## FAQ

### I don't remember which workspace I installed Wrangle into. How can I find out?

1. Open the [Admin dashboard](https://slack.com/help/articles/115005594006-Guide-to-the-Slack-admin-dashboard).
2. Navigate to Integrations > Installed Apps.
3. Search for Wrangle.

### I am on a paid plan but I'm seeing that my trial expired. What happened?

You may be trying to access Wrangle from a different workspace than the one you installed Wrangle into. Follow the instructions above to [#select-a-workspace-to-use-with-wrangle](#select-a-workspace-to-use-with-wrangle "mention").

&#x20;

### I don't see Wrangle's message shortcuts in my Slack Channel. Where are they?

You may be trying to access Wrangle from a different workspace than the one you installed Wrangle into. Follow the instructions above to [#select-a-workspace-to-use-with-wrangle](#select-a-workspace-to-use-with-wrangle "mention").


# Wrangle for Teams

Get up and running with Wrangle ticketing in just a few minutes. This guide will walk you through setting up your first inbox and turning Teams messages into trackable tickets.

### Step 1: Connect Teams to Wrangle

Before you can start managing tickets, you'll need to connect Wrangle to your Teams tenant.

[Installing Wrangle in Teams](/tickets/getting-started-with-wrangle/installing-wrangle-in-teams)

### Step 2: Create your first Inbox in Wrangle

An Inbox is a collection of related tickets that are worked on by a specific set of Agents (team members who can assign and resolve tickets). Think of it as a folder for organizing your support requests.

<figure><img src="/files/zhg7TMN16vSZtUdpO5Pf" alt="Creating your first inbox with Wrangle"><figcaption></figcaption></figure>

You'll need to name your inbox, and pick a Team and Channel for your agents to work from. You can always change these values later.

### Step 3: Create your first Ticket

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

Now that you've created an inbox for your tickets, you're ready to create your first ticket. You can do this from [the web](https://app.wrangle.io/tickets/new), or [directly from Teams](/tickets/creating-tickets/creating-tickets-from-teams).&#x20;

### Step 4: Manage your tickets from the web

Wrangle's web portal allows your agents to monitor and manage tickets:

* [**Tickets Dashboard**](https://app.wrangle.io/tickets) - Create custom views and assign and update tickets.
* [**Ticket Reports**](https://app.wrangle.io/reports/tickets) - View trends and dive deeper into agent performance using Wrangle's ticketing reports.&#x20;


# Installing Wrangle in Slack

Connect Wrangle to your Slack workspace to start managing tickets directly from Slack. This setup takes just a few minutes.

### Installation Steps

#### Step 1: Sign in to Wrangle

Go to [Wrangle](https://slack.wrangle.io/) and click **Log In with Slack**.

<figure><img src="/files/qsikXDHZ8qGDNnBMp8kv" alt="Wrangle sign-in page"><figcaption></figcaption></figure>

#### Step 2: Authorize Wrangle in your Slack workspace

You'll be redirected to Slack to authorize the connection.

<figure><img src="/files/rptQOopsalcGbNvRE9Ei" alt="Slack OAuth permission screen"><figcaption></figcaption></figure>

1. Select the Slack workspace where you want to install Wrangle
2. Review the permissions Wrangle is requesting
3. Click **Allow** once satisfied

{% hint style="info" %}
We take privacy seriously. [Wrangle is **SOC2 certified**](https://www.wrangle.io/security), so you can trust that your data is secure.
{% endhint %}

#### Step 3: Complete setup in Wrangle

After authorizing, you'll be redirected back to Wrangle to complete your setup, like [setting up](https://docs.wrangle.io/~/revisions/5rDpoFMOoWMkaT6P6rSj/tickets/getting-started-with-wrangle) your inbox and tickets.&#x20;


# Installing Wrangle in Teams

Connect Wrangle to your Teams tenant to start managing tickets directly from Teams. This setup takes just a few minutes.

### Installation Steps

#### Step 1: Sign in to Wrangle

Go to [Wrangle](https://app.wrangle.io/) and click **Log In with Teams**.

<figure><img src="/files/qsikXDHZ8qGDNnBMp8kv" alt="Wrangle sign-in page"><figcaption></figcaption></figure>

#### Step 2: Authorize Wrangle in Teams

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

You'll be redirected to Teams to authorize the connection.

1. Review the permissions Wrangle is requesting
2. Click **Accept** once satisfied

#### Step 3: Add Wrangle To Teams

After authorizing, you'll be redirected back to Wrangle to continue the installation process:

<figure><img src="/files/br0GjjHCVpUKWSeH4kI9" alt=""><figcaption><p>Adding Wrangle to Teams</p></figcaption></figure>

You'll be directed to [Open Wrangle](https://teams.microsoft.com/l/app/9b150bf6-a0cf-4b8b-8684-7bcdd0c60eeb) in the Teams App Store. You can alternatively visit Apps in Teams and search for Wrangle.\
\
After clicking **Add**, make sure you select a channel to use with Wrangle before continuing, as shown below:

<figure><img src="/files/K3I56RuJLP5YkJYCnbCq" alt=""><figcaption><p>Select a channel to use Wrangle within Microsoft Teams</p></figcaption></figure>

Once you have selected your channel, click **Go**.

\
Once you are done, click `I have installed Wrangle in Teams` to continue to Wrangle.<br>

#### Step 4: Approve Wrangle for your Organization

When installing Wrangle, you'll see one final authorization screen that requires a Teams admin to continue:

<figure><img src="/files/UXZ0ETeS5vZPA56yQSeg" alt="Additional Permissions Required screen"><figcaption><p>Ask a Teams Admin to grant Wrangle permission for your organization</p></figcaption></figure>

You'll be redirected to Teams to authorize the connection.

1. Review the permissions Wrangle is requesting
2. Click **Accept** once satisfied

\
\
That's it! You're now ready to [create your first inbox](/tickets/getting-started-with-wrangle/wrangle-for-teams) to manage your tickets with Wrangle.<br>

{% hint style="info" %}
We take privacy seriously. [Wrangle is **SOC2 certified**](https://www.wrangle.io/security), so you can trust that your data is secure.
{% endhint %}

####

#### How to Add Wrangle to a specific Team

If you run into an error verifying your installation or selecting a Team for use within an inbox, ensure you've added Wrangle to your Team.\
\
You can do this following these steps:\
\
1\. [Open the Wrangle app within Teams](https://teams.microsoft.com/l/app/9b150bf6-a0cf-4b8b-8684-7bcdd0c60eeb)

<figure><img src="/files/YzJlyyzglxTP5Wf7ac9q" alt="Select Wrangle from your Apps in Teams"><figcaption></figcaption></figure>

2. Click the `Open` button and make sure to **Select a channel** in the menu shown below.

<figure><img src="/files/Ra8gnOd8rRNyqSJUGspg" alt="Select a channel in Teams" width="253"><figcaption></figcaption></figure>

3. Once you have selected your channel as shown above in Step 2, click `Go`.<br>

That's it! Wrangle is now available for use within your Team.


# Guide to Ticketing

Getting Started with Wrangle

**Tickets** are a lightweight way to assign, track, and resolve the many questions and requests your team gets in Slack. You can turn any Slack message into a ticket so that your team can track it. It's like an internal help desk that lives in your team chat.

Unlike workflows, tickets don't have to follow a rigid process. Instead, they have simple statuses like "In Progress" and "Resolved." You're free to resolve them however you need to.

## Perfect for a team channel, like #ask-hr or #it-help-desk

Tickets are a perfect tool for helping manage a channel where people come to get help from your team.

These channels can be hard to manage when you have multiple team members responding to these questions. Without tickets, you have to:

* Click into every thread to make sure you have resolved every question or request
* Make sure to notify new on-call staff of pending issues
* Hope you don't miss anything

With ticketing, you have a dashboard that shows every inbound message. You can assign people to each one and track whether they have been resolved.

## Collect tickets from anywhere in Slack

You can turn any message in Slack into a ticket, not just the messages in your team channel. Inevitably, someone will DM you or @-mention your team somewhere in Slack.

Once converted into a ticket, these requests turn into a Slack thread in your team channel. Everything is centralized, tracked, and made visible to the full team.

## How to set up ticketing

First, you'll set up an **Inbox**. An Inbox is a folder for related tickets, which are worked on by a set of Agents (people who have authority to assign and resolve tickets). [Learn more about Inboxes](/tickets/guide-to-ticketing/what-is-a-wrangle-inbox).&#x20;

Next, you can [turn any Slack message into a ticket](/tickets/creating-tickets).

Finally, you can monitor and manage tickets in the [Tickets dashboard](/tickets/web-app-monitoring-tickets).

## What is a Wrangle Inbox?

### Why would I want multiple Inboxes?

Since Inboxes are different collections of tickets and agents, you might want different inboxes for:

* Different teams
* Different specializations&#x20;

### Inboxes for different teams

Different teams are going to want to see their tickets separately from those of other teams that might use Wrangle.

For example, you might have one Inbox called "IT Help Desk," with four IT analysts assigned as agents. IT-related tickets are funneled here for these agents to work on. Then, you might have a second Inbox called "HR Questions" for the HR team to manage their tickets.

### Inboxes for different specializations

Even within one team, you might want different inboxes if members of the team work on different categories of issues.

For example, an IT team might have two agents that work on security-related questions. You might set up an Inbox for their tickets called "IT Security Help Desk." Then, the rest of the IT team might be part of a general Inbox for other kinds of IT issues.

## Claiming and updating a ticket in Slack

<figure><img src="/files/S2tO9NoocMkdP3Ze8uST" alt=""><figcaption><p>Unclaimed tickets will say "Not assigned" and have the "New" status</p></figcaption></figure>

Once a ticket has been created, agents can claim a ticket directly from the thread in Slack, either by replying in the thread, clicking "Claim it" or by updating the status.

If the ticket needs to go to a different team, agents can also click "Change inbox" to reassign it.&#x20;

{% hint style="info" %}
If a claimed ticket is moved to a different inbox, the status will revert to "New" and it will be unassigned.
{% endhint %}

Agents can also update the priority from Slack. The assigned priority will be visible in the ticket thread.

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

Additionally, agents can add tags to categorize each ticket.

<div><figure><img src="/files/98fbL4hogWEdoaSyf0aW" alt=""><figcaption><p>Use the three-dot menu to change tags</p></figcaption></figure> <figure><img src="/files/e0nUO0Mhh6HKJBsgudCz" alt=""><figcaption><p>Add existing tags from Slack, or open the web app to create a new one</p></figcaption></figure></div>

{% hint style="info" %}
If you'd like to add a tag that doesn't exist yet, you'll be redirected to our web app due to limitations with the Slack UI
{% endhint %}

### Adding ticket followers

If someone besides the requester and agent wants to receive notifications about a ticket's progress, they can be added as a follower. Followers will get notifications about new messages and status updates in the ticket thread, or via DM if the inbox is [private](/tickets/private-ticketing).

Followers can be added from both Slack and the web. To add a follower from Slack, open the three-dot menu in the ticket thread, click "Change followers," then add their names.

<figure><img src="/files/iOHHOJUYmEfqmyjqlIX2" alt=""><figcaption><p>Add followers from Slack</p></figcaption></figure>

To add a follower from the web, [open the ticket](#managing-tickets-on-the-web), click "Add Followers," then add their names.

<figure><img src="/files/GsGauxGX78T5gK1HAzlm" alt=""><figcaption><p>Add followers from the web</p></figcaption></figure>

{% hint style="info" %}
Only the ticket requester, agents, admins, observers, and other followers can add or remove followers in a ticket.&#x20;
{% endhint %}

## Ticketing Quick Links

* [Setting up your inbox](/tickets/setting-up-your-inbox)
* [Ticket status](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-statuses)
* [Ticket priority](/tickets/web-app-monitoring-tickets#ticket-priority)
* [Form fields](/tickets/setting-up-your-inbox/tags)
* [Tags](/tickets/setting-up-your-inbox/tags)
* [Ticket creation (manual or automatic)](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-creation)
* [Customer satisfaction (CSAT)](/tickets/web-app-monitoring-tickets#customer-satisfaction-csat-survey)
* [Export your ticket history](/tickets/setting-up-your-inbox/archive)
* [Archive your inbox](/tickets/setting-up-your-inbox/archive)
* [Request Approval](https://docs.wrangle.io/~/revisions/EK38NLY8ByCPRWId3VTW/tickets/creating-tickets/request-approval)


# What is a Wrangle Inbox?

Think of Wrangle Inboxes as folders for related tickets. Any ticket is assigned to a certain Inbox, and each Inbox has a set of agents who can work on those tickets.

## Why would I want multiple Inboxes?

Since Inboxes are different collections of tickets and agents, you might want different inboxes for:

* Different teams
* Different specializations&#x20;

### Inboxes for different teams

Different teams are going to want to see their tickets separately from those of other teams that might use Wrangle.

For example, you might have one Inbox called "IT Help Desk," with four IT analysts assigned as agents. IT-related tickets are funneled here for these agents to work on. Then, you might have a second Inbox called "HR Questions" for the HR team to manage their tickets.

### Inboxes for different specializations

Even within one team, you might want different inboxes if members of the team work on different categories of issues.

For example, an IT team might have two agents that work on security-related questions. You might set up an Inbox for their tickets called "IT Security Help Desk." Then, the rest of the IT team might be part of a general Inbox for other kinds of IT issues.


# Private Notes

Private notes allow agents to add comments to tickets that are only visible to other agents, admins, and observers.

Private notes work differently depending on your inbox type. For example, with the **Private Internal Ticketing** [inbox settings](/tickets/private-ticketing), you can add private notes from both the web app and Slack.

### Perfect for: Sensitive internal coordination

Some companies have private channels (like `#hr` or `#legal`) where not everyone is a member. When tickets are created in these channels, requesters receive updates via direct message since they may not have access to the private channel.

Private notes let agents coordinate internally within the private channel thread without those messages being forwarded to the requester's DM. For example, HR agents can discuss sensitive details about a benefits request in `#hr` using private notes, while the requester only sees the final response in their DM.

### Adding Private Notes from the Web

Click the **lock icon** above the text editor. The text editor will turn yellow, and you'll see a note that says, "Private notes are only visible to users who are admins, observers, or agents."

{% hint style="success" %}
Works for: All inbox types
{% endhint %}

<figure><img src="/files/AwwpdpuIRIVzFG9ryAM6" alt="the lock icon above the text editor"><figcaption></figcaption></figure>

### Adding Private Notes from Slack

To add a private note from Slack, insert a lock emoji at the start or end of your message. Wrangle will automatically convert the message into a private note.

You can use this emoji: `:lock:`

{% hint style="danger" %}
**Only works for Private Internal Ticketing inboxes**
{% endhint %}

<figure><img src="/files/sG53LgLmt7JVOWv3xeVU" alt="Add a private note in Slack ticket thread"><figcaption></figcaption></figure>

**Why only private inboxes?** Private Internal Ticketing inboxes use a private Slack channel for agents and send updates to requesters via DM. This setup allows private notes to stay in the agent channel without being sent to requesters. For public channels and Slack Connect inboxes, there's no private agent-only space in Slack, so private notes must be added from the web app.

### How Private Notes Behave by Inbox Type

#### Private Internal Ticketing Inboxes

**Where notes appear:**

When you add a private note **from the web app:**

* The note is posted to the inbox Slack channel, where other agents can see it
* The note is NOT sent to the requester's DM
* Exception: If the requester has agent or higher permissions on the inbox, they will see it in the channel

When you add a private note **from Slack:**

* The note appears in the Ticket thread
* Only users with agent role or above can see it
* The note stays in the Slack channel for agents, but is NOT forwarded to requester DMs

**Key point:** Private Internal Ticketing uses a private Slack channel for agent coordination and sends updates to requesters via DM. This separation allows agents to use private notes in the channel without those notes reaching the requester's DM.

#### Other Inbox Types (Public Channels, Slack Connect)

**Where notes appear:**

* Private notes stay in the web app only
* They are never posted to any Slack channel (public or external)
* Only visible in the web app to users with the agent role or above

**Why the limitation?** Public channels and Slack Connect inboxes don't have a private agent-only space in Slack. For public channels, all members would see the note. For Slack Connect, there's a risk of notes syncing to external channels. To protect sensitive information, private notes for these inbox types must be added from the web app, where access is controlled by user roles.


# Setting up Your Inbox

Create [a new inbox directly](https://slack.wrangle.io/inboxes/new), or make changes to an existing inbox anytime by visiting the [inboxes page](https://slack.wrangle.io/inboxes) and selecting the one you'd like to update. \
\
When creating a new inbox, you'll be able to set basic preferences such as the name, description, and channel. These can be changed anytime by editing your inbox.

We recommend having a dedicated help channel for your inbox, as opposed to adding it to a broad, company-wide channel like **#general**. For example, your channel might be called something like **#ask-hr**, **#it-support**, or **#facilities-help**. We recommend encouraging your colleagues to use this channel to ask questions, because your agents will be able to [turn those questions into ticket](/tickets/creating-tickets)

{% content-ref url="/pages/f42kQ0PTLfGcpnbOQtZr" %}
[Settings](/tickets/setting-up-your-inbox/settings)
{% endcontent-ref %}

{% content-ref url="/pages/ch5spx6HxsmZHI5ynUdR" %}
[Roles & Permissions](/tickets/setting-up-your-inbox/roles-and-permissions)
{% endcontent-ref %}

{% content-ref url="/pages/DRByn9g9FhUk8qTnTh5s" %}
[Ticket Lifecycle](/tickets/setting-up-your-inbox/ticket-lifecycle)
{% endcontent-ref %}

{% content-ref url="/pages/ANNJoizX8xGq45lwKFKC" %}
[Ticket SLAs](/tickets/setting-up-your-inbox/ticket-slas)
{% endcontent-ref %}

{% content-ref url="/pages/C7FaR9TFpqt4oT9AXOI7" %}
[Tags](/tickets/setting-up-your-inbox/tags)
{% endcontent-ref %}

{% content-ref url="/pages/qFFlQ2QLB7X29lrUdR07" %}
[Forms](/tickets/setting-up-your-inbox/forms)
{% endcontent-ref %}

{% content-ref url="/pages/ySJsySPtUyLqGZIsTGJ4" %}
[AI Powered Ticketing](/tickets/ai-powered-ticketing)
{% endcontent-ref %}

{% content-ref url="/pages/bbjdV8wPlyZSbZDmnPG2" %}
[Canned Replies](/tickets/setting-up-your-inbox/canned-replies)
{% endcontent-ref %}

{% content-ref url="/pages/N1yNEqzq7HhSCmjx79sP" %}
[Integrations](/tickets/setting-up-your-inbox/integrations)
{% endcontent-ref %}

{% content-ref url="/pages/QizAVoJ56MzqtndalyrK" %}
[Export History](/tickets/setting-up-your-inbox/export-history)
{% endcontent-ref %}

{% content-ref url="/pages/3HBuREVW8k7wsvw8JRmJ" %}
[Archive](/tickets/setting-up-your-inbox/archive)
{% endcontent-ref %}

### &#x20;


# Settings

Customize general options for your inbox like the name and description.

* [**Inbox name**](#inbox-name)
* [**Inbox description**](#inbox-description)
* [**Inbox type** ](#types-of-inbox)
* [**Ticket visibility**](#ticket-visibility) **(**[**private internal ticketing**](#private-internal-ticketing) **and** [**customer support**](#customer-support) **inboxes only)**
* **Slack channel used for creating and working on tickets**

#### **Inbox Name**

Use a self explanatory name, such as IT Help Desk, Product Requests, or HR Support.

#### Inbox Description

This is an optional user facing description or instructions for your inbox in case you'd like to expand on what your inbox should be used for. This will be visible in Slack and on the web for users when creating tickets in this inbox.

#### Inbox Type <a href="#types-of-inbox" id="types-of-inbox"></a>

With Wrangle, there are three types of inbox you can set up: *internal ticketing*, *private internal ticketing*, and *customer support*. Each inbox type has different options for how ticket updates are shared with requesters, including how much ticket data requesters can see.

| Inbox type                 | Where requesters see updates    | Visibility options       |
| -------------------------- | ------------------------------- | ------------------------ |
| Internal Ticketing         | Threaded replies in the channel | Visible                  |
| Private Internal Ticketing | DM from Wrangle                 | Visible, Limited         |
| Customer Support           | Threaded replies in the channel | Visible, Limited, Silent |

#### **Ticket Visibility**

* *Visible* inboxes mean all ticket data is shared with requesters, including agent replies, ticket status, priority, assignee, tags, SLA notifications, and more.

<figure><img src="https://docs.wrangle.io/~gitbook/image?url=https%3A%2F%2F3500333410-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-M8Mly5TzbK30rAk6_PN%252Fuploads%252F2sbCj1qMPnhnbZ5vXnuN%252Fexternal%2520ticket%2520-%2520visible.png%3Falt%3Dmedia%26token%3Da99c49b4-c937-4b90-8211-783045934622&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=4e4204c3&#x26;sv=2" alt="" width="375"><figcaption><p>A "visible" ticket, meaning all fields like assignee, priority, inbox are visible to the requester.</p></figcaption></figure>

* *Limited* inboxes mean only agent replies, ticket name, and ticket status are shared with requesters.

<figure><img src="https://docs.wrangle.io/~gitbook/image?url=https%3A%2F%2F3500333410-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-M8Mly5TzbK30rAk6_PN%252Fuploads%252FAUrByVWEgndIPpI66cuL%252Fexternal%2520ticket%2520-%2520limited.png%3Falt%3Dmedia%26token%3D3f5b1513-ba43-4ccf-954f-7b8e7ef33c3f&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=ef54408b&#x26;sv=2" alt="" width="375"><figcaption><p>A Limited visibility ticket</p></figcaption></figure>

* *Silent* inboxes mean no ticket data, including agent replies, is shared with requesters. If you use a [message shortcut](https://docs.wrangle.io/tickets/creating-tickets#creating-a-ticket-from-a-message-shortcut) instead of an [emoji reaction](https://docs.wrangle.io/tickets/creating-tickets#creating-a-ticket-via-emoji-reaction) to create the ticket, there will be no visual cue that a ticket was created.

<figure><img src="https://docs.wrangle.io/~gitbook/image?url=https%3A%2F%2F3500333410-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-M8Mly5TzbK30rAk6_PN%252Fuploads%252F8XKM5n7LhiYPRSmWZW0V%252FScreenshot%25202024-07-09%2520at%25204.44.01%2520PM.png%3Falt%3Dmedia%26token%3D4825516e-a17f-4631-a724-8856aaa63354&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=8a780439&#x26;sv=2" alt="" width="375"><figcaption><p>A Silent visibility ticket</p></figcaption></figure>

### **Internal Ticketing**

Select this option for internal tickets when the inbox is in either a public Slack channel or a private channel where your requesters are members. This is commonly used for non-sensitive internal issues, like general IT help, marketing requests, customer handoffs between sales and support, etc.

Requesters for an internal ticketing inbox will be able to see all ticket updates, including status, assignee, priority, SLA notifications, and more.

### Private Internal Ticketing

Use this option when the inbox belongs to a private channel that the requester and followers might not always be members of. We'll send them a direct message when an agent replies and when the ticket status changes. This is commonly used for sensitive internal issues like HR requests, reimbursement requests, and personal IT requests.

### Internal Notes

Internal notes allow agents to add private comments to tickets that are only visible to other agents, admins, and observers. These notes are useful for internal coordination, sensitive information, or context that shouldn't be shared with requesters.

{% hint style="warning" %}
Internal notes are only visible to agents, admins, and observers. They will not sync to Slack or external systems.
{% endhint %}

#### Adding Internal Notes from the Web

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

1. Open the ticket in the Wrangle web app
2. In the reply field, click the **lock icon (🔒)** in the formatting toolbar
3. Type your internal note
4. Click **Add Note**

#### Adding Internal Notes from Slack

To add an internal note from Slack, prefix your message with the 🔒 emoji in the private internal ticket thread. The emoji would indicate that it’s a private note and restrict other users from receiving the message.&#x20;

{% hint style="danger" %}
Internal notes from Slack are only available for Private Internal Ticketing inboxes. To use this feature, your inbox must be configured as “Private Internal Ticketing” in Inbox Settings.&#x20;
{% endhint %}

#### How Internal Notes Behave by Inbox Type

**Internal Ticketing (public channels):** Notes stay in the web app and never appear in the Slack thread.

**Private Internal Ticketing:** Notes stay in the web app and are never sent in DMs to requesters.

**Customer Support (Slack Connect):** Notes stay in the internal web app and are never mirrored to external customer channels.

### Wrangle and private channels

If your inbox channel is private, you'll need to invite Wrangle to the channel before any tickets can be created. You can automatically invite Wrangle when setting up your inbox by checking this box:

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

Once enabled, requesters will get a DM from Wrangle whenever they submit a ticket.

### Customer Support

Select this option for customer support use cases where tickets are created by requesters via Slack Connect and managed by agents in a dedicated internal Slack channel. This is commonly used for teams who work with customers, vendors, or contractors via Slack Connect.

How channels work with Customer Support inboxes:

* **Which internal Slack channel should be used for working on tickets? -** Select an internal slack channel for your agents to work from. When you create tickets in this inbox, you'll see tickets posted to this channel. They will be mirrored back to the original requester channel so your requesters can see them.

See [Ticketing for Slack Connect](/tickets/ticketing-for-slack-connect) for more on creating tickets for external customers via Slack Connect.


# Roles & Permissions

Assign users or user groups to specific roles for your inbox.

Customize user roles and permissions. There are six types of user roles: "Admin," "Agent," "Observer," "Requester," "Limited Access", and "No Access."

Here's a breakdown of what each role can see and do:

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

{% hint style="info" %}
Editing permissions for users who have been previously assigned to tickets will remove their assignments if their new permissions are not Admin or Agent.
{% endhint %}

In addition to these different roles, you can also set permissions at both the workspace and individual level for any given inbox.

Default workspace permissions determine how the majority of your workspace interacts with an inbox, whereas individual permissions are the exceptions to the rule.&#x20;

<figure><img src="/files/9pTalXuZJtVLwrAfObGm" alt="" width="563"><figcaption></figcaption></figure>

By default, the permission for everyone in your workspace is "Requester," and the permission for the person who created the inbox is "Admin."

{% hint style="info" %}
There is special type of default role for an inbox called [**Confidential**](#confidential-inboxes-for-greater-privacy).  This hides the inbox from workspace admins by default, and can be used for more sensitive content.
{% endhint %}

***

## Assign Users Using Slack User Groups

You can now assign **Slack user groups** to your ticket inboxes in Wrangle — making it easier than ever to manage access and permissions at scale.

Instead of adding individual users one by one, simply select a Slack user group (like `@Engineering` or `@CX Team`), and Wrangle will automatically assign all current members of that group.

> 💡 **Note:** This feature is available on the **Scale** plan.

***

### How It Works

When editing permissions in an inbox or workflow, you’ll now see the option to **Add Groups** from the “Add Users” menu:

![Add Groups Menu](/files/UznDy8ikx6JYVGO3Kn2z)

Clicking this will open a modal where you can:

* Search for a Slack user group
* Select a role for the group (Admin, Agent, or Requester)
* Confirm and apply your changes

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

Once saved, all members of the selected Slack group will have access based on the role you assigned.

You’ll see the group listed in the **Users & Permissions** section with its role.\
Hover over the member count to view the specific users in that group:

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

***

### Slack-Managed Groups

Slack user groups must be created and managed **directly in Slack**.\
Wrangle automatically syncs the current members of any group assigned.

* ✅ If a user is *added* to the Slack group, they’ll automatically get access in Wrangle
* ❌ If a user is *removed*, their access is revoked

👉 [Learn how to manage user groups in Slack](https://slack.com/help/articles/212906697-Create-and-manage-user-groups)

***

### Billing Notice ⚠️

Adding a Slack user group to an inbox or workflow can affect your billing.

When you assign a group, Wrangle will bill for **each user in that group** who doesn’t already have a license.

**Example:**\
You add the `@Engineering Team` group with 3 members.\
If none of them already have Wrangle access, you'll be billed for 3 additional seats.

Before saving, you'll see a billing confirmation like this:

![](/files/lDTAv0g2df75xf30MYV9)

> 💡 Saving this change will immediately add users to your bill and charge a prorated amount for the current billing cycle.\
> Future additions to the Slack group may increase your bill automatically.

***

### Confidential inboxes for greater privacy

Confidential inboxes restrict who can see tickets — especially preventing workspace account admins from automatically accessing sensitive inboxes.

\
Use confidential inboxes for HR, legal, ethics, or other topics where tickets should only be visible to the requester and explicitly assigned inbox staff.

#### Enable confidential inboxes

<figure><img src="/files/SLsDIg3oABpjCoFKeMEA" alt="" width="563"><figcaption></figcaption></figure>

Before an inbox admin can use the Confidential default role, a workspace account admin must enable the feature:

1. Go to **Admin Settings → Privacy**
2. Turn on **Allow Inbox Admins to make inboxes confidential**
3. Save

This setting cannot be disabled while any inbox still uses the Confidential default role.

#### Make an inbox confidential

<figure><img src="/files/xQcwq8mt1jzBdKdAa9Dy" alt="" width="563"><figcaption></figcaption></figure>

1. Open the inbox (or create a new one)
2. Go to **Roles & Permissions**
3. Set the default role for your workspace to **Confidential**
4. Explicitly assign inbox **Admins**, **Agents**, and/or **Observers** who should manage tickets. Everyone else (including workspace admins) can create tickets and view **only their own**. They cannot browse other tickets in the inbox.

{% hint style="warning" %}
Confidential inboxes are different from [**Private Ticketing**](/tickets/private-ticketing) (Slack channel/DM behavior) and [**Private Notes**](/tickets/guide-to-ticketing/private-notes) (agent-only messages). See those pages for messaging privacy.
{% endhint %}

### FAQs

**Q: What happens if I remove a user from a Slack group?**\
A: They’ll automatically lose access to the inbox or workflow in Wrangle.

**Q: What if I want to assign only one person from the group?**\
A: You’ll need to add them individually rather than using the group.

**Q: Can I use Slack groups in workflow steps too?**\
A: Yes! Anywhere you assign users in the Workflow Designer, you can assign a Slack group.

***


# Ticket Lifecycle

Use Wrangle's powerful automations to control the lifecycle of your tickets every step of the way.

{% content-ref url="/pages/Hr7zo5w8mD3vg1iiRAlb" %}
[Ticket Creation](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-creation)
{% endcontent-ref %}

{% content-ref url="/pages/IJVh1yYYlrtDcLe6SaKy" %}
[Ticket Assignment](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-assignment)
{% endcontent-ref %}

{% content-ref url="/pages/nEJ7ZuvXVVwGdAie23yV" %}
[Ticket Resolution](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-resolution)
{% endcontent-ref %}

{% content-ref url="/pages/t97dhiYj7Ijee5eorL3t" %}
[Ticket Routing & Escalations](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-routing-and-escalations)
{% endcontent-ref %}

{% content-ref url="/pages/BkTMIVjv0QGE761VV14W" %}
[Ticket Statuses](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-statuses)
{% endcontent-ref %}

{% content-ref url="/pages/d96a3C1TSQkz0pjnC5u3" %}
[Auto-Responder](/tickets/setting-up-your-inbox/ticket-lifecycle/auto-responder)
{% endcontent-ref %}


# Ticket Creation

Control how tickets are created within your inbox.

There are two main approaches to creating tickets in Wrangle:<br>

* **Manual Ticket Creation** - This means that your requesters will [create tickets manually](/tickets/creating-tickets). There are no additional configuration options needed here unless you'd like to specify [a custom emoji for ticket creation](#custom-emoji-for-ticket-creation).
* [**Automatic Ticket Creation**](#auto-create) - Wrangle will automatically create a new ticket for messages posted to specific Slack channel(s). Read on below for details on how to set this up.

## Automatic Ticket Creation <a href="#auto-create" id="auto-create"></a>

When automatic ticket creation is enabled, Wrangle converts every message in your designated intake channels into a ticket.

<figure><img src="/files/pqG6i5CKcy0neDSHOXCF" alt=""><figcaption><p>When someone sends a message to the channel, Wrangle automatically creates a ticket.</p></figcaption></figure>

**To enable auto-creation**, go to **Ticket Lifecycle > Ticket Creation**. Under "How would you like to create tickets?", select "Turn new channel messages into tickets automatically."

<figure><img src="/files/lVY6aCpcoGw5JvocYBVc" alt="" width="563"><figcaption></figcaption></figure>

Once you enable auto-creation, you can then choose your intake channel(s) where all messages will be converted into tickets. Additionally, you'll have the options for auto-creation to include or ignore both bot messages and agent/admin messages.

<figure><img src="/files/Cc4OzV66oWpYUrilBLCa" alt="" width="563"><figcaption></figcaption></figure>

### Bypass ticket creation using Smart Replies

If you have [Smart Replies](/tickets/ai-powered-ticketing/smart-replies) enabled, you can select the "Bypass ticket creation using Smart Replies" option. With this automation, Wrangle will attempt to answer all incoming messages in the channel with a smart reply. If no match is found, Wrangle will *not* create a ticket. This is great for channels with discussions that don't necessarily result in tickets but still cover common topics.

**To enable Smart Replies bypass:**

1. Navigate to **Ticket Lifecycle > Ticket Creation**
2. Under "How would you like to create tickets?", select **"Bypass ticket creation using Smart Replies"**

<figure><img src="/files/DaH4FSJvdZykk1jTsLWb" alt="" width="563"><figcaption></figcaption></figure>

### Intake channels

Intake channels are Slack channels where Wrangle monitors for new tickets. How they behave depends on your ticket creation method:&#x20;

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

**With manual ticket creation:** Any message you react to with 🎫 or 🎟️ in your intake channels becomes a ticket for this inbox.

**With automatic ticket creation or Smart Replies bypass:** Every message in intake channels either becomes a ticket or receives a Smart Reply attempt.&#x20;

### Custom Emoji for Ticket Creation

When manual ticket creation is enabled, tickets are created by reacting to Slack messages with any of these default emojis: 🎫 or 🎟️. You can also define a custom emoji for each inbox to personalize ticket creation or route tickets to specific inboxes based on the emoji used.

#### Setting Up Custom Emoji

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

**To configure a custom emoji:**

1. Navigate to **Ticket Lifecycle > Ticket Creation**
2. Under "How would you like to create tickets?", select **"Create tickets manually"**
3. Find the field "What emoji should be used to create tickets?"
4. Enter your custom emoji using either:
   * The emoji itself: 🆘
   * The text format: :sos: or sos
5. Click **Save**

#### Perfect for: Custom routing and personalized workflows

**Personalized ticket creation:** Use a custom emoji that fits your team's style, like 🔧 for IT support or 💰 for billing requests.

**Custom routing by emoji:** Set different emojis for different inboxes to automatically route tickets to the right team:

* 🆘 → IT Security inbox
* 💼 → HR inbox
* 🎨 → Marketing requests inbox

When users react to a message with your custom emoji, a ticket is automatically created in that specific inbox.&#x20;


# Ticket Assignment

Make it easier to automatically assign new tickets to an inbox agent and to ensure your requesters and followers are kept in the loop with assignment notifications.

<figure><img src="/files/kjiNPKSZQLCXAGWv2zX1" alt="Assign on first reply"><figcaption><p>When an agent replies in the thread, the ticket is automatically assigned to them.</p></figcaption></figure>

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

## Ticket Assignment

**Auto-assign new tickets to an agent:** Enables round-robin assignment for all new tickets. Wrangle distributes tickets equally across all inbox agents as they're created.

Use the "Include inbox admins in auto-assignment" toggle to control whether admins are included in the rotation. When disabled, only users with the agent role receive auto-assigned tickets. Note: Admins can still be manually assigned to tickets even when excluded from auto-assignment.

**Assign ticket to the first agent who replies:** Automatically assigns the ticket to the first agent who replies in an unclaimed ticket thread. Instead of agents manually claiming tickets, they simply add a comment to claim it.

## Requester & Follower Notifications

If agents claim tickets without commenting, or if queue managers assign tickets directly, requesters won't see any activity in the thread. Enable "Notify when ticket is first assigned" in [Ticket Notifications](https://docs.wrangle.io/~/revisions/e6VuSVo8BqJYP35xOoa4/tickets/setting-up-your-inbox/settings/ticket-notifications) settings to keep stakeholders informed.&#x20;

{% hint style="info" %}
If you have agent first response time [SLAs](/tickets/setting-up-your-inbox/ticket-slas) enabled, this assignment notification counts as the first response.
{% endhint %}

<figure><img src="/files/DMdzqQFRrY1ixRNuRa52" alt=""><figcaption><p>When an agent claims the ticket, Wrangle notifies the requester.</p></figcaption></figure>


# Ticket Resolution

Auto-close tickets, send CSAT surveys, and ensure your requesters and followers are kept in the loop when their tickets are resolved.

## Resolution Automations

**Automatically close tickets in response to reactions.** Enable quick ticket closure by allowing agents, admins, or bots to close tickets with a ✅ reaction. When enabled, reacting to any message in a ticket thread with ✅ automatically changes the ticket status to "Closed."

This is commonly used by teams who have built Slack bots to auto-close tickets based on specific criteria, like tickets referencing a resolved issue or tickets created before a certain date.

<figure><img src="/files/jLXC0Qt10xCVs8EhwAlZ" alt=""><figcaption><p>When an agent reacts to the original message with ✅, Wrangle closes the ticket.</p></figcaption></figure>

{% hint style="info" %}
We see this used most often by Wrangle customers who have built their own Slack bots to auto-close tickets based on certain criteria, like tickets referencing a particular issue that is no longer relevant, or tickets created before a particular date.
{% endhint %}

### Auto-closing tickets

Keep your inbox organized by automatically closing tickets that have been inactive for a set period of time.

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

**To enable auto-closing:**

Enable "Automatically close tickets that have not been resolved" and set your desired inactivity period (anywhere from 15 minutes to several weeks).

**How it works:**

* Tickets with no activity are automatically closed after the specified time frame
* Any updates or replies to the ticket reset the inactivity timer
* Tickets with an "On Hold" status will not be auto-closed

## Post-Resolution Automations

Wrangle offers tools for closed/resolved tickets to make it easier for requesters to get additional help, as well as to give you valuable data about how well your team is performing.&#x20;

<figure><img src="/files/30B7ZzYIBYZ3nwgIMPi1" alt=""><figcaption></figcaption></figure>

#### Automatic Ticket Reopening

**Reopen a ticket when a requester replies to a closed or resolved thread:** When enabled, this automatically changes the ticket status back to "In Progress" if a requester replies after resolution. putting it back in the agent's Waiting on Me queue. This puts the ticket back in the agent's [Waiting on Me](/tickets/web-app-monitoring-tickets/my-dashboard) queue for them to address any additional questions the requester has.

{% hint style="info" %}
Wrangle uses AI to ignore replies like "thanks" or "that fixed it." Only replies that clearly indicate a need for additional assistance will reopen the ticket.
{% endhint %}

#### Customer Satisfaction Surveys

Finally, the "Send a satisfaction survey when a ticket is closed or resolved" option allows you to start collecting CSAT scores from your requesters. Whenever a ticket is "Resolved", Wrangle will post a survey in the thread for the requester to fill out.&#x20;

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

Once completed, the CSAT score will not be posted to the Slack thread, but it will be visible in the Wrangle web app. You can find CSAT scores for specific tickets under "Satisfaction rating", or view them in the main tickets dashboard.

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

{% hint style="info" %}
Wrangle will only send Customer Satisfaction surveys to "Resolved" Tickets, not "Closed" tickets.&#x20;
{% endhint %}

You can find additional summary CSAT data in your [ticket report](broken://pages/GVKPE1rDJXYRlpHIV4EN).

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


# Ticket Routing & Escalations

Super-charge your ticketing flows by leveraging Wrangle's routing and escalation automations.

You may optionally enable form-field based ticket routing to support workflows like:

* **Routing a ticket to a specific inbox**\
  Add a custom form field (e.g., *Product*, *Request type*, *Region*), then route the ticket to a destination inbox when a matching value is selected.
* **Escalating a ticket to a specific user or group**\
  Add a custom form field (e.g., *Priority*, *Customer tier*, *Severity*) and assign the ticket to specific agents or agent groups when the condition is met.

{% hint style="info" %}
The [working hours](https://docs.wrangle.io/account-administration/working-hours) of agents and agent groups will be taken into account when making ticket assignments.
{% endhint %}

### How conditions work

* Conditions are evaluated in order, top to bottom.
* The **first condition that matches** determines what happens (route or assign).
* You can **drag conditions** to change evaluation priority.
* If **no conditions match**, the ticket is created in the current inbox with your default behavior.

#### Example: Routing to different inboxes by request type

Create a “Request type” form field and use it to route tickets:

* If *Request type* includes **Billing** → route to the **Billing** inbox
* If *Request type* includes **Bug** → route to the **Engineering** inbox

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

#### Example: Assigning to specific agents or groups

Create "Severity" and "Component" form fields in the **Engineering** inbox, for example, and use them to assign tickets:

* If *Severity* equals **P1** → assign to the **On-call** group
* If *Component* includes **Integrations** → assign to the **Integrations** group

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

#### Routing and assignment can be combined

You can chain routing and escalation by using routing in the source inbox and conditional assignment in the destination inbox:

* **Source inbox**: route tickets to the inbox based on a form field.
* **Destination inbox**: apply **conditional assignment** (based on the same or additional form fields) to escalate to the right users or groups within that inbox.


# Ticket Statuses

Use Wrangle's default ticket statuses, or customize your own to fit your team's processes.

## Types of ticket status

Wrangle has two types of ticket status: original statuses, which are the ones that Wrangle automatically creates for every inbox, and custom statuses, which are the ones you create for specific inboxes.&#x20;

### Original statuses

Here's a breakdown of Wrangle's six original ticket statuses:&#x20;

<div align="center"><figure><img src="/files/9ysTi0Wk3OTp0YwXHUaj" alt=""><figcaption></figcaption></figure></div>

* **New** - The ticket has not yet been claimed
* **In Progress** - The ticket has been claimed and the agent is working on it
* **Waiting for Reply** - The ticket is paused while waiting for a response from the requester.&#x20;

{% hint style="info" %}
This status is only available when the [Waiting for Reply Automation](#waiting-for-reply-automation) is enabled.&#x20;
{% endhint %}

* **On Hold** - The ticket is on hold before it can be resolved. Time spent in On Hold status does not count against your [SLAs](/tickets/setting-up-your-inbox/ticket-slas)
* **Resolved** - The ticket has been completed with a resolution
* **Closed** - The ticket has been completed without a resolution

These six statuses cannot be deleted or renamed, but if you are using Custom Statuses, you can hide them. More below.

### Custom statuses

Custom statuses let you create new statuses that reflect your team's actual resolution process. Each custom status must map to one of the five original statuses so Wrangle can accurately track response and resolution times. In your preferred **Inbox** settings, click **Add new status** under **Ticket Statuses**.

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

#### Creating Custom Statuses

When creating a custom status, you'll choose which original status it maps to under the "Category" option.

**Example:** Instead of using the generic "On Hold" status, you could create:

* "Pending Legal Approval" (maps to On Hold)
* "Pending HR Approval" (maps to On Hold)

Now agents can provide more context about why a ticket is on hold, while Wrangle still tracks SLA metrics correctly.

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

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

{% hint style="info" %}
Custom statuses need to map to one of the six original statuses so Wrangle can accurately report on response and resolution times.
{% endhint %}

## Ticket status defaults

When you have multiple statuses mapped to the same original status, you can set which one is the default. Click "**Use as default**" while creating the custom status. Your default status will be applied whenever Wrangle automatically assigns a ticket status.

**Example 1: Custom "New" status**

* You create a custom status "Not going to fix" mapped to "Closed"
* You set "Not going to fix" as the default
* You have [automatically close tickets in response to reactions](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-resolution), that is, auto-close via ✅ reaction enabled
* Result: When agents react with ✅, the status is set to "Not going to fix" instead of "Closed"

**Example 2: Custom "Closed" status**

* You create a custom status "Unclaimed" mapped to "New"
* You set "Unclaimed" as the default
* Result: New tickets are automatically set to "Unclaimed" instead of "New"

## Ticket status visibility

As you add custom statuses, you can hide original Wrangle statuses that are no longer relevant. This prevents agents from selecting them when updating tickets.

{% hint style="info" %}
Original statuses can only be hidden when you have added a new custom status of the same type.
{% endhint %}

In our example, we've replaced "On Hold" with "Pending Approval." As long as a custom status with a Status Type of "On Hold" is selected as the default, you can then hide "On Hold" so agents won't be able to select it.

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

## Waiting for Reply Automation

The **Waiting for Reply** automation keeps ticket statuses accurate without any manual effort. When enabled, Wrangle watches who is replying in a ticket thread and updates the status automatically.

**Where to find it:** Inbox Settings → Ticket Statuses → Status Automations → *"Update ticket status when awaiting response from requester"*

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

#### How it works

When the assigned agent replies to a ticket that is **New** or **In Progress**, Wrangle automatically moves it to **Waiting for Reply** — a reserved On Hold status indicating the ball is in the requester's court.

When the requester replies to a **Waiting for Reply** ticket, Wrangle automatically moves it back to **In Progress**, signaling that the ticket needs attention again.

| Who replies    | Ticket was...               | New status        |
| -------------- | --------------------------- | ----------------- |
| Assigned agent | New or In Progress          | Waiting for Reply |
| Requester      | Waiting for Reply (On Hold) | In Progress       |

#### What counts as a reply

Only **public replies** in the ticket thread trigger the automation. Private notes that an agent writes are ignored.

The automation only fires when the replying agent is **assigned to the ticket**. Agents or admins who reply without being assigned do not trigger a status change.

If the same person is both the requester and an assigned agent on a ticket, the automation does not fire.

#### Using custom statuses for the Waiting for Reply automation

By default, the automation uses **Waiting for Reply** (On Hold) and **In Progress** as the two transition statuses. If your inbox uses custom statuses, you can choose them instead.

When the automation is enabled, two optional dropdowns appear:

* **Status after agent responds** — defaults to Waiting for Reply. You can select any custom On Hold status instead.
* **Status after requester responds** — defaults to In Progress. You can select any custom In Progress status instead.

<figure><img src="/files/hzUom1Zyx1pjLdZ1y2KQ" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="info" %}
**Waiting for Reply** is a reserved status name. It cannot be used as a custom status name or renamed.
{% endhint %}

**Ticket SLAs** — SLA timers (agent response time, resolution time) are based on ticket status changes. Tickets in Waiting for Reply (On Hold) status do not count toward SLA breach while waiting for the requester.


# Auto-Responder

Automatically respond to tickets created after hours, or customize your message to fit your team's availability.

Auto-Responder automatically sends a reply when tickets are created outside of your workspace or users' working hours, letting requesters know their message was received and when to expect a response.

### How it works

When enabled, Auto-Responder posts an automatic message to new ticket threads created after hours. This helps set expectations with requesters and reduces follow-up questions about response times.

Auto-Responder uses your organization's working hours configuration to determine when to send automatic replies. Account admins can [configure working hours](https://docs.wrangle.io/account-administration/working-hours) for your entire organization, which can also be customized at a [user or team-specific level](/account-administration/working-hours#working-hours-by-team-user-schedules).

### Setting up Auto-Responder

<figure><img src="/files/BjqZBeLToNRuskwaawwy" alt="Auto-responder page"><figcaption></figcaption></figure>

**To enable Auto-Responder:**

1. Go to **Inboxes** in the left sidebar.
2. On the **Inboxes** page, select the inbox you want to configure
3. Go to **Ticket Lifecycle** in the left sidebar of the Inboxes page
4. Click **Auto-Responder**
5. Toggle **Enable Auto-Responder** on
6. Customize the auto-responder message (optional)
7. Click **Save Changes**

### Customizing your message

The default auto-responder message is:

<figure><img src="/files/gV4ZlZwVP3dyThHPqtY6" alt="Displaying Auto-Responder default message when toggled on."><figcaption></figcaption></figure>

You can customize this message to match your team's voice and provide specific information like:

* Expected response times
* Links to self-service resources
* Escalation instructions for urgent issues
* Team availability details

**Formatting tip:** Use Slack markdown formatting and links in your message. [Learn more about Slack markdown](https://www.wrangle.io/post/slack-markdown-a-comprehensive-guide-to-formatting-messages).

### Best practices

**Be specific about timing:** Instead of "we'll get back to you soon," mention your typical response time: "We'll respond within one business day" or "Our team is back online at 9 AM EST."

**Include self-service options:** Link to your help center or FAQ if requesters might find immediate answers there.

**Set the right expectations:** Make sure your auto-responder message aligns with your actual SLA and working hours configuration.

**Test it:** After enabling, create a test ticket outside [working hours](https://docs.wrangle.io/account-administration/working-hours) to confirm the message appears as expected.


# Ticket SLAs

Use ticket SLAs to enforce both first response time and ticket resolution time.

SLAs can be as short as 15 minutes or as long as 10 working days (two weeks). Time spent outside of workspace-level [working hours](/account-administration/working-hours) will not count against your SLAs, nor will time spent in the `On Hold` status.

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

Once an SLA has been breached, Wrangle will at-mention your inbox agents and inbox admins in the ticket thread.&#x20;

<figure><img src="/files/1FBfm2JaLNC7y1RsXtPU" alt=""><figcaption></figcaption></figure>

***

### Use Automations to ensure SLA accuracy

Sometimes agents may forget to place a ticket On Hold or update the status of a ticket.  With the [Waiting for Reply automation](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-statuses#waiting-for-reply-automation), a ticket's status will automatically be updated to "Waiting for Reply" every time the assigned agent posts a message in the ticket thread, and will automatically go back to "In Progress" when the requester replies. &#x20;

***

### Who receives SLA pings?

By default, both **Agents** and **Inbox Admins** in an inbox receive SLA reminder notifications when tickets are late.

* If a ticket is **assigned**, only the assigned agent(s) receive pings.
* If a ticket is **unassigned**, Wrangle pings all Agents and Admins in the inbox (by default).

### Excluding admins from SLA reminders

A toggle in Inbox Settings → Ticket SLAs controls this:

<figure><img src="/files/NUOodzs4KHjdiKP6rbLe" alt="" width="563"><figcaption></figcaption></figure>

**"Include inbox admins in SLA reminders"**

* **On (default):** Both Agents and Admins receive SLA pings for unassigned late tickets.
* **Off:** Only Agents receive SLA pings. Inbox Admins are excluded from SLA notifications entirely.

{% hint style="info" %}
**What about account admins?** Account (workspace-level) admins have access to all non-confidential inboxes but are not inbox members. Because they are not added as inbox members, they never receive SLA pings — regardless of inbox SLA settings.
{% endhint %}


# Ticket Notifications

Control when Wrangle notifies requesters and followers about ticket updates in Slack, keeping everyone informed without notification overload.

Ticket notifications are posted directly to the Slack thread where the ticket was created. You can configure which events trigger notifications to help your team and requesters stay in sync without unnecessary interruptions.

### Configuring Ticket Notifications

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

**To adjust notification settings:**

1. Navigate to **Inboxes** and select the inbox you want to configure
2. Click **Ticket Notifications** in the left sidebar
3. Toggle the notifications you want to enable
4. Settings are saved automatically

### Notification Options

#### Assignment & Followers

**Notify when ticket is first assigned:** When a ticket is assigned for the first time, Wrangle sends a notification to the ticket requester and followers.

**Notify when assignee is changed:** When a ticket is reassigned to a different agent, Wrangle sends a notification to the new assignee, requester, and followers.

**Notify when followers are added or removed:** When users are added or removed as followers of the ticket, Wrangle sends a notification to the ticket requester and followers.

#### Status Notifications

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

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

Choose when to send notifications about ticket status changes:

**Don't notify on status changes:** No notifications will be sent when ticket status changes. Use this option to minimize notification noise if status updates happen frequently.

**Notify when ticket is closed or resolved:** Notifications will only be sent when tickets reach their final state (closed or resolved). This is useful if you want to keep requesters informed of resolution without notifying them of every status change along the way.

**Notify on all status changes:** Notifications will be sent for any status change, including when tickets are closed or resolved. Use this option when requesters and followers need full visibility into ticket progress.

#### Ticket Updates & Changes

**Notify when priority is changed:** When the ticket priority is updated (e.g., from 'Normal' to 'High'), Wrangle sends a notification to the ticket requester and followers.

**Notify when ticket links are changed:** When tickets are linked or unlinked from this ticket, Wrangle sends a notification to the ticket requester and followers.

**Notify when tags are changed:** When tags are added or removed from the ticket, Wrangle sends a notification to the ticket requester and followers.

**Notify when form field data is changed:** When custom form field values are updated, Wrangle sends a notification to the ticket requester and followers.

***

### Best Practices

**Start minimal, add as needed:** Begin with fewer notifications enabled and add more as you receive feedback from your team and requesters. It's easier to add notifications than to recover from notification fatigue.

**Consider your audience:** Internal support teams might want more granular updates (all status changes, priority changes), while customer-facing inboxes might benefit from a lighter touch (only resolved/closed notifications).

**Match notifications to your workflow:** If your team frequently updates tags or priorities during triage, those notifications might create noise. Enable them only if requesters need that visibility.

**Align with SLAs:** If you have strict [SLAs](https://docs.wrangle.io/tickets/setting-up-your-inbox/ticket-slas), enabling assignment and status change notifications helps keep requesters informed and builds trust through transparency.


# Tags

Enrich your ticket data using tags, and streamline the tagging process with auto-tagging.

Agents can add ticket tags from both the [inbox settings](/tickets/setting-up-your-inbox/tags) and when working on a ticket directly in Slack or [on the web](#managing-tickets-on-the-web). Use tags to understand what themes are responsible for the highest ticket volume.

<figure><img src="/files/crcHNBcmjB0JJuJwqiCa" alt="" width="532"><figcaption></figcaption></figure>

{% hint style="info" %}
When to use tags vs. [form fields](/tickets/setting-up-your-inbox/forms):\
\
If it's data your requester knows at the time they create their ticket, consider using a form field. If it's data that's uncovered while the agent works on the ticket, consider using a tag.
{% endhint %}

You can view all your inbox tags in the Inbox Settings under "Tags."&#x20;

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

## Auto-tagging

To streamline your tagging process and take the guesswork off agents' plates, you can enable auto-tagging.&#x20;

<figure><img src="/files/YvwYrXqla9LU9zSwbpsa" alt="" width="563"><figcaption></figcaption></figure>

With auto-tagging enabled, Wrangle will automatically apply the tag whenever the message used to create the ticket includes the tag's name.\
\
Optionally, you can also define a list of additional keywords to either include or exclude when auto-tagging a ticket.&#x20;

<figure><img src="/files/2VMDhknruq5p00lReorz" alt="" width="563"><figcaption><p>Inbox tags and their corresponding keywords</p></figcaption></figure>

To add keywords to an existing tag, click on the tag name. Otherwise, click "Add Tag" to create a new tag with keywords.&#x20;

<figure><img src="/files/ioAK5GmXegGZqU3QP0xh" alt="" width="546"><figcaption><p>Add optional keywords to include or exclude when tagging a ticket.</p></figcaption></figure>

In the above example, our tag name is "SAML," our keywords to include are "Okta" and "SSO," and our keyword to exclude is "OIDC." Let's look at some sample ticket messages to see how auto-tagging works with each:&#x20;

* *"Getting a `400 saml_invalid_user_id_mapping` error"* - This will be auto-tagged as "SAML" because the error code in the ticket message includes the tag name "SAML"
* *"Need help with SSO"* - This will be auto-tagged as "SAML" because the ticket message includes the keyword "SSO"
* *"Can someone explain how Okta works with OIDC apps?"* - This will not be auto-tagged as "SAML," because even though it includes the keyword "Okta," it also include the exclusion keyword "OIDC"


# Forms

Capture additional context based on the needs of your team or organization.

## Default Form Fields

Wrangle has a default ticket creation form for your end users that includes several form fields:

* Ticket Name -  a general label for the ticket.
* Ticket Description - an optional field that can be used to gather more information.
* Priority - hidden from requesters by default but you can choose to show this to allow requesters to set priority when creating a ticket.

Within Slack, your users will be asked to select an inbox, and then will be provided with the ticket name and description field when creating a new ticket:

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

When configuring your inbox, you have the option to customize the Ticket Name and Ticket Description fields to fit your own use cases. For example, you might want to add a custom label and placeholder text value for the Ticket Name field, and then hide the Ticket Description field from your end users:<br>

<figure><img src="/files/3SIRUuLZo0zNnKLGogGC" alt="" width="280"><figcaption><p>Modifying default form fields for your inbox</p></figcaption></figure>

This would result in a simplified ticket creation form:

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

## Custom Form Fields

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

Custom form fields are a powerful way to collect additional information from your end users when a ticket is created. This can save a lot of time for your agents, avoiding the need for them to go back and forth collecting pieces of information you may already know will be necessary.\
\
Wrangle supports a wide variety of form field data types so you can collect different kinds of information based on the specifics of your inbox.

* **Short Answer** - text input for one or two line responses
* **Long Answer** - expandable long form text input for gathering extra context
* **Number Input -** allows only numbers, which can be useful if you want an extra layer of input validation before your agents are assigned to tickets
* **Select from List** - allows for single and multiple selections, and can be customized to allow users to do things like "**Select a product line"**, or "**Select your operating system**" to help your agents more effectively triage and process tickets
* **Select a Person/People** - includes a searchable list of users in your Slack workspace, and can be used to reference a department head, manager, or relevant colleague(s) to more effectively process the ticket
* **Select a Channel** - a searchable list of channels in your Slack workspace
* **Select a Date** - can be used to allows ticket requesters to specify when they need or expect a resolution, or to indicate related dates that will be relevant for agents resolving your tickets&#x20;

Here's an example of how you can add a custom form field with a description that includes a link to help your end users complete the form:<br>

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

{% hint style="success" %}
You can also **add a description** to the form field to give the requester more information and context when filling out the form. This can include external help links, why this question is important, and how to answer the question correctly. Use Slack markdown for formatting.
{% endhint %}

<div><figure><img src="/files/bImKWv4r6KYKDu4pzUhJ" alt=""><figcaption><p>Example form fields for an IT Help inbox</p></figcaption></figure> <figure><img src="/files/ChwJO2qVJRlI1pNXOwH7" alt=""><figcaption><p>Your requesters will see both the default fields and your additional form fields when submitting a ticket.</p></figcaption></figure></div>

#### Rearranging Form Field Order

You can reorder your form field questions by clicking and dragging them in your desired location.&#x20;

<figure><img src="/files/Xa07piAPvKQj5oiy0x8u" alt=""><figcaption><p>Reordering form fields</p></figcaption></figure>

{% hint style="info" %}
Note: if you want to include formatting with links in your form field descriptions, Wrangle supports [Slack Markdown](https://www.wrangle.io/post/slack-markdown-a-comprehensive-guide-to-formatting-messages) in these fields.
{% endhint %}

\
Now your end users will see a new required field called "What is your Employee ID?"

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

***

## Private Form Fields (Agents Only)

Private form fields are fields not shown to requesters when they create a ticket.  They let agents capture internal triage data (such as severity, escalation notes, etc), or anything else you want to track internally.

### Setting up a private form field

<figure><img src="/files/c1QKebxGh0w9LhOd6z8G" alt="" width="563"><figcaption></figcaption></figure>

1. Open your inbox and go to **Form Fields -> Custom**
2. Add a new custom field or edit an existing one
3. Toggle **Private (for agents)?** on
4. Save your changes When a field is marked private, it is automatically optional. Required fields cannot be private, because requesters would not be able to complete them.

### Who can see private form fields?

Requesters cannot see private form fields in either the web app or in Slack.  Agents, inbox admins, and account admins can view private fields, as well as add/edit them such as in the Slack modal below:

<figure><img src="/files/zWMrX31zfymCfRK3oACp" alt="" width="563"><figcaption></figcaption></figure>

Observers can also view private form field responses, however they cannot edit them. &#x20;

To view a private form field response in Slack, hit the **View form** button.  While requesters can see the form pop-up, the private form fields will be hidden.  Private form fields can also be viewed in the ticket panel in the Wrangle web app, in the **Fields** tab.&#x20;

{% hint style="info" %}
Private form fields collect internal-only **form data**. For agent-only **messages** during a ticket conversation, use [Private notes](/tickets/guide-to-ticketing/private-notes).&#x20;
{% endhint %}

## Dynamic Form Fields (Conditional Logic)

Dynamic form fields allow you to create smarter, more responsive ticket forms by displaying or hiding fields based on previous answers. This ensures that your end users only see the fields relevant to their request, reducing clutter and improving efficiency.

<figure><img src="/files/0efqbZS2Lx59SxPQveyF" alt=""><figcaption><p>Live dynamic form "Hardware Type" appears only when "Hardware" is selected</p></figcaption></figure>

### How It Works

With **Conditional Form Fields** you can configure custom form fields to appear dynamically based on a user's input. For example:

* If **"Request Type"** is **"Hardware"**, then a field for **"Hardware Type"** appears.
* If **"Do you need manager approval?"** is **"Yes"**, then a field for **"Manager's Name"** appears.

This functionality allows you to collect the right information at the right time, streamlining the ticket creation process.

### Setting Up Conditional Form Fields

<figure><img src="/files/QpXH6mxB7ngb497RdtOP" alt=""><figcaption><p>Making a form field conditional</p></figcaption></figure>

When configuring your inbox, you can add dynamic behavior to your ticket form:

1. **Go to Your Inbox Settings**
   * Navigate to **Form Fields** and select the form you want to modify.
2. **Enable A Form Field for Conditional Logic**
   * Select the field that should appear conditionally.
   * Toggle on **"Conditionally show this field?"**
3. **Define the Conditions**

   * Define the following conditions that need to be met in order for requesters to see this form field:&#x20;
     * Which previous question would you like to make this form field conditional on?&#x20;
     * What data response criteria need to be met in that previous question in order to show this form field?&#x20;
     * This could be: Includes, Does not Include, Equals, Does Not Equal, Greater Than, Less Than, Equal To, etc.&#x20;

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

You can see which form fields are conditional by Crossed Out Eye icon on the right side of each form field. This indicates that Conditional Logic is turned ON for this form field.&#x20;

<figure><img src="/files/IgO4crCODxpuPXOTrMdp" alt=""><figcaption><p>This icon indicates that conditional logic is activated for this form field. </p></figcaption></figure>

{% hint style="info" %}
Note: only **Required** form fields can be used as a conditional for conditional form fields.
{% endhint %}

#### Benefits of Dynamic Forms

✅ **Simplifies Forms** – Users only see necessary fields, reducing form fatigue.\
✅ **Improves Data Accuracy** – Ensures users provide required details only when relevant.\
✅ **Enhances User Experience** – A cleaner, more intuitive ticket submission process.

With dynamic form fields, your Wrangle inbox can better adapt to different request types, helping your team process tickets more efficiently.


# Canned Replies

Created replies for your agents to use on the fly within the Wrangle web app.

Use canned replies to help agents reply to common requests. Canned reply names are searchable, so be sure to use clear, concise names for each reply to help agents easily find and use the right one.

<figure><img src="/files/tbw3fXEKIwzu5ZbsbHZp" alt=""><figcaption><p>Create canned replies to save time for your agents when replying to common requests</p></figcaption></figure>

{% hint style="info" %}
Not sure what your common requests are? Use [tags](/tickets/setting-up-your-inbox/tags) to categorize your tickets and track common themes!
{% endhint %}


# Integrations

When you enable an integration for an inbox, you'll see integration specific options available on this page.

We directly integrate with:

* [Zendesk](#zendesk)
* [Notion](/integrations/notion)
* [Jira Service Management](#jira-service-management)

For other tools and integrations, we also offer:

* [Zapier](/integrations/zapier) - Use Wrangle's Zapier Triggers and Actions to connect to thousands of services.
* [Wrangle API](/integrations/wrangle-api) - Use Wrangle's API to build your own integrations.

## Zendesk

When an inbox is linked to Zendesk, you'll see the following settings can be configured at the inbox level:

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

Customize your Wrangle inbox <-> Zendesk integration here with the following options:

* **Sending comments as internal notes** - some organizations prefer comments from Wrangle default to internal notes in Zendesk so they are not sent to customers. You may control that here.
* **Custom form field mapping** - want to keep your form fields in sync between Wrangle and Zendesk? No problem. Simply choose which Wrangle form field(s) you'd like to link to which Zendesk form field(s) and Wrangle will take care of the rest. Linked field values are synced bi-directionally so you don't have to worry about keeping the two systems in sync.
* **Custom status mapping** - If you want to keep a ticket in Zendesk open even after it's resolved in Wrangle, you'd add 'Resolved' in Wrangle to map to whatever status you prefer in Zendesk.

## Notion

You can see which [Notion integrations](#notion) are connected to your inbox within your Inbox settings. You can add and remove Notion integrations from your inbox on this page.<br>

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

To make changes to the content used within a Notion integration, you'll want to [edit that integration directly](/integrations/notion#editing-an-integration).

## Jira Service Management

When an inbox is linked to JSM, you'll see the following settings can be configured at the inbox level:

* **Sending comments as internal notes** -  some organizations prefer comments from Wrangle default to internal notes in JSM so they are not sent to customers. You may control that here.

<figure><img src="/files/WPOPrVRy2BSaPybyIEUn" alt="" width="375"><figcaption></figcaption></figure>


# Export History

Export a CSV of each inbox's full ticket history for analysis.

Here's what you'll see in your export:&#x20;

* Inbox ID and name
* Ticket ID, name, and number
* Ticket created at, created by, and requested by
* Ticket [status](/tickets/web-app-monitoring-tickets#ticket-statuses) and [priority](/tickets/web-app-monitoring-tickets#ticket-priority)
* Assigned to
* First agent response, first resolved/closed, and last resolved/closed
* [Satisfaction score](/tickets/web-app-monitoring-tickets#customer-satisfaction-csat-survey)
* [Tags](/tickets/web-app-monitoring-tickets#ticket-tags)
* [Form field values](#form-fields)

When you've exported your ticket history, you'll receive a message in Slack with a link to download the report.


# Archive

If you no longer need an inbox, then you can archive your inbox to hide it and its tickets from your workspace. This is especially helpful if you used a test channel to try out ticketing before rolling it out in your actual help channel.


# AI Powered Ticketing

{% content-ref url="/pages/BwBKvayELGqqn3Ulp4MC" %}
[AI Copilot](/tickets/ai-powered-ticketing/ai-copilot)
{% endcontent-ref %}


# AI Copilot

{% content-ref url="/pages/BwBKvayELGqqn3Ulp4MC" %}
[AI Copilot](/tickets/ai-powered-ticketing/ai-copilot)
{% endcontent-ref %}


# AI Powered Ticketing

Leverage Wrangle's AI ticketing features to save time for your agents.

{% content-ref url="/pages/9POaGVQGEnPpzLoD0UP6" %}
[AI Ticket Deflection](/tickets/ai-powered-ticketing/ai-ticket-deflection)
{% endcontent-ref %}

{% content-ref url="/pages/BwBKvayELGqqn3Ulp4MC" %}
[AI Copilot](/tickets/ai-powered-ticketing/ai-copilot)
{% endcontent-ref %}

{% content-ref url="/pages/VO8bnIIwn5R1c1NxUIWl" %}
[Smart Replies](/tickets/ai-powered-ticketing/smart-replies)
{% endcontent-ref %}

{% content-ref url="/pages/OyWWn8TemHTLfJ7d4NKA" %}
[Broken mention](broken://pages/OyWWn8TemHTLfJ7d4NKA)
{% endcontent-ref %}


# AI Ticket Deflection

Lower your agents' workload and resolve issues faster using AI-powered ticket deflection.

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

### How it works

First, add links to public-facing documents to your inbox, [connect to Notion](/integrations/notion), or upload PDF documents if you prefer to work with private documentation.\
\
These documents contain answers to common questions you get in this inbox; for example, documentation for HR inboxes might include benefits information, your employee handbook, and instructions for accessing your company's HR portal.\
\
Wrangle's AI reads your documentation and looks for an answer whenever new questions are submitted to your intake channel.\
\
If Wrangle finds an answer, it will reply to the request with a summary of its findings, links to the relevant documentation, and the option to either close the issue or open a ticket.

If Wrangle doesn't find an answer, it will automatically open a ticket.

{% hint style="info" %}
**Measuring performance:**  See how your AI Ticket Deflection is working — including outcome breakdowns, which knowledge base sources are being used, and response quality ratings — in the [AI Deflection reports](/reporting/ticket-reporting/ai-deflection-reports).
{% endhint %}

#### Requirements for ticket deflection

Ticket deflection is part of the Scale plan. **Contact us** at <sales@wrangle.io>, or reach out to us over live chat [here](https://slack.wrangle.io/support) to discuss adding it to your Wrangle account.

#### Required Form Fields and AI Ticket Deflection

If your inbox has required form fields, Wrangle will send the user a prompt asking them to fill out the form.  Once the user has filled out the required fields, Wrangle can attempt to deflect a ticket with an AI response.  Your user's required form field answers are not used in the deflection attempt, but are preserved in case a ticket needs to be created. &#x20;

### Document links

You may use public-facing URLs (such as <https://wrangle.apidocumentation.com/>) for AI ticket deflection. Wrangle will automatically scan your content (every 24 hours) for updates, so we recommend you use this option when possible.&#x20;

#### How link following works

When you add a public URL to AI Ticket Deflection (like your help center or documentation), Wrangle doesn't just read that single page. It automatically discovers and indexes up to 50 additional pages linked from your original URL.

**Example:**

* You add: `yourcompany.com/help`
* AITD indexes that page, plus follows links to pages like:
  * `yourcompany.com/help/billing`
  * `yourcompany.com/help/setup`
  * `yourcompany.com/help/troubleshooting`
  * (up to 50 linked pages total)

### Document uploads

If you have your documentation in a private knowledge base or wiki, you'll first need to export any relevant articles or pages as PDFs. If your knowledge tool does not include an export-to-PDF option, you can copy and paste the page contents to a Google Doc or Word document, then save that as a PDF.&#x20;

Once your PDFs are ready, navigate to your Inbox Settings, open the AI Ticket Deflection tab, then click Add Documents. You can add up to 100 documents, as long as none of them exceed 10MB. If you need to edit a document, you can delete it from your inbox and upload the updated version.

### How tickets work with deflection enabled

Once ticket deflection is enabled and your help documents have been uploaded or linked to Wrangle, Wrangle's AI will start attempting to answer questions as they come in.

When Wrangle finds a match in your documentation, it will reply to the requester's message with both a summary of its answer, as well as links to the corresponding documentation. It'll also ask the requester whether their question has been answered, or if they'd like to open a ticket.

<figure><img src="/files/N3Q1pe99xJm6FzAXFFmb" alt="" width="563"><figcaption><p>Wrangle's AI answering an incoming question</p></figcaption></figure>

If the requester selects "Yes, this answered my question" Wrangle will not open a ticket. If the requester selects "No, start a ticket" Wrangle will open a ticket directly within the thread.&#x20;

<figure><img src="/files/UyLQqPxCvAPy8Gp54RFW" alt="" width="494"><figcaption><p>Wrangle's AI can't find an answer, so it opens a ticket</p></figcaption></figure>

{% hint style="info" %}
Want to customize the tone of the Wrangle bot's responses, or how short or long they are?  Check out [Customize tone & verbosity](/tickets/ai-powered-ticketing/customize-tone-and-verbosity).
{% endhint %}


# AI Copilot

Use AI Copilot to generate ticket replies for your agents based on ticketing data from your inbox.

Once enabled, Wrangle will use context from previously resolved tickets in your inbox to help agents reply from the Wrangle web app. If you have [connected your inbox to Notion](/integrations/notion), Wrangle will also use your selected pages to suggest replies for your agents.

<figure><img src="/files/XrU1qcjqYKO3LB2C49GX" alt=""><figcaption><p>To get started, enable Copilot for your inbox</p></figcaption></figure>

{% hint style="info" %}
When enabling AI Copilot, Wrangle may take up to 24 hours to begin processing content from your inbox.
{% endhint %}

Once AI Copilot has been enabled, you'll see a Copilot button in the Wrangle web app:

<figure><img src="/files/Lw0yZVctatFpXzsn3ozN" alt="Copilot button in web app text editor"><figcaption><p>AI Copilot button within the ticket</p></figcaption></figure>

You can also use the `Suggest a reply` shortcut by typing `/`:

<figure><img src="/files/sABmCQjODwUoigYJyzZl" alt="Copilot shortcut in the ticket&#x27;s text editor"><figcaption><p>Accessing the AI Copilot shortcut within the ticket</p></figcaption></figure>

You will be able to edit any replies that are generated before you send them, as shown below:

<figure><img src="/files/CwsE5IjtEcFkoB9nThQU" alt=""><figcaption><p>Creating and editing a ticket reply using Wrangle's AI Copilot</p></figcaption></figure>


# AI Response Preview

Response Preview lets you test how Wrangle would respond to a message before your users ever see it. Use it to validate your AI settings, custom prompts, and knowledge base coverage.

To access it: go to your inbox settings -> **AI Powered Ticketing**, and select **Response Preview** from the sidebar.

<figure><img src="/files/8WVelwEqhKSEWtcY4ZgK" alt=""><figcaption></figcaption></figure>

#### How to use it

1. Enter a sample message your users might send.
2. Click **Preview Response**.
3. Wrangle will then generate an example response that includes:
   * The AI-generated response
   * The type of response (**AI Ticket Deflection** or **Smart Reply**)
   * The sources used to generate the answer

{% hint style="warning" %}
**"No knowledge base documents matched this query"** — If you see this message, it indicates no documents in your knowledge base were relevant to the test message. Try adding more documentation, or enable Web Search if the topic isn't covered internally.  To troubleshoot, [read more about how link following works](/tickets/ai-powered-ticketing/ai-ticket-deflection#how-link-following-works). &#x20;
{% endhint %}

<br>


# Customize tone & verbosity

You can customize the tone of the Wrangle bot's responses (such as a casual tone or more formal), and how verbose the bot is in the Shared AI Settings.

### Shared AI Settings

<figure><img src="/files/9yFoZAABM3i0VX3z8ySM" alt="" width="563"><figcaption></figcaption></figure>

Shared AI Settings control the tone, verbosity, and web search behavior of all AI responses in an inbox. These settings apply to both **AI Ticket Deflection** and **AI Copilot**.

You can find Shared AI Settings at the bottom of the AI Ticket Deflection page, the AI Copilot page, or  on the [**Response Preview**](/tickets/ai-powered-ticketing/ai-response-preview) page.  Changing these settings in one of these locations will change it for all.

#### Tone

Choose the writing style Wrangle uses when responding to users.

| Option                      | Description                                                                |
| --------------------------- | -------------------------------------------------------------------------- |
| **Formal**                  | Professional, business-appropriate language. Addresses users respectfully. |
| **Semi-formal** *(default)* | Balanced tone — friendly but professional. Works well for most teams.      |
| **Casual**                  | Conversational and relaxed. A good fit for teams with an informal culture. |

#### Verbosity

Control how much detail Wrangle includes in its responses.

| Option                   | Description                                                                 |
| ------------------------ | --------------------------------------------------------------------------- |
| **Concise**              | Short, to-the-point answers with only essential information.                |
| **Moderate** *(default)* | Balanced responses with clear answers and numbered steps where appropriate. |
| **Verbose**              | Thorough, detailed explanations with additional context and background.     |

{% hint style="info" %}

#### Curious how your tone and verbosity settings will look to your end users?  Use the [Response Preview](/tickets/ai-powered-ticketing/ai-response-preview) to test out your settings and check your KB document coverage!

{% endhint %}

#### Web Search

When enabled, Wrangle can search the web to supplement answers when your knowledge base doesn't contain enough information. Your knowledge base documents always take priority — web results are only used when needed.

### Prompt Configuration

By default, Wrangle automatically generates the AI prompt from your Shared AI Settings (**Guided Mode**). If you need full control over how the AI responds, you can switch to **Custom Prompt** mode.

<figure><img src="/files/jLKwdwTbrbrbKen0FXDm" alt="" width="375"><figcaption></figcaption></figure>

#### Guided Mode *(Recommended)*

Wrangle builds the prompt automatically based on your tone, verbosity, and web search settings. No manual editing required. This is the best option for most teams.

#### Custom Prompt *(Advanced)*

Switch to Custom Prompt for complete control over the AI's instructions. Your prompt is pre-populated from your current Shared AI Settings as a starting point.

**Required variables**

Your custom prompt must include the following placeholders — Wrangle will substitute them at runtime:

| Variable    | Description                                                                                                                                            |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `QUESTION`  | The user's incoming message                                                                                                                            |
| `DOCUMENTS` | Relevant content from your knowledge base                                                                                                              |
| `{NONE}`    | Instructs the AI to return no response if it can't find a reliable answer. **Required** — omitting it may cause the AI to generate inaccurate replies. |

Wrangle will warn you if any of these variables are missing from your prompt.

**Reset Prompt**

The **Reset Prompt** button restores your custom prompt to the auto-generated version based on your current Shared AI Settings.

{% hint style="info" %}
If you switch back to Guided Mode, your custom prompt text is preserved and will be restored if you switch to Custom Prompt again.
{% endhint %}


# Smart Replies

Lower your agents' workload and resolve issues faster using keyword-based smart replies.

Smart replies are prepared answers that Wrangle can use to automatically respond to common requests.&#x20;

Toggle on "Enable Smart Replies" and click "Add Reply" to create your first smart reply.

<figure><img src="/files/qUF5BmVjoxP9NVbzlDPa" alt=""><figcaption><p>Enable smart replies and add your first reply.</p></figcaption></figure>

You can add multiple keywords or phrases separated by a line break, as well as a reply that will be sent every time one of those phrases is used in your inbox channel.

<figure><img src="/files/4YLoG4RB55eieVDEKYmY" alt="" width="419"><figcaption><p>Define your keywords and reply.</p></figcaption></figure>

#### Smart replies and ticket creation method

In the Automations section of your inbox settings there are three options for ticket creation. Here's how smart replies work with each option:

1. **Turn new channel messages into tickets automatically** - Wrangle will attempt to answer all incoming messages in the channel with a smart reply. If no match is found, Wrangle will automatically create a ticket.
2. **Create tickets manually** - If you use our [message shortcut](/tickets/creating-tickets#creating-a-ticket-from-a-message-shortcut) or [emoji reaction](/tickets/creating-tickets#creating-a-ticket-via-emoji-reaction) on a message, Wrangle will attempt to answer with a Smart reply. If no match is found, Wrangle will create a ticket.
3. **Bypass ticket creation using Smart Replies** - Wrangle will attempt to answer all incoming messages in the channel with a smart reply. If no match is found, Wrangle will *not* create a ticket.

### Smart replies in Slack

Whenever a smart reply is triggered for a message containing one of your keywords or phrases, Wrangle will send your prewritten reply, as well as a link to start a ticket if help is still needed.

<figure><img src="/files/mTEhkLZLrPnQHZjuJHj6" alt=""><figcaption><p>A smart reply in Slack.</p></figcaption></figure>

{% hint style="info" %}
If you also have [AI ticket deflection](/tickets/ai-powered-ticketing/ai-ticket-deflection) enabled, Wrangle will first look for your smart reply keywords. If none are found, *then* it will look for an answer in your help documents and attempt to formulate an AI response.
{% endhint %}


# Exporting AI Usage Data

Export detailed data about your AI Ticket Deflection and Smart Replies to understand why attempts did or did not result in tickets and optimize your AI setup.

Get detailed insights into your AI Ticket Deflection and Smart Replies performance by exporting usage data to a CSV file.

When you use AI-powered features like AI Ticket Deflection and Smart Replies, Wrangle tracks every attempt to answer requests automatically. Sometimes you want to dig deeper and understand why specific attempts did or did not result in a ticket being created. The AI usage export gives you the detailed information you need to analyze performance and optimize your setup.&#x20;

{% hint style="info" %}
You can ONLY export data after configuring [AI Ticket Deflection](/tickets/ai-powered-ticketing/ai-ticket-deflection) and/or [Smart Replies](/tickets/ai-powered-ticketing/smart-replies).
{% endhint %}

<figure><img src="/files/s2f8H2daMfY8phFCPBjg" alt="Wrangle Ticketing Report Deflections tab with &#x22;Export AI Usage Data&#x22; button highlighted"><figcaption><p>Export AI usage data from the Deflections report.</p></figcaption></figure>

### How to export AI usage data

1. **Open Deflections report:** Go to <https://slack.wrangle.io/reports/tickets/deflections>
2. **Click "Export AI Usage Data"** at the top of the page
3. **Wait for the export to process:** Wrangle will prepare your data
4. **Receive a notification in Slack:** When your export is ready, you'll get a Slack message with a download link.
5. **Download the CSV file:** Click the link in Slack to download your export.

<figure><img src="/files/fDn90KWi0qt3bXozPscO" alt=""><figcaption><p>Link to download AI usage data in Slack.</p></figcaption></figure>

### What's included in the export

This data helps you understand what's working well and where you might need to adjust your AI configuration or documentation. The AI usage export provides detailed data about:

* **AI Ticket Deflection attempts:** When Wrangle used AI to answer questions based on your linked documentation
* **Smart Replies attempts:** When Wrangle automatically responds based on your keyword-based smart reply rules
* **Success indicators:** Whether the user confirmed the answer resolved their question
* **Ticket creation:** Which attempts resulted in tickets being created
* **Source information:** Where AI-generated answers came from (which documents or knowledge sources)
* **Timestamps and metadata:** When attempts occurred and other contextual details.

{% hint style="info" %}
The export includes all AI Ticket Deflection and Smart Replies data from your configured inboxes.
{% endhint %}


# Creating Tickets

When [setting up your inbox](/tickets/setting-up-your-inbox), you'll have two options for ticket creation: create tickets manually, or turn new channel messages into tickets automatically.&#x20;

* **Create tickets manually**: tickets can only be created from a message or from our Slack global shortcut.&#x20;
* **Turn new channel messages into tickets automatically**: not only will every new message in the channel of your choice become a ticket, but you can create tickets manually as well.

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

### Creating a ticket from a Direct Message (DM) via message shortcut

Any comment in Slack can be turned into a ticket, whether it's in your dedicated inbox channel, another channel, or a DM. You might use your inbox channel to field incoming questions, and any questions that need further investigation can be converted to tickets using a message shortcut.

{% embed url="<https://youtu.be/deYfCjor4ZA>" %}
Creating a Wrangle ticket from a Slack DM via the message shortcuts
{% endembed %}

<details>

<summary>Written instructions for turning a DM into a ticket</summary>

#### Step 1

To create a Wrangle ticket from a Slack DM, begin by accessing the message where assistance is required. Click on the More Actions icon in Slack.

<img src="https://api.trupeer.ai/api/v1/bot/workflow/image/url?agentId=67b74da9decf3fd1e6df5669&#x26;imageId=screenshot_0&#x26;access-token=Bearer%20eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkpqdmFlQm93T1NxSElGNVFzWEdrMCJ9.eyJpc3MiOiJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vIiwic3ViIjoiZ29vZ2xlLW9hdXRoMnwxMTY5NTE4MDEzNzkyMzA2MDA0MjEiLCJhdWQiOlsiaHR0cHM6Ly9hcGkudHJ1cGVlci5haS8iLCJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzQwNDk2MDU3LCJleHAiOjE3NDA1ODI0NTcsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwgb2ZmbGluZV9hY2Nlc3MiLCJhenAiOiJ4MHd6aFpMSmJMNUZ4bVZweGlEN3dRYXBENWpXWkZnMSJ9.qyuroaFqSTvy72a5ET-YdbdsD2R4rKjD17yT-XkNsHlsjDBmZJzjHACdEOyBKwZyk4txZHdL4pZxWJ8Zo4vg1ZVyUTrF1nUm7_YnubULEpqLJD36ovLFCp7rQI4D0UOFWyiHZah_tg3vaU5EIDaMESnmNKtOAMpDMN3eGyg-Ya2yfgrnvfwPDTSObvoXmHOF3rx0iQgXLRhiKKnmxvS2r0_15D4IeczGU-wg8jJWiNKJE8CHnALvB0tKDB3I0NrHFzK80aycXLsLLQYNfRRKVZndojYRNmuannn_O4kleLBtdEETMUNv4eXxd0e4sjioFdUbGBCl2ooeO_Mr9PMt9Q" alt="Screenshot" data-size="original">

#### Step 2

In the menu that appears, navigate to the Shortcuts section and select "Start a Ticket with Wrangle." If you don't see this shortcut, click "More message shortcuts..." and select it from the list of options.

<img src="https://api.trupeer.ai/api/v1/bot/workflow/image/url?agentId=67b74da9decf3fd1e6df5669&#x26;imageId=screenshot_1&#x26;access-token=Bearer%20eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkpqdmFlQm93T1NxSElGNVFzWEdrMCJ9.eyJpc3MiOiJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vIiwic3ViIjoiZ29vZ2xlLW9hdXRoMnwxMTY5NTE4MDEzNzkyMzA2MDA0MjEiLCJhdWQiOlsiaHR0cHM6Ly9hcGkudHJ1cGVlci5haS8iLCJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzQwNDk2MDU3LCJleHAiOjE3NDA1ODI0NTcsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwgb2ZmbGluZV9hY2Nlc3MiLCJhenAiOiJ4MHd6aFpMSmJMNUZ4bVZweGlEN3dRYXBENWpXWkZnMSJ9.qyuroaFqSTvy72a5ET-YdbdsD2R4rKjD17yT-XkNsHlsjDBmZJzjHACdEOyBKwZyk4txZHdL4pZxWJ8Zo4vg1ZVyUTrF1nUm7_YnubULEpqLJD36ovLFCp7rQI4D0UOFWyiHZah_tg3vaU5EIDaMESnmNKtOAMpDMN3eGyg-Ya2yfgrnvfwPDTSObvoXmHOF3rx0iQgXLRhiKKnmxvS2r0_15D4IeczGU-wg8jJWiNKJE8CHnALvB0tKDB3I0NrHFzK80aycXLsLLQYNfRRKVZndojYRNmuannn_O4kleLBtdEETMUNv4eXxd0e4sjioFdUbGBCl2ooeO_Mr9PMt9Q" alt="Screenshot" data-size="original">

#### Step 3

After selecting the option, choose the appropriate inbox where the ticket should be sent. The ticket's name and description, along with the individual on whose behalf the ticket is being created, are automatically filled in. Specify that the issue is related to your desired inbox (in this example, \<Ask-IT>.

<img src="https://api.trupeer.ai/api/v1/bot/workflow/image/url?agentId=67b74da9decf3fd1e6df5669&#x26;imageId=screenshot_2&#x26;access-token=Bearer%20eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkpqdmFlQm93T1NxSElGNVFzWEdrMCJ9.eyJpc3MiOiJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vIiwic3ViIjoiZ29vZ2xlLW9hdXRoMnwxMTY5NTE4MDEzNzkyMzA2MDA0MjEiLCJhdWQiOlsiaHR0cHM6Ly9hcGkudHJ1cGVlci5haS8iLCJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzQwNDk2MDU3LCJleHAiOjE3NDA1ODI0NTcsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwgb2ZmbGluZV9hY2Nlc3MiLCJhenAiOiJ4MHd6aFpMSmJMNUZ4bVZweGlEN3dRYXBENWpXWkZnMSJ9.qyuroaFqSTvy72a5ET-YdbdsD2R4rKjD17yT-XkNsHlsjDBmZJzjHACdEOyBKwZyk4txZHdL4pZxWJ8Zo4vg1ZVyUTrF1nUm7_YnubULEpqLJD36ovLFCp7rQI4D0UOFWyiHZah_tg3vaU5EIDaMESnmNKtOAMpDMN3eGyg-Ya2yfgrnvfwPDTSObvoXmHOF3rx0iQgXLRhiKKnmxvS2r0_15D4IeczGU-wg8jJWiNKJE8CHnALvB0tKDB3I0NrHFzK80aycXLsLLQYNfRRKVZndojYRNmuannn_O4kleLBtdEETMUNv4eXxd0e4sjioFdUbGBCl2ooeO_Mr9PMt9Q" alt="Screenshot" data-size="original">

#### Step 4

Once the inbox is selected and all information is verified, proceed to start the ticket.

<img src="https://api.trupeer.ai/api/v1/bot/workflow/image/url?agentId=67b74da9decf3fd1e6df5669&#x26;imageId=screenshot_3&#x26;access-token=Bearer%20eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkpqdmFlQm93T1NxSElGNVFzWEdrMCJ9.eyJpc3MiOiJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vIiwic3ViIjoiZ29vZ2xlLW9hdXRoMnwxMTY5NTE4MDEzNzkyMzA2MDA0MjEiLCJhdWQiOlsiaHR0cHM6Ly9hcGkudHJ1cGVlci5haS8iLCJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzQwNDk2MDU3LCJleHAiOjE3NDA1ODI0NTcsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwgb2ZmbGluZV9hY2Nlc3MiLCJhenAiOiJ4MHd6aFpMSmJMNUZ4bVZweGlEN3dRYXBENWpXWkZnMSJ9.qyuroaFqSTvy72a5ET-YdbdsD2R4rKjD17yT-XkNsHlsjDBmZJzjHACdEOyBKwZyk4txZHdL4pZxWJ8Zo4vg1ZVyUTrF1nUm7_YnubULEpqLJD36ovLFCp7rQI4D0UOFWyiHZah_tg3vaU5EIDaMESnmNKtOAMpDMN3eGyg-Ya2yfgrnvfwPDTSObvoXmHOF3rx0iQgXLRhiKKnmxvS2r0_15D4IeczGU-wg8jJWiNKJE8CHnALvB0tKDB3I0NrHFzK80aycXLsLLQYNfRRKVZndojYRNmuannn_O4kleLBtdEETMUNv4eXxd0e4sjioFdUbGBCl2ooeO_Mr9PMt9Q" alt="Screenshot" data-size="original">

#### Step 5

Upon starting the ticket from the DM, a reply to the original message is generated.

<img src="https://api.trupeer.ai/api/v1/bot/workflow/image/url?agentId=67b74da9decf3fd1e6df5669&#x26;imageId=screenshot_4&#x26;access-token=Bearer%20eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkpqdmFlQm93T1NxSElGNVFzWEdrMCJ9.eyJpc3MiOiJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vIiwic3ViIjoiZ29vZ2xlLW9hdXRoMnwxMTY5NTE4MDEzNzkyMzA2MDA0MjEiLCJhdWQiOlsiaHR0cHM6Ly9hcGkudHJ1cGVlci5haS8iLCJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzQwNDk2MDU3LCJleHAiOjE3NDA1ODI0NTcsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwgb2ZmbGluZV9hY2Nlc3MiLCJhenAiOiJ4MHd6aFpMSmJMNUZ4bVZweGlEN3dRYXBENWpXWkZnMSJ9.qyuroaFqSTvy72a5ET-YdbdsD2R4rKjD17yT-XkNsHlsjDBmZJzjHACdEOyBKwZyk4txZHdL4pZxWJ8Zo4vg1ZVyUTrF1nUm7_YnubULEpqLJD36ovLFCp7rQI4D0UOFWyiHZah_tg3vaU5EIDaMESnmNKtOAMpDMN3eGyg-Ya2yfgrnvfwPDTSObvoXmHOF3rx0iQgXLRhiKKnmxvS2r0_15D4IeczGU-wg8jJWiNKJE8CHnALvB0tKDB3I0NrHFzK80aycXLsLLQYNfRRKVZndojYRNmuannn_O4kleLBtdEETMUNv4eXxd0e4sjioFdUbGBCl2ooeO_Mr9PMt9Q" alt="Screenshot" data-size="original">

#### Step 6

This reply indicates that a ticket has been created, and includes a link to track the request. The link is also posted in the Inbox related channel.

<img src="https://api.trupeer.ai/api/v1/bot/workflow/image/url?agentId=67b74da9decf3fd1e6df5669&#x26;imageId=screenshot_5&#x26;access-token=Bearer%20eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkpqdmFlQm93T1NxSElGNVFzWEdrMCJ9.eyJpc3MiOiJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vIiwic3ViIjoiZ29vZ2xlLW9hdXRoMnwxMTY5NTE4MDEzNzkyMzA2MDA0MjEiLCJhdWQiOlsiaHR0cHM6Ly9hcGkudHJ1cGVlci5haS8iLCJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzQwNDk2MDU3LCJleHAiOjE3NDA1ODI0NTcsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwgb2ZmbGluZV9hY2Nlc3MiLCJhenAiOiJ4MHd6aFpMSmJMNUZ4bVZweGlEN3dRYXBENWpXWkZnMSJ9.qyuroaFqSTvy72a5ET-YdbdsD2R4rKjD17yT-XkNsHlsjDBmZJzjHACdEOyBKwZyk4txZHdL4pZxWJ8Zo4vg1ZVyUTrF1nUm7_YnubULEpqLJD36ovLFCp7rQI4D0UOFWyiHZah_tg3vaU5EIDaMESnmNKtOAMpDMN3eGyg-Ya2yfgrnvfwPDTSObvoXmHOF3rx0iQgXLRhiKKnmxvS2r0_15D4IeczGU-wg8jJWiNKJE8CHnALvB0tKDB3I0NrHFzK80aycXLsLLQYNfRRKVZndojYRNmuannn_O4kleLBtdEETMUNv4eXxd0e4sjioFdUbGBCl2ooeO_Mr9PMt9Q" alt="Screenshot" data-size="original">

#### Step 7

Within the Inbox channel, the tickets are properly organized, simulating that the ticket was perfectly created by the original requester.

<img src="https://api.trupeer.ai/api/v1/bot/workflow/image/url?agentId=67b74da9decf3fd1e6df5669&#x26;imageId=screenshot_6&#x26;access-token=Bearer%20eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkpqdmFlQm93T1NxSElGNVFzWEdrMCJ9.eyJpc3MiOiJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vIiwic3ViIjoiZ29vZ2xlLW9hdXRoMnwxMTY5NTE4MDEzNzkyMzA2MDA0MjEiLCJhdWQiOlsiaHR0cHM6Ly9hcGkudHJ1cGVlci5haS8iLCJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzQwNDk2MDU3LCJleHAiOjE3NDA1ODI0NTcsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwgb2ZmbGluZV9hY2Nlc3MiLCJhenAiOiJ4MHd6aFpMSmJMNUZ4bVZweGlEN3dRYXBENWpXWkZnMSJ9.qyuroaFqSTvy72a5ET-YdbdsD2R4rKjD17yT-XkNsHlsjDBmZJzjHACdEOyBKwZyk4txZHdL4pZxWJ8Zo4vg1ZVyUTrF1nUm7_YnubULEpqLJD36ovLFCp7rQI4D0UOFWyiHZah_tg3vaU5EIDaMESnmNKtOAMpDMN3eGyg-Ya2yfgrnvfwPDTSObvoXmHOF3rx0iQgXLRhiKKnmxvS2r0_15D4IeczGU-wg8jJWiNKJE8CHnALvB0tKDB3I0NrHFzK80aycXLsLLQYNfRRKVZndojYRNmuannn_O4kleLBtdEETMUNv4eXxd0e4sjioFdUbGBCl2ooeO_Mr9PMt9Q" alt="Screenshot" data-size="original">

#### Step 8

The ticket now resides in the correct location, allowing for the ticket to be claimed and work to commence.

<img src="https://api.trupeer.ai/api/v1/bot/workflow/image/url?agentId=67b74da9decf3fd1e6df5669&#x26;imageId=screenshot_7&#x26;access-token=Bearer%20eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkpqdmFlQm93T1NxSElGNVFzWEdrMCJ9.eyJpc3MiOiJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vIiwic3ViIjoiZ29vZ2xlLW9hdXRoMnwxMTY5NTE4MDEzNzkyMzA2MDA0MjEiLCJhdWQiOlsiaHR0cHM6Ly9hcGkudHJ1cGVlci5haS8iLCJodHRwczovL3RydXBlZXItZGVtby51cy5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNzQwNDk2MDU3LCJleHAiOjE3NDA1ODI0NTcsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwgb2ZmbGluZV9hY2Nlc3MiLCJhenAiOiJ4MHd6aFpMSmJMNUZ4bVZweGlEN3dRYXBENWpXWkZnMSJ9.qyuroaFqSTvy72a5ET-YdbdsD2R4rKjD17yT-XkNsHlsjDBmZJzjHACdEOyBKwZyk4txZHdL4pZxWJ8Zo4vg1ZVyUTrF1nUm7_YnubULEpqLJD36ovLFCp7rQI4D0UOFWyiHZah_tg3vaU5EIDaMESnmNKtOAMpDMN3eGyg-Ya2yfgrnvfwPDTSObvoXmHOF3rx0iQgXLRhiKKnmxvS2r0_15D4IeczGU-wg8jJWiNKJE8CHnALvB0tKDB3I0NrHFzK80aycXLsLLQYNfRRKVZndojYRNmuannn_O4kleLBtdEETMUNv4eXxd0e4sjioFdUbGBCl2ooeO_Mr9PMt9Q" alt="Screenshot" data-size="original">

</details>

***

### Creating a ticket from a global shortcut

Requesters can also create a ticket directly using our global "Start a Ticket" Slack shortcut. You can type one of the following commands to launch the shortcut:&#x20;

* `/wrangle`
* `/ticket`

You can also use Slack's search or their `/` shortcut menu to find the "Start a Ticket" option.

From there, you'll be prompted to choose an inbox, name the ticket, and describe the issue.&#x20;

<figure><img src="/files/c4HR3Epz6G0QhJRPNlqj" alt=""><figcaption><p>Assign an inbox, give the ticket a short but descriptive name, and add any necessary context</p></figcaption></figure>

### Auto-creating tickets

If you'd like to convert every new message in a public channel into a ticket, you can enable the "Turn new channel messages into tickets automatically" option on the [Ticket Creation](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-creation) page in your Inbox settings.

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

Once enabled, every new message in the channel will automatically be assigned a new ticket.&#x20;

<figure><img src="/files/dk4JXVrfVBn5MPhELP3F" alt=""><figcaption><p>Create tickets automatically from new channel messages.</p></figcaption></figure>

#### Enabling multiple or alternate intake channels for automatic ticket creation&#x20;

After enabling automatic ticket creation, you'll also have the option on the [Ticket Creation](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-creation) page to add any other channels you want to use as your intake channels. This is particularly useful when you want to manage tickets in a private channel while still giving requesters a public channel for creating their tickets.

<figure><img src="/files/Eh1YHsOUzHRImJXIFrcN" alt=""><figcaption><p>Choose your intake channel(s)</p></figcaption></figure>

#### Enabling ticket auto-creation for bot messages

By default, Wrangle will ignore bot messages when auto-creating tickets, but you can override that setting on the [Ticket Creation](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-creation)page:

<figure><img src="/files/05CWwqM7x9oeB1ilpPYJ" alt="" width="563"><figcaption><p>Toggle this setting on to auto-create tickets from bot messages</p></figcaption></figure>

{% hint style="warning" %}
Wrangle can only create tickets from bot messages if the bot has a Slack user ID. If you're unsure whether your bot has a Slack user ID, you can test your bot using Slack's `bots.info` [API method](https://api.slack.com/methods/bots.info).
{% endhint %}

### Creating a ticket via emoji reaction

In any channel where Wrangle has been added, you can use either the 🎫 or 🎟️ reacji to quickly create a ticket from a message.\
\
If the channel already has a single Wrangle inbox associated with it, a ticket will automatically be created whenever you react with either emoji.&#x20;

<figure><img src="/files/zs95bIOERgYG0EZvYXpR" alt="" width="563"><figcaption><p>Use a ticket reacji to start a ticket in your inbox channel</p></figcaption></figure>

If the channel has more than one Wrangle inbox associated with it, we will prompt you to select an inbox before creating the ticket.

<figure><img src="/files/OMhgpTXKFO8oOCIX5W4k" alt="" width="563"><figcaption></figcaption></figure>

If the channel is not associated with any Wrangle inbox but still has Wrangle added, we will prompt you to select an inbox before creating the ticket.

<figure><img src="/files/3SiS9zvb2bQbGZOP4msh" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="warning" %}
Creating a ticket via emoji will not work for any channel or DM where Wrangle has not already been added. In those cases, we recommend using the [message shortcut](#creating-a-ticket-from-a-message-shortcut) instead.&#x20;
{% endhint %}


# Request Approval

Learn how to request approvals on tickets when another team or stakeholder needs to review a request before it can be resolved. Approvals prevent tickets from being closed until approved or removed.

Add Request Approvals to tickets when another team or stakeholder needs to review a request before it can be resolved.

Tickets tend to be one-off chunks of work involving a single team. For example, IT help desk agents work through IT-related tickets, while product help desk agents handle product requests. While each help desk has its own assigned agents, there are cases where another team needs to be involved.

That's what Ticket Approvals are for. For example, if a request involves spending a large sum of money, someone from the finance team may need to approve the request before the Ticket can be resolved. Once an approval has been added to a Ticket, the Ticket cannot be resolved until it's approved or the Approval has been removed.&#x20;

Anyone can be assigned to a Ticket Approval, regardless of whether they are an Agent on the Inbox or not.

### Requesting Approval

You can request Approval from both Slack and the Wrangle web app.

#### From Slack

<figure><img src="/files/obk88KTQywVemUtFMsBV" alt=""><figcaption><p>Click the Request Approval button in Slack.</p></figcaption></figure>

1. **Open the ticket thread** in Slack
2. **Click the `...` menu** (three dots) in the ticket message
3. **Select "Request approval"** from the menu
4. **Choose who should approve** the request by selecting one or more people
5. **Submit the approval request.**

#### From the web

<figure><img src="/files/k1p6O0TsqylM7b8j34yY" alt=""><figcaption><p>Click Request Approval on the Wrangle web app.</p></figcaption></figure>

1. **Go to your ticket** at <https://slack.wrangle.io/tickets> or open it from your dashboard
2. Open the ticket page and **click "Request approval"**&#x20;
3. **Choose who should approve** the request by selecting one or more people.  Wrangle will notify each person that their approval has been requested.
4. If you select more than one approver, a second dropdown appears: **"How many approvers must sign off?"**

<figure><img src="/files/xO5qBXjcMBI2yoFcFg14" alt="" width="375"><figcaption></figcaption></figure>

#### Selecting multiple approvers

| Option                      | What it means                                                                                                                       |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| **Any one approver**        | The approval is complete as soon as a single approver approves                                                                      |
| **A majority of approvers** | More than half of the approvers must approve. Ties do not count — with an even number of approvers, a 50/50 split is not sufficient |
| **Every approver**          | All selected approvers must approve before the approval is complete (default)                                                       |

The threshold selector only appears when two or more approvers are selected. Single-approver approvals always require that one person to approve.

### Managing approval requests

#### Responding to an approval

When you're assigned to approve a ticket, you have three options:

**Approve**\
The request meets all requirements and can proceed. Once approved, the ticket can be resolved.

**Request changes**\
The request needs modifications before it can be approved. The ticket cannot be resolved until changes are made and a new approval is granted.

**Deny**\
The request cannot be approved. The ticket cannot be resolved while the approval is denied, but the approval can be removed if needed.

**Responding from Slack**

When you receive an approval request in Slack, you'll see three buttons in the ticket thread:

<figure><img src="/files/tHSwxKMkLgJjaZJ9X2QR" alt=""><figcaption><p>Slack thread page displaying approval options.</p></figcaption></figure>

1. Click the appropriate button for your decision
2. Add a comment explaining your decision (optional but recommended)
3. Your response will be recorded in the ticket thread

**Responding from the web**

When you go to a ticket with a pending approval:

<figure><img src="/files/QlCqB23RyuWKWkcJpVOO" alt=""><figcaption><p>Approval buttons on the Wrangle web app.</p></figcaption></figure>

1. Click the appropriate button for your decision
2. If you select "Request changes," you'll be asked to add a comment explaining what needs to be modified. For "Approve" or "Deny," your response will be recorded immediately.&#x20;
3. Your response will be recorded on the ticket.

#### Removing an approval

If an approval is no longer needed, it can be removed from the ticket:

**From Slack**

1. Open the ticket thread
2. Click the `...` menu on the approval request
3. Select "Remove approval"

<figure><img src="/files/9s1eJ6oQalGcmtM4HRN3" alt=""><figcaption><p>Remove Approval Request on Slack.</p></figcaption></figure>

**From the web**

1. Go to the ticket
2. Find the approval request
3. Click "Remove approval"

<figure><img src="/files/d57XV29zHhbz8VFBoPyt" alt=""><figcaption><p>Remove Approval Request on Wrangle web app.</p></figcaption></figure>

{% hint style="info" %}
Once removed, the ticket can be resolved without approval.&#x20;
{% endhint %}

### Approval notifications

**When an Approval is requested:**

* The assigned approver(s) receive a notification in Slack
* The approval is visible in the ticket thread and on the web

<figure><img src="/files/lUvlMVBxugUlkFaPoaze" alt=""><figcaption><p>Approval Request notification.</p></figcaption></figure>

**When an Approval is responded to:**

<figure><img src="/files/1tNeekbFZQkyoAFQ5gRt" alt=""><figcaption><p>Approve request on Wrangle web app.</p></figcaption></figure>

* The ticket requester receives a notification

<figure><img src="/files/tWycgrEbgqGU5R6BlgsO" alt=""><figcaption><p>Slack thread displaying Approval Request denied.</p></figcaption></figure>

* Any ticket followers receive a notification
* If there are multiple approvers needed on the ticket, progress will be updated for how many approvals are still necessary:

<figure><img src="/files/W1CBQiLMkMnJkBnu8gzf" alt="" width="375"><figcaption></figcaption></figure>

* The response is recorded in the ticket thread

## Perfect for cross-team requests, **like finance approvals or manager sign-offs**

**Finance approvals**\
Requests involving purchases, reimbursements, or budget expenditures exceeding a certain threshold require approval from the finance team before the ticket can be resolved.

**Manager sign-off**\
HR requests, time-off requests, or policy exceptions need manager approval before they can be processed.

**Security review**\
Access requests, permission changes, or system modifications require security team approval before implementation.

**Hardware purchases**\
IT requests for specialized or expensive equipment need approval from a budget owner or department head.

**Cross-team dependencies**\
When resolving a ticket requires work or approval from another team that doesn't regularly work in the inbox.


# Creating tickets from Teams

When using Wrangle within Microsoft Teams, you have a few options for creating tickets directly within Teams.

### Create tickets from Teams Messages

You can turn any Teams message into a ticket in Wrangle using Teams message shortcuts.

<figure><img src="/files/1XVfEOgx2u2pJ3WjDy9y" alt="Use message actions to start Wrangle tickets in Microsoft Teams"><figcaption></figcaption></figure>

\
Hover over any message in Teams and click the  (More...) menu. Select the `Start a ticket in Wrangle`  action. If you don't see it listed, search for it under "More actions".

This is a great option when a colleague posts a question or request in a channel. Your agents can use the message action to turn it into a tracked ticket.\ <br>

### Create tickets by chatting directly with Wrangle

Open a chat with Wrangle and type `ticket`. Wrangle will guide you through creating a new ticket right from the conversation.

This is the quickest way to start a ticket when you already know what you need. Just type the command and fill in the details.

<figure><img src="/files/jbkLlQ9P1iB5wE5yzs0M" alt="Just type &#x22;ticket&#x22; in a chat with Wrangle to start a ticket"><figcaption></figcaption></figure>

If you don't see Wrangle in your Teams sidebar, click `Apps` and search for Wrangle.

{% hint style="info" %}
Pro Tip: You can also include your request directly after the command, like `ticket I need a new laptop`.
{% endhint %}


# Web App - Monitoring Tickets

### Managing tickets on the web

To see all your tickets in one place, log in [here](https://slack.wrangle.io/tickets), or click the "Wrangle Dashboard" button in the Wrangle Slack app. By default, you'll see all tickets from all inboxes.&#x20;

You can also go to your **Tickets** view by going to <https://slack.wrangle.io/tickets>

<figure><img src="/files/OIwPzEvgjR58apGhjX7O" alt=""><figcaption><p>View all tickets on the web</p></figcaption></figure>

***

## Showing, Filters, and Sorting

### Show / Hide

<figure><img src="/files/hhFgBcdCOH991escwYP7" alt="" width="563"><figcaption></figcaption></figure>

You can show or hide the following columns in the ticket table:&#x20;

* Assignee
* CSAT
* Deflections
* Form Field(s)
* Followers
* Inbox
* Priority
* Requester
* SLAs
* Status
* Tags
* Workspace
* Formatting option: Time as Date

### Show SLAs to Track Late Tickets

<figure><img src="/files/2zbdqnjD7YD2AWDurhCU" alt="" width="563"><figcaption></figcaption></figure>

When the SLAs column is enabled, two columns are added to the table: **Response SLA** and **Resolution SLA**. Each shows a **Late** badge when the respective deadline has been breached and the ticket has not yet met the condition (agent replied for [response SLA](/tickets/setting-up-your-inbox/ticket-slas); resolved or closed for [resolution SLA](/tickets/setting-up-your-inbox/ticket-slas)).

SLA deadlines are configured per inbox in Inbox Settings → **Ticket SLAs**.

### Enable the Workspace column to see Slack Connect requesters

<figure><img src="/files/mpmzx0j5E59I0PUOWewd" alt="" width="375"><figcaption></figcaption></figure>

The **Workspace** column shows the Slack workspace icon and name for the ticket requester. For requesters from your own workspace, this shows your workspace. For requesters from connected external workspaces (Slack Connect), this shows their workspace.

This column is only available to workspaces that have Slack Connect configured.

### Filters

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

You can filter each column by clicking the dropdown on any of the column titles at the top right of the ticket table.&#x20;

You can filter by:

* Inbox
* Date Range
* Tag
* Requested By
* Assignee
* Form Fields
* Followers
* Deflections
* Status
* SLAs
* Priority
* CSAT Score
* Workspace

#### **Filtering Form Field Data on the Ticket Table**

Wrangle provides the ability to filter through form field data directly in the ticket table, helping you find specific tickets quickly. Here’s how to filter using form field data:

1. **Select Form Fields**: Choose the form field(s) you want to display as a column in the ticket table.
2. **Open Display Filters**: Click the **Display Filter** button below the ticket table.
3. **Add a Filter**: Select the **Add Filter** button next to the form field you’d like to filter by.
   1. **For Number Fields**: Apply filters such as **equal to**, **greater than**, **less than**, or other comparisons based on a value you specify.
   2. **For Other Field Types**: Use options like **contains**, **does not contain**, or **is empty** to narrow down your results.

<figure><img src="/files/1L8fUVrOvCseico0h8ke" alt=""><figcaption><p>Example of filtering form field data by <em>greater than</em> a numeric value.</p></figcaption></figure>

This functionality ensures you can efficiently sort through ticket data based on specific criteria, improving productivity and ticket management.

#### Filter visibility

Understanding how filters work across your team:

**Default filters**

Wrangle provides three default filters that are visible to everyone in your workspace:

<figure><img src="/files/Jo23EV6vdc5dxbPBEMAg" alt=""><figcaption><p>View all Wragle default filters.</p></figcaption></figure>

* All Open Tickets&#x20;
* My Open Tickets
* Unassigned.

**Custom filters you create**

When you create a new saved filter, it is visible only to you. Other users in your workspace cannot see or access your custom filters, even if they work in the same inboxes.

This means:

* Your saved filters are personal to your workflow
* Each team member can create their own set of filters without cluttering others' views
* You can name and organize filters however works best for you
* If multiple people need the same filter, each person will need to create it individually

{% hint style="info" %}
If your team frequently uses the same filter criteria, consider sharing the custom filter URLs, so each team member can save their own.
{% endhint %}

***

## Saved Filters

Wrangle allows you to save your current filters and column settings as a saved filter, making it easy to revisit customized views with just one click. Here’s how to save your filters as a saved view:

1. **Apply Your Filters**: Set up your desired filters, sorting preferences, and column visibility in the ticket table.
2. **Saved Your Filters**: Click the **Saved Filters** dropdown located at the top left of the ticket table.
3. **Save New Filter**: Click the **Save New Filter** button and add a descriptive name for your view (e.g., “High Priority Tickets” or “My Team’s Tickets”) and confirm. Then click **Save Filter.**

Once saved, your view will appear in the dropdown menu of Saved Filters, allowing you to switch between different views effortlessly. You can also edit or delete saved filters at any time from the same menu.

<figure><img src="/files/VkvcXqUrFxc6j6WGBFnf" alt=""><figcaption><p>Save a new set of filters.</p></figcaption></figure>

#### Overwriting and Updating a Saved Filter

If you have a change to your filters that you would like to save and overwrite a previously saved filter, simply go to **Saved Filters** and click the :gear: Icon next to the saved filter you would like to overwrite. Click **Save Filter**, and it will save the new filters as this saved filter view moving forward.&#x20;

#### Deleting a Saved Filter

If you no longer need a saved filter:

<figure><img src="/files/Mff3EXwaBcmWMFSOxr8Z" alt=""><figcaption><p>Deleting overdue tasks from the Custom Filters list.</p></figcaption></figure>

1. **Click the "All Tickets" dropdown**
2. **Find the filter** you want to delete
3. **Click the ⚙️ icon** next to the filter name
4. **Select "Delete"**
5. **Confirm the action.**

The filter will be removed from your saved filters list. If you had it pinned to your sidebar, it will also be removed from there.&#x20;

#### Pinning Filters to Your Sidebar

Star any saved filter to pin it to your sidebar for quick access from anywhere in the Wrangle web app. This is especially useful for filters you use multiple times per day.

<figure><img src="/files/wU6WvbV7VgSQyh08IKS1" alt=""><figcaption><p>Pin any saved filter to your sidebar.</p></figcaption></figure>

**To pin a filter:**

1. Open the "All Tickets" dropdown
2. Find your saved filter
3. Click the star icon next to the filter name

{% hint style="info" %}
Your starred filters will now appear in your sidebar under "Tickets."
{% endhint %}

Although default filters cannot be deleted, you can unpin them from your sidebar if you don't use them.&#x20;

<figure><img src="/files/ayCYqBnH6zMaIN3zsQ26" alt=""><figcaption><p>How to unpin a filter</p></figcaption></figure>

{% hint style="info" %}
**Unpinning a filter** only affects your view, meaning other users will still see it.&#x20;
{% endhint %}

## Perfect for prioritizing ticket filters you use often

Saved filters help you organize tickets based on the details that matter most to you. Instead of manually applying the same filters repeatedly, you can save your preferred view and access it with just one click.

For example, you can filter by priority and assignee to create a filter called "My High Priority Tickets," then pin it to your sidebar for quick access from anywhere in the Wrangle web app.

**My High Priority Tickets**

* **Filters:** Assignee = Your Account&#x20;
* **Use case:** Quickly see your most urgent work that needs immediate attention

<figure><img src="/files/7c9AEmPM0wBIQfK6kCge" alt=""><figcaption><p>Prioritize your tickets in one view.</p></figcaption></figure>

***

**Tickets Assigned to My Team**

* **Filters:** Assignee = \[Select multiple team members]
* **Use case:** See all tickets currently assigned to your team members to monitor workload distribution

<figure><img src="/files/pQNqtJtY1yprbWlWvdJD" alt=""><figcaption><p>View all tickets assigned to specific teams or members. </p></figcaption></figure>

***

**Waiting on Customer Response**

* **Filters:** Status = Waiting for Reply
* **Use case:** Track tickets paused while waiting for requester input.&#x20;

<figure><img src="/files/cOVx6BVie835VAADFHFh" alt=""><figcaption><p>View all tickets still awaiting response.</p></figcaption></figure>

***

**Satisfied Ticket Resolution**

* **Filters:** CSAT&#x20;
* **Use case:** Identify tickets where customers weren't satisfied so you can follow up or improve processes.&#x20;

<figure><img src="/files/89dHenfCQVnKNP91F2i3" alt=""><figcaption><p>View all tickets resolved satisfactorily.</p></figcaption></figure>

***

### Sorting

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

You can sort each column by clicking on the column names you would like to sort by. By selecting the same option again, you can reverse the sorting method (example: Alphabetically A->Z or Alphabetically Z->A). The arrow to the right of the column indicates whether you are sorting by ascending or descending.&#x20;


# Responding to Tickets

We sync comments between the Slack ticket thread and the Wrangle web app, so agents can work directly from the web app if they prefer having a single view of all their assigned tickets. Agents can also @mention users and format messages with bold, italics, and blockquotes, just like in Slack.&#x20;

<figure><img src="/files/2kvcgGU2es6dBfHLMRV9" alt="" width="563"><figcaption><p>Any comments made from the web sync back to Slack, and vice versa.</p></figcaption></figure>

Agents can also update the priority and tags from the web, which will update the thread in Slack.

<figure><img src="/files/6oZJIfPEAoB5WqxOkCXe" alt="" width="563"><figcaption><p>Reply to an unassigned ticket to claim it, change the priority, and add tags from the web.</p></figcaption></figure>

### Using canned replies on the web

If your inbox has canned replies enabled in the [inbox settings](/tickets/setting-up-your-inbox/canned-replies), you can use them to quickly respond to common requests from the Wrangle web app.

{% hint style="info" %}
Canned replies are not available in Slack.
{% endhint %}

From the ticket view on the web, type `/` to see a list of available canned replies. You can also search the canned replies by name to pick the right one.

<figure><img src="/files/R4djUNvc62mNSupD8rf6" alt="" width="563"><figcaption><p>Type "/" to load a list of canned replies. Continue typing to search canned replies by name.</p></figcaption></figure>

### Adding private notes to tickets

If your inbox is in a [private channel](/tickets/private-ticketing), agents can add private notes to tickets.&#x20;

{% hint style="info" %}
Private notes are only visible to admins, observers, and agents. Read more about [inbox user roles and permissions](/tickets/setting-up-your-inbox/roles-and-permissions).
{% endhint %}

To add a private note from the web, click the lock icon above the text editor. The text editor will turn yellow and you'll see a note that says "Private notes are only visible to users who are admins, observers, or agents."

<figure><img src="/files/FNbY8jdznTMApSsIfdPu" alt="" width="563"><figcaption><p>Add a private note from the web.</p></figcaption></figure>

To add a private note from Slack, insert a lock emoji at either the start or end of your message. Wrangle will automatically convert the message into a private note.

<figure><img src="/files/puzGGv91p2S5kecrZEtP" alt="" width="563"><figcaption><p>Add a private note from Slack</p></figcaption></figure>

{% hint style="info" %}
You can use any of the following lock emojis to make your comment private:&#x20;

![:lock:](https://a.slack-edge.com/production-standard-emoji-assets/14.0/apple-medium/1f512@2x.png) `:lock:`\
![:unlock:](https://a.slack-edge.com/production-standard-emoji-assets/14.0/apple-medium/1f513@2x.png) `:unlock:`

![:lock\_with\_ink\_pen:](https://a.slack-edge.com/production-standard-emoji-assets/14.0/apple-medium/1f50f@2x.png) `:lock_with_ink_pen:`\
![:closed\_lock\_with\_key:](https://a.slack-edge.com/production-standard-emoji-assets/14.0/apple-medium/1f510@2x.png) `:closed_lock_with_key:`<br>
{% endhint %}

### Customer Satisfaction (CSAT) survey

If you have satisfaction surveys enabled from your [inbox settings](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-resolution), then whenever a ticket is either closed or resolved, the requester will be prompted to rate their experience on a scale from 1-5, with 1 being "Not Satisfied" and 5 being "Satisfied."&#x20;

<figure><img src="/files/YOIP6Dw7O1SccXfbZZty" alt="" width="563"><figcaption><p>The CSAT survey in Slack</p></figcaption></figure>

After they've submitted their survey, their responses will be visible in the ticket view on the web, as well as in your [ticket export](/tickets/setting-up-your-inbox/export-history).

<figure><img src="/files/ByK7OM1sTVS6wUi4MfIr" alt="" width="375"><figcaption><p>Whenever a requester responds to the CSAT survey, find their response under "Satisfaction rating."</p></figcaption></figure>

{% hint style="info" %}
Due to the public nature of Slack channels, submitted CSAT responses will not be displayed in the thread.
{% endhint %}


# My Dashboard

Use My Dashboard in the Wrangle web app to see all the tickets that are waiting on you, as well as the ones you created and ones you follow.

If your team uses [workflows](/workflows/using-a-workflow), you'll also see workflow instances that are waiting on you or created by you.

Click on any workflow instance or ticket in My Dashboard to see the request details.

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


# Ticketing for Slack Connect

Learn how to leverage ticketing for your Slack Connect collaborators.

If you work with customers, vendors, or contractors via Slack Connect,  you can use Wrangle to raise tickets for your external collaborators and provide them with the transparency they need about the status of their requests. By enabling ticketing for Slack Connect, you can ensure nothing slips through the cracks, measure and improve your team's resolution time, and increase customer satisfaction.

{% hint style="info" %}
The [Wrangle Pro Plan](/account-administration/billing-faqs#how-does-wrangles-pricing-work) includes ticketing for five Slack Connect channels, with the option to add additional channels for $5/month apiece.
{% endhint %}

### Enabling ticketing for Slack Connect

To enable ticketing for Slack Connect, choose "Customer support" under "How will you use this inbox?" in the [inbox settings](/tickets/setting-up-your-inbox/settings):&#x20;

<figure><img src="/files/mKOQm3pPprPlNUXCVl7B" alt="" width="563"><figcaption><p>Choose "Customer Support" if your requesters are in a Slack Connect channel.</p></figcaption></figure>

Then, choose how much ticket data you'd like your customers to see. You can choose whether tickets are "Visible" (full ticket data is shared), "Limited" (only the ticket name and status are shared), or "Silent" (no ticket data is shared, including agent comments).&#x20;

<figure><img src="/files/FRkIWC1ox8hHwiLb4cD9" alt="" width="563"><figcaption><p>Choose how much ticket information to share with your customers.</p></figcaption></figure>

### Setting up your inbox channels

When you use Slack Connect with Wrangle, your tickets will always be posted to an internal Slack channel, and mirrored to any external channels they were created from.\
\
Within the [inbox settings page](/tickets/setting-up-your-inbox/settings) you'll be asked to select which internal channel to use for working on tickets. This is the channel your agents will work from:

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

Now, when a customer posts a message into a Slack Connect channel and it's turned into a ticket, you'll see the customer's ticket thread mirrored back to your internal inbox channel.

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

Wrangle will sync comments between the original thread in Slack Connect and the ticket thread in your internal ticketing channel, so your agents can work on tickets in a centralized location, while still keeping your customers in the loop.

### Creating and managing your Slack Connect tickets

There are two ways to create tickets for Slack Connect users: [automatically](/tickets/creating-tickets#auto-creating-tickets), where every message in your Slack Connect channel becomes a ticket, and manually, where you use either an [emoji reaction](/tickets/creating-tickets#creating-a-ticket-via-emoji-reaction) or [message shortcut](/tickets/creating-tickets#creating-a-ticket-from-a-message-shortcut) to create a ticket from a message.&#x20;

Once a ticket is created, your agents can work on it either from your internal ticketing channel or our web app.

On the web, you can identify which tickets and comments are from a Slack Connect user by the user's avatar. Slack Connect users' avatars include their workspace icon in the bottom right corner.

<figure><img src="/files/lsKN0FJFHLTCHRG3DrJp" alt="" width="520"><figcaption><p>Claire's avatar includes her workspace icon, so she is a Slack Connect user.</p></figcaption></figure>

### How customers can create their own tickets

You may choose to either:

* Enable [Automatic Ticket Creation](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-creation) for your Slack Connect channels if you prefer that all messages in specific customer channels become tickets.
* Ticket creation via emoji reaction:
  * Setup [Ticket Creation](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-creation#custom-emoji-for-ticket-creation) for your customer support inboxes.
  * OR If you have just one inbox for your entire workspace, you may also choose to have your customers use the default :ticket: reaction to create tickets. **This can only be used for Slack Connect when users do not have to pick an inbox**. Otherwise, we suggest using [Ticket Creation](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-creation#custom-emoji-for-ticket-creation).
* [Ticket creation using Slack Workflow Builder](/tickets/ticketing-for-slack-connect/ticket-creation-via-bot-posted-messages)

{% hint style="info" %}
Want to disable manual ticket creation for external customers? [Set your default inbox role](/tickets/setting-up-your-inbox/roles-and-permissions) to Limited Access.
{% endhint %}

### How customers track their tickets

If you've selected either "Visible" or "Limited" under "How should tickets be shown to customers?" in your inbox settings, Wrangle will create a thread beneath the parent message with ticket details. Any ticket notifications will be added to that thread, and all comments will be synced with the thread in your internal ticketing channel. Your requesters never need to interact with the Wrangle app; they can follow along fully within your Slack Connect channel.&#x20;

Here's how "visible" tickets will look in Slack Connect:

<figure><img src="/files/0Sf70ItbFMs8HzfYS2s5" alt="" width="563"><figcaption><p>A "visible" ticket with full ticket data.</p></figcaption></figure>

And here's how "limited" tickets will look in Slack Connect:

<figure><img src="/files/UVx8JmFK0WJAhix4nZRn" alt="" width="563"><figcaption><p>A "limited" ticket with minimal ticket data.</p></figcaption></figure>

{% hint style="info" %}
Because your Wrangle instance is only installed in your Slack workspace, Slack Connect users will not be able to view the "Home" tab of the Wrangle Slack App. This includes external users who have Wrangle installed in their own workspace; they'll have full access to their own Wrangle Slack app, but only limited access to yours via the "External Connections" section of the sidebar.
{% endhint %}

If you've selected "Silent" for "How should tickets be shown to customers," requesters will not know you've created a ticket from their message. However, if there are certain exceptions where you do want the requester to be notified, you can add them as a [follower](/tickets/web-app-monitoring-tickets#adding-ticket-followers) so they'll still get ticket updates.


# Ticket Creation via Bot Posted Messages

If you'd like to enable your external customers to create tickets manually using Slack Workflow Builder, you may do so following these steps:\
\
1\. Create a new Slack Workflow using Slack's [Workflow Builder](https://slack.com/help/articles/360035692513-Guide-to-Slack-Workflow-Builder).\
2\. Add a form step (`Collect info in a form`) and add two questions: one for your `Ticket name`, and one for an optional `Ticket description`. Call them anything you prefer, for this example, we'll use "What do you need help with?" and "Describe the issue":

<figure><img src="/files/YZQDc0QmK6pMKbbdx7p8" alt="Fields for ticket name and description"><figcaption></figcaption></figure>

3. Now, add another step to post a Slack message to the `channel where the workflow was used` with **exactly this content**:

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

You'll need to use Slack Workflow Builder variables to pass your `Ticket name` and `Ticket description` from the previous step.

<figure><img src="/files/JzVxQII7sL59zsDZ8OJE" alt=""><figcaption><p>Ensure you put the "Name", "Description", and "Requester" fields on their own lines.</p></figcaption></figure>

4. Finally, add a step to `Add a reaction to a message` and select `Reference to the message sent` as the message to react to. We suggest using a [Ticket Creation](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-creation#custom-emoji-for-ticket-creation) here so you can ensure your Slack Workflow creates tickets in the inbox you want. Here, we're using the ![:sos:](https://a.slack-edge.com/production-standard-emoji-assets/14.0/apple-large/1f198.png) emoji, but you can choose anything you'd like\ <br>

   <figure><img src="/files/5DZ5psfOLDofmz48ST6b" alt=""><figcaption></figcaption></figure>

   Make sure you've added your emoji as a [Custom Ticket Creation Emoji](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-creation#custom-emoji-for-ticket-creation) in Wrangle as well.\
   \
   \
   When you're done, your workflow should look like this:\ <br>

   <figure><img src="/files/0u1teC7QZyIA7LCHG8nE" alt=""><figcaption></figcaption></figure>
5. You'll also want to adjust the permissions for your workflow to `Also include connected, external organizations to find and run` — you can do this via the Permissions menu in the top right of the Workflow:

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

That's it! Now you can [feature your workflow in a Slack Connect channel](/integrations/slack-workflow-builder#featuring-a-slack-workflow-in-a-channel) to enable your customers to manually create tickets using Wrangle within Slack Workflow Builder.


# Email to Ticket Guide

{% content-ref url="/pages/RNf0I4O3qPaAaV9v1xji" %}
[Email](/integrations/email)
{% endcontent-ref %}


# Private Ticketing

This is for when the inbox belongs to a private slack channel that the requester and followers might not always be members of. Wrangle will send them a direct message with updates.

### Inbox Settings

To create a private inbox for a private Slack channel, you’ll need to configure specific settings:

1. **Go to the Settings Tab**: Navigate to the **Settings** tab within your inbox settings.
2. **Select Private Internal Ticketing**: For the question, “How will you use this inbox?”, select **Private Internal Ticketing**. Use this option when the inbox is associated with a private Slack channel that the requester and followers may not always have access to.

When this setting is enabled, Wrangle will send requesters and followers direct messages when an agent replies to their ticket or when the ticket’s status changes.

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

### How Requesters Track Tickets in Slack

You can control how much ticket information is visible to the requester:

* **Limit Information Sharing**: Toggle this option ON to restrict ticket details shared with the requester. When enabled, Wrangle will only share the ticket’s **status** and **name** with the requester. Other details, such as the **assignee**, **priority**, and **SLA reminders**, will remain hidden. Requester notifications will still work if they are enabled.

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

#### Requester Views in Slack:

{% tabs %}
{% tab title="Limited View" %}
Here is the view the requester will see in the Wrangle App when the toggle is **ON:**

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

{% endtab %}

{% tab title="Regular View" %}
Here is the view the requester will see in the Wrangle App when the toggle is **OFF:**&#x20;

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

{% endtab %}
{% endtabs %}

### Wrangle and private channels

If your inbox channel is private, you’ll need to invite Wrangle to the channel before any tickets can be created. During setup, you can enable this by checking the box to automatically invite Wrangle.

Once this is set up, requesters will receive a direct message (DM) from Wrangle whenever they submit a ticket.

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

### Adding private notes to tickets

If your inbox is in a [private channel](/tickets/private-ticketing), agents can add private notes to tickets.&#x20;

{% hint style="info" %}
Private notes are only visible to admins, observers, and agents. Read more [about inbox user roles and permissions](/tickets/setting-up-your-inbox/roles-and-permissions).
{% endhint %}

To add a private note from the web, click the lock icon above the text editor. The text editor will turn yellow and you'll see a note that says "Private notes are only visible to users who are admins, observers, or agents."

<figure><img src="/files/FNbY8jdznTMApSsIfdPu" alt="" width="563"><figcaption><p>Add a private note from the web.</p></figcaption></figure>

To add a private note from Slack, insert a lock emoji at either the start or end of your message. Wrangle will automatically convert the message into a private note.

<figure><img src="/files/puzGGv91p2S5kecrZEtP" alt="" width="563"><figcaption><p>Add a private note from Slack</p></figcaption></figure>

{% hint style="info" %}
You can use any of the following lock emojis to make your comment private:&#x20;

![:lock:](https://a.slack-edge.com/production-standard-emoji-assets/14.0/apple-medium/1f512@2x.png) `:lock:`\
![:unlock:](https://a.slack-edge.com/production-standard-emoji-assets/14.0/apple-medium/1f513@2x.png) `:unlock:`

![:lock\_with\_ink\_pen:](https://a.slack-edge.com/production-standard-emoji-assets/14.0/apple-medium/1f50f@2x.png) `:lock_with_ink_pen:`\
![:closed\_lock\_with\_key:](https://a.slack-edge.com/production-standard-emoji-assets/14.0/apple-medium/1f510@2x.png) `:closed_lock_with_key:`<br>
{% endhint %}

***

## How Requesters Track Tickets in Slack

Since the requester of the ticket is not a member of the private channel that the tickets are posted in, Wrangle will send them a DM via the Wrangle App. Here, the requester can look at just *their* ticket thread from that private channel without seeing other sensitive tickets.&#x20;

In the threads here in the **Messages** tab, requesters can fully communicate back and forth with their agent about their ticket. &#x20;

<figure><img src="/files/cs4nhTc6m23usqR9uALp" alt=""><figcaption><p>Where to find the Wrangle App and the Messages tab.</p></figcaption></figure>

<figure><img src="/files/IzZuQMrs9zBEeLleZQhC" alt=""><figcaption><p>The Messages tab in the Wrangle App</p></figcaption></figure>

They can also simply view their ticket in their **Created by Me** filter and communicate via the thread there.

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

### Replying to Tickets

Requesters will receive notifications as agents update and reply to their tickets. They can respond directly within their thread in the Wrangle App. All replies will seamlessly appear in the agent’s thread in the private channel associated with the inbox.

<figure><img src="/files/HjX4G1Qutwj8k0mri6uo" alt=""><figcaption><p>Requester replying to an Agent in Slack</p></figcaption></figure>

### Use confidential inboxes for even more privacy

Wrangle also offers **Confidential inboxes** in case your inbox's tickets contain sensitive content that needs to be restricted to specific employees.  [Read more about confidential inboxes here](/tickets/setting-up-your-inbox/roles-and-permissions#confidential-inboxes-for-greater-privacy). &#x20;


# Scale Plan vs Pro Plan

Wrangle pricing.

Wrangle offers two flexible plans designed to meet different team needs. Whether you're just getting started or need advanced features for a larger operation, here's what each plan includes.

### The Key Differences

#### Scale is Pro + AI and integration superpowers

Scale takes everything in Pro and adds the automation and connectivity that help larger teams move faster:

**AI does the heavy lifting** Scale includes AI-powered features that handle repetitive work for you. [Smart Replies](https://docs.wrangle.io/tickets/ai-powered-ticketing/smart-replies) suggest responses to common questions, while [agentic features](https://docs.wrangle.io/tickets/ai-powered-ticketing/ai-ticket-deflection) can automatically route, categorize, and even respond to tickets based on patterns it learns from your team.

**Connect to your existing tools** Native integrations with Zendesk, Jira Service Management, and Notion mean tickets and documentation flow seamlessly between systems. No more copy-pasting or losing context when issues move between teams. Plus, API access lets you build [custom workflows](https://docs.wrangle.io/integrations/slack-workflow-builder#getting-started) for any other tools in your stack.

**Make Wrangle truly yours** White-label the Wrangle bot so customers see your company name instead of "Wrangle" in Slack channels. Route tickets with custom emoji that match your team's workflow. Get a dedicated CSM and personalized training to ensure your rollout succeeds.

**Scale smarter with user groups** Organize agents into groups (like "Tier 1 Support" or "Security Team") to route tickets more intelligently and manage permissions at scale.

### When to choose Scale

You'll get the most value from Scale if you:

* **Handle high ticket volume** where your agents could benefit from AI automation to save time and energy on repeat requests
* **Work across multiple tools** and need tickets synced between Slack and your other systems
* **Support external customers** in Slack Connect and want [white-labeling](https://docs.wrangle.io/account-administration/appearance-white-labeling)
* **Need custom workflows** that require [API access](https://docs.wrangle.io/integrations/wrangle-api) or [emoji-based routing](https://docs.wrangle.io/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-creation#custom-emoji-for-ticket-creation)
* **Want hands-on support** with a dedicated CSM during rollout

### When Pro is enough

Pro gives you everything you need for solid ticket management if you:

* **Run a lean team** that doesn't need advanced automation
* **Work primarily in Slack** without requiring external integrations
* **Want core features** like SLAs, workflows, private tickets, and analytics

### Try before you decide

<figure><img src="/files/z7JYUlSl1rjyA8cPaJrc" alt="Wrangle free trial banner"><figcaption></figcaption></figure>

**All trial users start with Scale**, so you can test AI features, integrations, and advanced customization before committing to a plan.

**Already on Pro and curious about Scale?** We'll grant you temporary access to test Scale features. Just [ask our team](https://docs.wrangle.io/more-help/contact-us).

Still have questions? [Contact](https://docs.wrangle.io/more-help/contact-us) our team or [schedule a demo](https://www.wrangle.io/request-a-demo-of-wrangle-slack).


# Using a Workflow

## What is a Workflow?

A Wrangle **workflow** is a way to manage recurring requests and business processes in Slack. For example, you might have a workflow for onboarding a new employee, or approving an equipment purchase.

Wrangle workflows can be customized for any recurring process that you want to manage in Slack, through our no-code Workflow Designer.\
\
Here's what it's like for one of your colleagues to use a Wrangle [workflow](broken://pages/-Mj5blROPstTOn9CIYfZ) you've created:

## Start from Slack

### Launch Wrangle

There are a few ways to start a Wrangle workflow in Slack

* Type "/wrangle" in any text field in Slack to find our "Start a Workflow with Wrangle" [shortcut](https://slack.com/help/articles/360057554553-Take-actions-quickly-with-shortcuts-in-Slack)
* Open the Slack [shortcut menu](https://slack.com/help/articles/360057554553-Take-actions-quickly-with-shortcuts-in-Slack) and search for "Wrangle" to find "Start a Workflow with Wrangle"
* Enter "Wrangle" in Slack's [search bar](https://slack.com/help/articles/202528808-Search-in-Slack) to find "Start a Workflow"
* Click the "Start Workflow" button in the [Wrangle Slack app](broken://pages/-Mj6EzfpTzz5fPFLkmVn)

### Pick a Workflow to Start

Once a user launches Wrangle, we'll populate a list of all the workflows [available to that user](/workflows/designing-a-workflow/editing-workflow-settings-and-design#users-and-permissions), so they can pick which workflow they want to start (e.g. "Blog Post Publishing").

![Choosing a workflow to start](/files/-Mj5eYaFkx5-Rimo172v)

You can also [suggest a workflow](/workflows/advanced-workflow-features/suggest-a-workflow) to another user to give them a direct link to the workflow you want them to launch.

### Fill Out the Intake Form

As soon as the user picks a workflow to start, they're presented with an intake form, because there's always data to collect to provide context for the rest of the workflow.&#x20;

When you design your workflow's intake form, you specify which fields you want to collect from your users. Here's what an intake form might look like:

![When you start a workflow in Wrangle, you first fill out the intake form.](/files/-Mj5fAzPMngWLJxYhWp6)

{% hint style="info" %}
If you try to start a workflow that requires uploading files as part of the intake form, you'll be redirected to start the workflow on the web. Slack's forms do not allow for uploading files.
{% endhint %}

## Start from the Web

[Workflow admins](/workflows/designing-a-workflow/editing-workflow-settings-and-design#users-and-permissions) can also start a workflow from the web, either from the Workflows overview, or from a specific [workflow dashboard](/workflows/monitoring-and-managing-a-workflow/workflow-dashboard):

![Users can click "Start Workflow" under any workflow in this view.](/files/7YTHGrLmjI0ncvHikNHO) ![Users can also click "Start Workflow" when viewing a specific workflow dashboard.](/files/LBQlgF699VDPWvr2kFgI)

They'll then be prompted to fill out the intake form online, just like in Slack.

![An example of an intake form on the web.](/files/N14w7fS2Blls2Xs9aPaE)

{% hint style="info" %}
Workflow admins can also share a direct link to the intake form on the web with anyone in the workspace.
{% endhint %}

## After the Intake Form has Been Submitted

### Approval, Task List, and Form Steps

Once the intake form is submitted, Wrangle routes the request through a series of [approvals](/workflows/designing-a-workflow/approvals), [task list](/workflows/designing-a-workflow/task-lists), and form steps in Slack. These steps are customizable for each workflow's use case.

For example, in a blog post publishing workflow, you might first route the draft post to a manager to review and approve in an approval step. Once approved, you might trigger a task list step to assign the post to get published onto the website and promoted on social media.

Approvals and task lists are posted to a thread in a Slack channel, so your team can make use of all of Slack's collaboration features. They'll get notified like any other message that @-mentions them, and they can chat with each other about the request in the Slack thread.

![A workflow approval step posted to a channel.](/files/-Mj5gUgbHRB1y3fh-KHs)

### Canceling an Instance

If for whatever reason an active workflow instance should be withdrawn, either the requester or a workflow admin can cancel it.&#x20;

<figure><img src="/files/XorCJZB2TG7CzxSgjYwo" alt=""><figcaption><p>The requester or admin can click "Cancel Instance" at any stage of an active request.</p></figcaption></figure>

{% hint style="info" %}
Only in-progress instances can be canceled. Completed workflows will no longer have the "Cancel Instance" option available.
{% endhint %}

### Closing the Loop at the End

As your approval and task list steps get completed, Wrangle will notify the original requester of the workflow's progress. Once all the steps are done, the workflow is done.

## Video Demo: Using Wrangle Workflows

If you'd like to see what it's like to kick off a Wrangle workflow, check out this [video demo](https://www.youtube.com/watch?v=3ipQZKn9gTs).


# Designing a Workflow

Use Wrangle web-based Workflow Designer to build your team's workflows and sync them to your Slack workspace. \
\
Watch this video to see the designer in action, or continue reading below to learn more about designing your workflow.

{% embed url="<https://youtu.be/-DJ4Bc7IQPk>" %}

## Opening the Workflow Designer

You can start designing a workflow from a number of places:

* **Wrangle App**: In Slack, find Wrangle under the Apps heading in the left sidebar, or search Slack at the top for the Wrangle App. Once you're in the [Wrangle App Home](/best-practices/wrangle-app-home), you'll see a toggle in the top-right of the app that says either "My Approvals/Tasks" or "My Workflows." Make sure you've chosen "My Workflows" and you'll see a "⚡ Create Wrangle Workflow" button.

![Select "⚡ Create Wrangle Workflow" from the "My Workflows" view to get started.](/files/zsINyxrvOFOLpUUw49HV)

* **From starting a workflow**: You can also get to the designer when starting a workflow. Search at the top of Slack for "Start a Workflow with Wrangle" and click the shortcut. From the "Start a Workflow" modal, select "Design a Workflow Instead."&#x20;

![Use the "Design a Workflow Instead" option to build a new workflow.](/files/ypWp2yokf05ONayPzLZK)

No matter where you start from, you'll be directed to the Wrangle web app to launch the Workflow Designer. \
\
Sign in with your Slack credentials, and if you belong to more than one workspace, make sure to select the one with Wrangle installed.&#x20;

![If the workspace isn't correct, use the dropdown menu in the top right corner.](/files/OXbgw9L5oZWK8j5XbXjS)

## Starting From a Template

When you open the Workflow Designer, we'll show you a [gallery](https://slack.wrangle.io/workflows/gallery) of templates you can start from, or you can start from scratch.

![Use the gallery to pick the closest template to your use case, or build one from scratch.](/files/SDO8aiBIKZA4eUTBeVbP)

If you choose to start from a template, Wrangle will start you off with an intake form and workflow steps (approvals and task lists) that you can customize.

For the rest of this guide, we'll assume you're designing your own instead of starting from a template.

## Designing Your Intake Form

Your intake form captures all the context you need from your requesters.

For example, let's say you're doing a blog post publishing flow. Your intake form might have questions for the title of the blog post, a link to the draft post, and when you intend to publish. These fields provide vital context for people later in the flow like the manager that needs to approve the post.

### Question Types

Questions in your intake form have different types, depending on what kind of information you're trying to gather with the question:

* **Short Answer**: for gathering short text, like the name of an employee to onboard
* **Long Answer**: for gathering several sentences, like an explanation of what audience you're targeting with a blog post
* **Number Input**: enforces that your users put in a valid number, like the percentage discount you want to offer a customer
* **Select a Date**: lets users pick a date on the calendar, like when they want to publish a blog post if approved
* **Select a person**: choose a single user that is active in your Slack workspace. Useful for identifying the manager of someone, or saying who is assigned to a customer.
* **Select multiple people**: same as above, but you can pick more than one person
* **Select a channel**: choose a Slack channel. This can be useful for identifying a specific team to route the request to.
* **Select from a list**: create a custom drop-down of options. Useful for choosing a specific department in the company, or for picking which product a bug is affecting.
* **Upload files:** lets users upload up to 10 files per question (must be less than 10MB per file). This is useful for things like expense reporting, bug reporting, or document reviews. [Watch this video to learn more.](https://www.youtube.com/watch?v=kDK4suZCEZU)

{% hint style="info" %}
There is a 97-question limit per intake form.\
\
All question types in the intake form are also available for [form steps](/workflows/designing-a-workflow#form-steps), with the exception of "Upload files" questions.
{% endhint %}

### Workflow Naming Using a Form Question

In order to help you easily distinguish between instances of your workflow, Wrangle will append the response to one of your intake form questions to the workflow name every time a request is submitted.&#x20;

{% hint style="info" %}
By default, Wrangle will use the response to your first intake form question as part of your naming convention, but you can choose which question to use for naming in your [Workflow Settings](/workflows/designing-a-workflow/editing-workflow-settings-and-design). If you edit your naming question after a workflow has been run, previous instances of your workflow will **not** be renamed.
{% endhint %}

For example, let's say we have a workflow for onboarding employees and we want to onboard Sue Bird and Megan Rapinoe, both on the sales team. If our first question in the form asks what department they'll be in, this is how the workflow instances would be named by default:

* "Employee Onboarding - HR Approval - **Sales**" created on Sept 8th
* "Employee Onboarding - HR Approval - **Sales**" created on Sept 9th

But, as long as the first intake form question is "Employee Name" or you've chosen "Employee Name" as your naming question in your Workflow Settings, then Wrangle can give each instance a better name:

* "Employee Onboarding - HR Approval - **Sue Bird**" created on Sept 8th
* "Employee Onboarding - HR Approval - **Megan Rapinoe**" created on Sept 9th

## Designing Your Workflow Steps

After the intake form, a Wrangle workflow can have any number of [approval](/workflows/designing-a-workflow/approvals), [task list](/workflows/designing-a-workflow/task-lists), and [form](https://docs.wrangle.io/workflows/designing-a-workflow#form-steps) steps (in any order).

For example, if we had a blog post publishing flow, our workflow might look like this:

* Intake form - get details of the blog post draft
* Approval step - have the marketing manager review and approve the post
* Task list step - assign work to marketing employees to publish the post to the web and promote it on social media
* Form step - have the marketing team make note of the blog tags they used and what the publish date was

Or, a sales quoting workflow might look like this:

* Intake form - get details of what the client wants from the sales rep
* Task list step - have the services team build a quote for how many hours would be required for the customer's use case
* Approval step - get sign-off from the sales manager on the proposed quote
* Form step - have the sales manager make note of any changes they made to the quote
* Task list step - assign the sales rep to send the approved quote to the customer

{% hint style="info" %}
When Wrangle is first installed in your workspace, we will do a one-time user sync to identify people in your Slack workspace who can be assigned to approval, task list, or form steps. The sync will **not** include invited users who have not yet joined your workspace, bots, or external users connected to your workspace via Slack Connect.\
\
For paying Wrangle customers, the user sync will run on a nightly basis.
{% endhint %}

### Approval Steps

Approval steps post an approval to a thread in a Slack channel, including the intake form answers for context. An approval gives reviewers buttons to Approve or Deny the request.

When designing your approval step, you can specify:

* Which channel to post in
* Who should be assigned to review
* How many reviewers have to approve before the approval is considered done
* Whether the approval has a due date
* Whether the approval should be [conditional](/workflows/designing-a-workflow/conditional-steps)

[Learn more about how approvals work](/workflows/designing-a-workflow/approvals)

### Task List Steps

Task list steps post a task list to a thread in a channel, including the intake form answers for context. A task list is a list of one or more tasks, each of which is assigned to people to complete.

When designing your task list step, you can specify:

* Which channel to post in
* The name of each task
* Who to assign to each task
* Whether each task has a due date
* Whether the task list should be [conditional](/workflows/designing-a-workflow/conditional-steps)
* Task descriptions to help users complete their tasks - use [Slack Markdown](https://www.wrangle.io/post/slack-markdown-a-comprehensive-guide-to-formatting-messages) to include links and formatting

{% hint style="info" %}
There is a limit of 20 tasks per task list step.
{% endhint %}

[Learn more about how Task Lists work](/workflows/designing-a-workflow/task-lists)

### Form Steps

Form steps post an additional form to a thread in a channel, including the intake form answers for context. Unlike the intake form, which can only be completed by the requester, form steps can be assigned to anyone in your workspace.&#x20;

When designing your form step, you can specify:&#x20;

* The form's questions and corresponding [question types](/workflows/designing-a-workflow#question-types)
* Which channel to post in
* The name of the form
* Who to assign to the form
* Whether the form has a due date
* Whether the form should be [conditional](/workflows/designing-a-workflow/conditional-steps)

{% hint style="info" %}
"Upload files" questions are only available for intake forms, not for form steps.
{% endhint %}

### Wrangle and Private Channels

If you want Wrangle to post any step to a private channel in Slack, you'll have to invite Wrangle to that channel first. \
\
There are two ways to invite Wrangle to your channel. One way is to open the channel details in Slack, go to the "Integrations" tab, then click "Add an app" and select Wrangle.&#x20;

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

Or you can @mention Wrangle in the channel, then click "Invite Them" in the followup message from Slackbot.

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

### Workflow Progression

Workflows go in order through the steps. If the workflow looks like *Intake form > Approval step > Task list step*, then the approval does not start until the form is submitted. The final step, the task list, does not start until the approval step is approved.

Since reviewers in an approval step can deny the request, the workflow stops if there is a denial and does not advance to subsequent steps.

A task list step is considered complete when all of its tasks are marked as complete.

A form step is considered complete when the form has been filled out and submitted.

### Saving Your Workflow

Once you're happy with your workflow's steps, you can save your workflow. This makes it available to anyone to kick off. It's a good idea to give your workflow a test by starting it and going through all of the steps, before you announce it to a wider audience to begin using it.

See "Using a Workflow" to learn how your newly-designed workflow works in Slack:

{% content-ref url="/pages/-Mj6C0v5RGKTyW2EUcfa" %}
[Using a Workflow](/workflows/using-a-workflow)
{% endcontent-ref %}


# Task Lists

## How Task Lists Work

Wrangle's task list functionality assigns people to complete a checklist of one or more tasks.

![A task list posted to a Slack channel.](/files/-MjB81Sst0A8Zzcec_s2)

## When Task Lists Are Considered Complete

A task list is composed of one or more tasks. The overall task list is considered complete when all of its tasks are marked as complete.

## Launching One-Off Task Lists

Most task lists are launched via a [Wrangle workflow](broken://pages/-Mj5blROPstTOn9CIYfZ) for a recurring use case. But you can also start a one-off task list for work that comes up from time-to-time. For example, if you're working on a small project (outside of a workflow) you could create a one-off task list to assign different tasks to your colleagues.

You can launch a one-off task list in one of many ways:

* There's a button on the [Wrangle App Home page](/best-practices/wrangle-app-home)
* You can use Slack's search bar and look for "Start a Task List with Wrangle"
* You can use the Shortcuts menu by clicking the ➕ icon in the reply box and searching for "Start a Task List with Wrangle." Instead of clicking the icon, you can also type "/" in the reply box as well.

## Editing Task Lists In Progress

If a task list has not been completed, you can edit any incomplete tasks. You can add/delete tasks, rename them, and change who is assigned to each. You can't remove tasks that are marked as complete.&#x20;

{% hint style="info" %}
Not everyone can edit an in-progress task list.&#x20;

If the task list was created by a [workflow](broken://pages/-Mj5blROPstTOn9CIYfZ), it can only be edited by people assigned to a task or by the Workflow's Admins.

If the task list is a [one-off task list](/workflows/designing-a-workflow/task-lists#launching-one-off-task-lists), it can only be edited by people assigned to it, or to its creator.
{% endhint %}

## Assigning a Task List to an Out-of-Channel assignee

When a task list is assigned to someone who isn't a member of the workflow's Slack channel (such as for a private channel), Wrangle detects this and sends that person a direct message with the step instead of posting it in the channel.

Subsequent updates to that step thread continue in the same DM.


# Approvals

## How Approvals Work

Wrangle's approval functionality lets reviewers consider a request and explicitly approve it, reject it, or request changes.

<figure><img src="/files/yhHLPHbyBtudltX1PA7L" alt=""><figcaption><p>An approval thread posted to Slack</p></figcaption></figure>

## When Approvals Are Considered "Approved"

When an approval is created, one or more people might be assigned to review the request. Wrangle gives you several options for deciding when enough people have signed off on the request to consider it fully approved:

* **Any one approver**. With this option, you can assign approvals to multiple people, but only one of those people needs to approve it. This is useful for letting whoever is available to review to request to jump on it and resolve it.
* **All approvers**. With this option, you assign the approval to a group of users and you need *all* of them to click the "Approve" button before the overall approval is considered done.
* **A majority of approvers**. Similar to the option for all approvers, this one is often more realistic — get more than half the reviewers to approve. The majority option is useful when vacations or other unavailability can prevent one or two people from approving and thus not meetings the "All approvers" threshold.

Approvals also include the option for reviewers to request changes. Approvers can click "Request Changes" on the approval step to add their notes on what needs to be changed.

<figure><img src="/files/mIJeTMLflADcFAIYuzwr" alt=""><figcaption><p>Approvers can add context about what changes need to be made</p></figcaption></figure>

After an approver requests changes, the thread will update with their notes, and either the requester or an assignee from a previous step can resubmit for approval.

<figure><img src="/files/JFyEzlutUVPCELlCXNWc" alt=""><figcaption><p>The approval step in Slack after an approver requests changes</p></figcaption></figure>

## Launching One-Off Approvals

Most approvals are launched via a [Wrangle workflow](broken://pages/-Mj5blROPstTOn9CIYfZ) for a recurring use case. But you can also start a one-off approval for work that comes up from time-to-time. For example, if you're working on a document (outside of a Workflow) that you want your boss to review, you could create a one-off approval for that.

You can launch a one-off approval in one of many ways:

* There's a button on the [Wrangle App Home page](/best-practices/wrangle-app-home)
* You can use Slack's search bar and look for "Start an Approval with Wrangle"
* You can use the Shortcuts menu by clicking the ➕ icon in the reply box and searching for "Start an Approval with Wrangle." Instead of clicking the icon, you can also type "/" in the reply box as well.

## Editing Approvals In Progress

If an approval has not been completed, you can edit who is assigned to it. You can't remove people who have already approved, but can can make two kinds of edits:

* You can remove people who have not yet approved
* You can add in new people to be reviewers

{% hint style="info" %}
Not everyone can edit an in-progress approval.&#x20;

If the approval was created by a [workflow](broken://pages/-Mj5blROPstTOn9CIYfZ), it can only be edited by people assigned to the approval or by the workflow's admins.

If the approval is a [one-off approval](/workflows/designing-a-workflow/approvals#launching-one-off-approvals), it can only be edited by people assigned to it, or to its creator.
{% endhint %}

## Assigning an Approval to an Out-of-Channel assignee

When an approval request is assigned to someone who isn't a member of the workflow's Slack channel (such as for a private channel), Wrangle detects this and sends that person a direct message with the step instead of posting it in the channel.

Subsequent updates to that step thread continue in the same DM.


# Forms

## How Forms Work

Wrangle's form step functionality assigns people to submit a form of one or more [questions](https://docs.wrangle.io/workflows/designing-a-workflow#question-types).

![](/files/toKJZ2nqaTSmIZ3JIbbV)

## When Forms are Considered Complete

A form step is comprised of one or more questions. The overall form is considered complete when someone has filled out and submitted the form.

![](/files/pCsKBxK6KJB0H8Jr6wtB)

## Editing Forms

After a form has been submitted, the person who completed it can go back and edit it. The form can be edited at any point while the workflow is still active; however, after the workflow has been completed, forms are no longer editable.

To edit a form in Slack, open the workflow thread, find the three-dot menu in the current workflow step, and click “Edit form data.”&#x20;

<figure><img src="/files/0lZ8fe7KQlXyhXFv5dI1" alt=""><figcaption><p>Open the three-dot menu next to "Re-assign" to edit form data</p></figcaption></figure>

Or, in the Wrangle web app, open the workflow dashboard, click on the instance you’d like to update, then click “Edit form data” on the “Forms” tab.

<figure><img src="/files/2Oj90waVo9MBTZrU6fY7" alt=""><figcaption><p>Find "Edit form data" on the "Forms" tab of the instance view.</p></figcaption></figure>

After your form has been edited, you'll see a message in the Slack thread letting everyone know which form was updated and by whom.

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

## Reassigning Forms in Progress

If a form has not been completed, you can edit who's assigned to it.&#x20;

{% hint style="info" %}
Not everyone can reassign an in-progress form.&#x20;

If the form was created by a [workflow](broken://pages/-Mj5blROPstTOn9CIYfZ), it can only be reassigned by the current assignees or by the workflow's admins.
{% endhint %}

## Assigning a Form to an Out-of-Channel assignee

When a form is assigned to someone who isn't a member of the workflow's Slack channel (such as for a private channel), Wrangle detects this and sends that person a direct message with the step instead of posting it in the channel.

Subsequent updates to that step thread continue in the same DM.


# Conditional Steps

Customize your workflows with conditional steps

If you have a workflow where the approval and/or task steps should change depending on the data from the [intake form](/workflows/designing-a-workflow#designing-your-intake-form) or [form steps](https://docs.wrangle.io/workflows/designing-a-workflow#form-steps), you can use conditional steps. Conditional steps let you use *if-then* logic to create powerful, dynamic workflows.

Here are some example use cases for conditional steps:

* **Refund requests:** if requested amount exceeds $500, then a manager must approve it, but if the requested amount is under $500, then a team lead or supervisor must approve it.
* **IT support tickets:** if the requester's issue is hardware-related, then hardware-specific troubleshooting tasks are created and routed to the IT team. But if the issue is software-related, then software troubleshooting tasks are created.
* **Product feedback/bug tracking:** have requesters select which product area is affected in order to route it to the appropriate product manager/engineering team.

Watch this video to see how to set up conditional steps in your workflow:

{% embed url="<https://youtu.be/4aGt-9yMIgA>" %}

## Intake form questions and their corresponding operators

Both "Number Input" and "Select from a List" question types can be used to determine conditional steps.&#x20;

For example, let's look at a refund request workflow. You might have fields like "Refund Amount" (number) and "Reason for Refund Request" (list).&#x20;

![](/files/vvs4khDCHH80anWt00vn)

For conditional steps, the following comparison operators are available for each question type:

* **Number Input**
  * is equal to
  * is not equal to
  * is greater than
  * is greater than or equal to
  * is less than
  * is less than or equal to
* **Select from a List**
  * is one of the following options
  * is not one of the following options

## Creating a conditional step

Once your form has either a "Number Input" or "Select from a List" question, now any approval or task list step in your workflow can be made conditional. \
\
In the workflow designer, find the "Only run this step under certain conditions" toggle at the bottom of your approval or task list step:

![](/files/ecEO1bJzvgp643N8E51Y)

Once toggled on, you can choose your question, comparison operator, and value(s):

![Comparison operator options for a Number field.](/files/qBBJLh5odinNiIta4ASF) ![Once you choose your operator, input a value. In this case, this step will only run when the "Refund Amount" is greater than 500.](/files/f04SYHiXBXJmIUeWVWGM)

![Comparison operator options for a List field.](/files/8yFGjTe1gfqCfN4Qa9Ae) ![Once you choose your operator, select your list option(s). In this case, the step will only run when the "Reason for Refund Request" is either "Product defect" or "Item not as described."](/files/QAwdIDlKz3AHDMepHtpm)


# Editing Workflow Settings and Design

You can edit a workflow's settings from multiple places:

![Open the menu from a specific workflow's tile on the Workflows view.](/files/oklvgFNdqpbLaV5PTjnn) ![From a specific workflow's dashboard, open "Settings"](/files/sOifx0aLbbQ1sp13Rik2)

## General settings

Here you can update your workflow name, change the question used to name each workflow instance, and toggle on the ["Notify requesters by Slack DM instead of in the thread?"](/workflows/advanced-workflow-features/notify-requesters-via-dm-for-private-workflows) setting.

![](/files/8kAXJbDHAT6CQosjnQC8)

## Edit Design

This will take you back into the [workflow designer](/workflows/designing-a-workflow) to update the workflow steps.

## Users & Permissions

Here you can edit permissions for a specific workflow. There are four types of user roles: "Admin," "Observer," "Requester," and "No Access."

Here's a breakdown of what each role can see and do:

![](/files/Kvz7fipiWjRxvt5N3ZF8)

In addition to these different roles, you can also set permissions at both the workspace and individual level for any given workflow.

Default workspace permissions determine how the majority of your workspace interacts with a workflow, whereas individual permissions are the exceptions to the rule. <br>

![For this workflow, the default permission is "Requester," with the exception of Claire, whose permission is "Admin."](/files/CxYlHeK4RmWG5N7fl9jr)

Here are some example workflows and how you might set up their permissions:&#x20;

* A personnel workflow for compensation adjustments and promotions that only people managers can use, the HR team can monitor, and the head of HR can edit.&#x20;
  * Default: No Access
  * People managers: Requester
  * HR team: Observer
  * Head of HR: Admin
* An employee expense reimbursement workflow that everyone in the organization can use, but that only the finance team can monitor and the head of finance can edit.&#x20;
  * Default: Requester
  * Finance team: Observer
  * Head of Finance: Admin
* A marketing content request workflow at a small company where only one employee manages marketing, and everyone else can submit a request.
  * Default: Requester
  * Marketing employee: Admin&#x20;

By default, the default permission for everyone in your workspace is "Requester," and the permission for the person who created the workflow is "Admin."

{% hint style="info" %}
If you're not ready to [roll out a specific workflow in your workspace](/best-practices/rolling-out-wrangle-to-your-workspace), consider temporarily setting its default permission to "No Access" so no one can request it before it's ready.
{% endhint %}

### Open visibility from My Workflows view in Slack

Some workflows created before July 2022 may have had their permissions set from the "Edit Workflow Visibility" modal under "My Workflows" (now "My Items" in the [Wrangle App Home](/best-practices/wrangle-app-home)). That modal included the option to make the workflow open by leaving the "Who should be able to see this workflow?" field blank:

![](/files/01luPGnRFVnStoPpKG7y)

While visible to anyone, these workflows did not have a specific admin, and only assignees could edit an in-progress [approval](/workflows/designing-a-workflow/approvals#editing-approvals-in-progress) or [task list](/workflows/designing-a-workflow/task-lists#editing-task-lists-in-progress). Any workflows with this field left blank will now have the default permission set as "Admin."

## Export History

Here you can export the complete history of your workflow as a CSV. Once the export is ready, you'll have a message in the Wrangle app in Slack where you can download your CSV.

![](/files/rA0yCsMFrE2Tx9rqLJEp)

## Archive

If you'd like to hide a workflow so no one can use it in Slack or edit it, you can archive it.&#x20;

![](/files/TvKcxvJJki9M7pG6bAUR)

Archived workflows will appear in their own tab on the Workflows view. To restore an archived workflow, click "View Workflow," then "Restore Workflow" on the following page:

![Click "View Workflow"](/files/Hf0Ly8Cdd7PsoKAa1KzU) ![Click "Restore Workflow." You can also export an archived workflow's history at any time.](/files/70bCUoz9ewm6Ftz5QpaX)

You'll be taken back to the workflow settings, where you can finalize your workflow restoration:

![](/files/wPVysYkxzOr8HRIn1EeF)


# Monitoring and Managing a Workflow

Wrangle has comprehensive views for managing your workflows, so you can:

* **Monitor your workflow** to make sure no work falls through the cracks
* **Jump into any approval/task list** created by your workflow to see why it's stuck
* **Edit your workflow** to change its steps or who can edit it
* **Export the history of your workflow** for analytics and auditing

To learn more about how to monitor a workflow, check out these resources:

{% embed url="<https://youtu.be/70UM3L0BWKE>" %}

{% content-ref url="/pages/ixBJ41L5jYQkZsXrR8Lr" %}
[Workflow Dashboard](/workflows/monitoring-and-managing-a-workflow/workflow-dashboard)
{% endcontent-ref %}

{% content-ref url="/pages/XP0XxBbEf0VTBfCZUkrx" %}
[Instance View](/workflows/monitoring-and-managing-a-workflow/instance-view)
{% endcontent-ref %}

##


# Workflow Dashboard

Use the Workflows page to see all your active and archived workflows, and see at-a-glance how many instances of each workflow are in progress.

Find the Wrangle web app by clicking on "Wrangle Dashboard" from the [App Home](/best-practices/wrangle-app-home) in Slack.

![](/files/7YTHGrLmjI0ncvHikNHO)

{% hint style="info" %}
Not seeing some of your workflows? Workflows built using the [Slack Workflow Builder](/integrations/slack-workflow-builder-1) will not be visible in the Wrangle web app. [Contact us](/more-help/contact-us) to discuss migrating your workflows to the [Wrangle Workflow Engine](/workflows/designing-a-workflow).
{% endhint %}

Click any workflow to see a fully filterable view of all instances of that workflow:

![](/files/2OmdCL4xcZc8ig6WopD5)

Use this workflow page to:&#x20;

* Sort by **Newest**, **Oldest**, or **Status**
* Search for any instance of the workflow by name
* Filter by **Status**, **Assignees**, whether the instance is **Late**, and the **Created By** user
* Edit your workflow settings and design

Find bottlenecks and act on them by clicking the workflow instance name, which will open the [instance view](/workflows/monitoring-and-managing-a-workflow/instance-view).


# Instance View

From the Workflow Dashboard, you can click on any workflow instance name to open the instance view. \
\
Use the instance view to:&#x20;

* Review form responses
* Easily complete approvals, tasks, and forms, or jump into Slack to comment in the thread
* See timestamps for who approved the workflow or completed tasks
* View what steps still remain and see why an instance is bottlenecked
* Quickly toggle between instances to see where they all stand using the :arrow\_up\_small: and :arrow\_down\_small: icons

<figure><img src="/files/kRmincbC56XbGTSKeVNq" alt=""><figcaption><p>Review multiple instances to see their progress.</p></figcaption></figure>

### Using the instance view

When you open up an instance, you'll see the requester, start date, status, and form responses on the left. On the right you'll see more details about the current step, including the ability for assignees to take action and a link to view the thread in Slack.

<figure><img src="/files/hYlYHmZMzoL4XPaQQUjV" alt=""><figcaption><p>By default, the intake form responses are displayed on the left.</p></figcaption></figure>

Use the "Progress" tab on the left to view a timeline of every step in your workflow and to see more details about each one.&#x20;

<figure><img src="/files/s979Owz6lBtSt7kfcneV" alt=""><figcaption><p>Switch to the "Progress" tab to see all completed and upcoming steps in the workflow.</p></figcaption></figure>

This is what an approval step looks like:&#x20;

<figure><img src="/files/FQhfNI8tk9dkllCTl0Wg" alt=""><figcaption><p>See who was assigned to the approval and how may approvers are needed in order to advance the workflow. If it's been completed, you'll also see a time stamp.</p></figcaption></figure>

This is what a form step looks like:

<figure><img src="/files/NdVE4QhDHHvmkbp8GnxB" alt=""><figcaption><p>See the questions in your form step and who it's assigned to. If it's been completed, you'll also see both the responses and a time stamp.</p></figcaption></figure>

And this is what a task list step looks like:&#x20;

<figure><img src="/files/F1LZqqMrLO0ccdSlBHzb" alt=""><figcaption><p>See who's assigned to each task and what the status of each task is. If all tasks have been completed, you'll also see a time stamp.</p></figcaption></figure>

### Taking action

Assignees can take action directly from the instance view, either by completing approvals, checking off tasks, or filling out forms. The instance thread in Slack will update in real-time as work is completed.&#x20;

<figure><img src="/files/hbj8F8CwDMapy3ROl6ZI" alt=""><figcaption><p>Take action directly from the instance view.</p></figcaption></figure>

### Sharing an instance

Each instance has a unique URL, so if you ever need to share an instance for someone else to review or take action on, you can send them a direct link to it. [User permissions](/workflows/designing-a-workflow/editing-workflow-settings-and-design#users-and-permissions) still apply; users must be either an admin or observer for the workflow overall, or the requester or assignee for that specific instance in order to be able to view it on the web.&#x20;


# My Dashboard

Use My Dashboard in the Wrangle web app to see all the workflow instances that are waiting on you, as well as the instances you created.&#x20;

If your team uses [ticketing inboxes](/tickets/getting-started-with-wrangle), you'll also see tickets that are waiting on you, as well as ones you created and ones you follow.

<figure><img src="/files/Gz4TihdGkxMaebofGAvL" alt=""><figcaption><p>View "Waiting on me," "Requested by me," and "Followed by me" requests.</p></figcaption></figure>

Click on any workflow instance or ticket in My Dashboard to see the request details.


# Advanced Workflow Features

Wrangle has a lot of power built into the Workflow Engine:

* Setting [due dates](/workflows/advanced-workflow-features/due-dates-and-reminders) on approvals and tasks, with reminders if people are late
* [Assigning steps](/workflows/advanced-workflow-features/assigning-work-to-people-from-earlier-steps) to people who took action in other parts of the workflow
* Keeping the workflow's approvals and task lists [together in the same Slack thread](/workflows/advanced-workflow-features/keeping-everything-in-one-slack-thread)


# Post a Workflow To Different Channels

If you have multiple groups that need to use your workflow, you might want to post in one channel for one group and in another channel for the other group. Wrangle has you covered.

To set this up, we'll add a question to our intake form where the user can select a channel. Then we'll set up Wrangle to use the answer to that question to dynamically decide where to post this workflow. That way, each time the workflow is run, the user starting the workflow controls which channel the workflow steps are posted in.

## Adding a "Select a Channel" Question

First, we need to modify our form to add a "Select a Channel" question. For these instructions, we'll assume you're editing an existing workflow, but it works the same way if you're designing a new workflow.

In the workflow editor, add a "Select a channel" question to your form. You can give this question a name like "What team channel do you use?" or "Where do you want this to be posted?"

{% hint style="info" %}
This question must be required, and it cannot be on a [conditional form step](/workflows/designing-a-workflow/conditional-steps).&#x20;
{% endhint %}

## Configuring Steps to Post to Different Channels

Now that we've added a "Select a Channel" form question, we need to set our steps to use it. You'll need to repeat these instructions for each step in your workflow that you want to be posted to the channel selected in the form.&#x20;

Look for the field where Wrangle says "Which Slack channel should we post this step in?" and select "Post to channel chosen in form."

<figure><img src="/files/3nQ3OIK59tFKpb1I38QT" alt="" width="563"><figcaption></figcaption></figure>

Finally, choose your "Select a channel" question and save your workflow.&#x20;

<figure><img src="/files/Su5rYX6lff9bqXT4XODL" alt="" width="563"><figcaption></figcaption></figure>

## Using Your Form Question to Control the Workflow

Now that you have everything set up, let's test your workflow.

[Start your workflow](/workflows/using-a-workflow) and fill out the [intake form](/workflows/using-a-workflow#filling-out-an-intake-form). The channel you pick in the intake form will now control where the workflow's steps are posted!


# Due Dates and Reminders

When you have time-sensitive work in your workflow, you can set a due date on any step of your workflow.

There are two types of reminders you can set up: late reminders that start relative to when the step posts to Slack, and reminders that start before or after a specific date. Enable either of these options using the "Remind assignees if they take too long" toggle when [designing your workflow](/workflows/designing-a-workflow).

<figure><img src="/files/LA7w8sNQFt3TBC3M0ohX" alt=""><figcaption><p>Toggle this setting on to set up late reminders or due dates</p></figcaption></figure>

### Late reminders

With late reminders, the due date is relative to when the workflow step was posted to Slack (for example, assignees might have three days to complete the work). These relative due dates can be 15 minutes, 30 minutes, one hour, four hours, or any number of weekdays from the time the step was posted.

If assignees haven't completed the step they're assigned to, Wrangle will automatically remind those people that they're now late on the work. If they still haven't completed it, Wrangle will keep nagging them every few days.

### Due dates using forms

If your workflow includes a date question in a form, you can use it to schedule reminders either before or after the chosen date.&#x20;

To set up due dates on a step with reminders enabled, select "Before or after a specific date," create your reminder schedule, and choose the date form question you'd like to use to set your due date.

<figure><img src="/files/ryjQriiEXH35yAetaHkz" alt=""><figcaption><p>Enable due date reminders based on form entries</p></figcaption></figure>


# Assigning Work To People From Earlier Steps

In some workflows, you know exactly who to assign to each step. In a blog post publishing workflow, for example, you might know that the same two managers should always be assigned to review the post.

In other workflows, you need to be able to dynamically assign people to a step, depending on what's happened before. For example, you might want to assign a follow-up task to the person who gave approval in a previous step. Or, you might want someone to say who their manager is so you can assign an approval to that manager.

We call this **dynamic assignment.**

## Two Types Of Dynamic Assignment

In Wrangle workflows, you have two ways to dynamically assign people to a step:

* **Assigning to people who completed a previous step**
* **Assigning to people selected in a form question**

By default, Wrangle's steps assume you want to assign the step to specific people rather than using dynamic assignment. On both approval and task list steps, there's an option to change this to one of the dynamic options:

![](/files/-MjAhFiE8_bV7EHuTlBB)

## Assigning To Previous Step Completers

The most common type of dynamic assignment is to assign the current step to someone who completed a previous step.&#x20;

In the input pictured above, if you choose the options to "Assign to completers of a previous step," you'll see a second input that will list all of the preceding steps. That is how you assign the current step to the completer(s) of a previous step.

There are a few ways you can use this kind of assignment:

### Assigning back to the person who started the workflow

By choosing to assign the step to the person who completed the intake form, you'll be able to assign things to the person who started the workflow.

For example, let's assume we're a salesperson starting a quote approval workflow. We want the salesperson to fill out the intake form, which then routes to an approval for the sales manager. If approved, we want to assign a follow-up task to the salesperson to make sure they send out the quote. If we assign that final task (to send out the quote) to the completer of the intake form, we achieve our goal since the salesperson is the one filling out the intake form.

### Assigning to previous approvers

A very common use case is to assign follow-up tasks to someone who approved something. By choosing to assign a task step to the completers of that previous approval, we can achieve this — anyone who chose to approve in the early step will be dynamically assigned to the follow-up task.

### Assigning to previous task completers

Similarly, we can also do the inverse. We can dynamically assign follow-up tasks or follow-up approvals to anyone who completed tasks in a previous step.

## Assigning To Someone Chosen In A Form Question

Another way that workflows can be dynamic is to have a form question that allows the user to pick one or more colleagues. Then, future steps can be assigned to whomever was chosen.

There are two common ways this is used:

* **Picking a manager**. In workflows that are used widely in an organization, especially HR workflows, you might want the person filling out the form to choose their manager. That way, you can dynamically assign a subsequent approval or task to the manager. Since the manager varies for every person that might use your workflow, this dynamic assignment is the only way to have a workflow that can adapt to the user.
* **Picking a subordinate**. Picking a user, or users, in a form is also a great way for a manager to delegate work to a subordinate each time they start the workflow. The manager completes the form, choosing the people they want to assign later in the workflow.&#x20;


# Notify Requesters via DM for Private Workflows

If your requesters don't belong to the channel where your Wrangle workflow posts (for example, if you have a sensitive HR or finance workflow that posts to a private channel), you can still keep your requesters in the loop by enabling the "Notify requesters by Slack DM instead of in the thread?" [setting](/workflows/designing-a-workflow/editing-workflow-settings-and-design).&#x20;

Once enabled, your requesters will receive updates via DM from the Wrangle app to let them know how the workflow is progressing.

{% hint style="info" %}
Make sure your [approval](/workflows/designing-a-workflow/approvals) and [task list](/workflows/designing-a-workflow/task-lists) step names are descriptive enough that your requesters understand what each stage means, since they won't have the additional context of the Wrangle thread.
{% endhint %}

<div align="left"><img src="/files/sTVVO8J4tVrnVlejRwRn" alt="DM informing that the first step has been completed and the workflow has progressed to the second step."></div>

<div align="left"><img src="/files/1ugBpzWo6r7wOhatQORT" alt="DM informing that the request has been completed"></div>

<div align="left"><img src="/files/Exkn4Hh3ms3WTanHwZkr" alt="DM informing that the request was rejected."></div>


# Notify Assignees via DM for Private Workflows

When a workflow is posted to a private Slack channel, a user may be assigned to complete a certain step who is not a member of the channel.

This behavior is **automatic** — no configuration required.

When a workflow step is assigned to someone who isn't a member of the workflow's Slack channel, Wrangle detects this and sends that person a direct message with the step instead of posting it in the channel. This applies to all step types:

* **Approvals** — approvers not in the channel receive the approval request via DM
* **Forms** — form assignees not in the channel receive the form via DM
* **Task lists** — task assignees not in the channel receive the checklist via DM

Subsequent updates to that step thread continue in the same DM.


# Suggest a Workflow

If you'd like to suggest a workflow to one of your colleagues in Slack, you can use the "Suggest a workflow" message shortcut. The "Suggest a workflow" shortcut is great for highlighting a specific workflow to someone who isn't yet familiar with Wrangle. For example, if you have an expense reimbursement workflow and see a question in Slack about how to submit an expense report, you can use the shortcut to send the commenter a direct link to start the workflow.&#x20;

To suggest a workflow, open the "More actions" menu on a comment, then choose "Suggest a workflow." Then, select the specific workflow you're like to suggest.

<figure><img src="/files/ZWdK1ifZTv9mtfTjVIZ5" alt=""><figcaption><p>Send your colleagues a link to your workflow.</p></figcaption></figure>

The original commenter will see a reply from Wrangle that directs them to complete your intake form and launch the workflow. Once they launch the workflow, Wrangle will create a new comment with a link to the workflow thread where the requester can follow along.

<figure><img src="/files/qOPQGjAybSIF0u0swWmd" alt=""><figcaption><p>Requesters can easily launch the workflow.</p></figcaption></figure>


# Keeping Everything in One Slack Thread

When your users start a workflow that has several approval or task list steps, it's nice to keep all of that work together in one Slack thread. That way, the conversation about early steps in the flow can be referred to when working on later steps in the flow.

Wrangle workflows will automatically handle keeping everything in one thread, as long as two or more steps are set to post in the same Slack channel.

For example, imagine you have a workflow that looks like this: *Intake form > Approval > Task list.* If the approval and task list steps are both set to post in the **#marketing-requests** channel, then Wrangle will automatically post the task list into the same thread as the earlier approval.


# How to Duplicate a Workflow

Need to reuse a workflow without rebuilding it from scratch? Wrangle makes it easy to duplicate an existing workflow design so you can quickly spin up a variation.

#### Step 1: Open the Workflow Menu

From your workflow list, click the three-dot menu (`⋮`) on the workflow you want to duplicate.

Then select **Duplicate Workflow** from the dropdown.

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

#### Step 2: Name Your New Workflow

A modal will appear asking you to name the duplicated workflow.

> 📝 Note: This will create a copy of the **workflow design only**. It will not include any instances or historical data.

Once you've entered a name, click **Duplicate** to finish.

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

***

You’re all set! Your new workflow will appear in your list, ready to customize and use. Want help adjusting it? Just ping us in support.


# Ticket Reporting

The [Ticket Reports](https://slack.wrangle.io/tickets/reports) shows you an overview of your inboxes' KPIs. See trends in your ticket volume, including average and median time to completion, find out who your top requesters are, and review agent performance.

[Ticketing admins, agents, and observers](/tickets/setting-up-your-inbox/roles-and-permissions) have permissions to view reports.

{% hint style="info" %}
The Ticket Reports requires at least eight weeks of ticket data in order to effectively display trends.&#x20;

If you want to see the data that these KPIs are based on, export your ticket history for the full dataset.
{% endhint %}

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

## Report Types

Ticket reporting includes 4 types of reports: Overview, agents, deflections, and Ask Wrangle.&#x20;

### Overview:&#x20;

Your report will have several inbox-wide metrics including:

* **Ticket Volume**
* **Top 5 Requesters**
* **Tickets Created**
* **Tickets Completed**
* **Average Ticket First Response Time**
* **Average Ticket First Completion Time**
* **Average Ticket Completion Time**
* **Median Ticket Completion Time**
* **Top Tags**
* **Least Used Tags**

Additionally, if any of your inboxes has [satisfaction surveys enabled](https://docs.wrangle.io/tickets/setting-up-your-inbox#setting-up-automations), your report will also include these two metrics:

* **Average Ticket Satisfaction Score**
* **Total Ticket Satisfaction Surveys Completed**

<figure><img src="/files/2MoS5brYeJEFcUt4WLx1" alt="" width="563"><figcaption></figcaption></figure>

### Ticket report filters

By default the ticket report shows data for the **current week** across all inboxes, tags, and workspaces. You can use the following filters to customize the report:&#x20;

* **Date Range** - Including preset options such as "30D", or any custom date range.
* **Inbox** - Drill down into one or more specific inboxes
* **Tags** - Select one or more [tags](/tickets/setting-up-your-inbox/tags) to view topic-specific trends&#x20;
* **Priority** - Filter your reports down to the priorities you want to analyze.
* **Form Fields** - Filter reports with up to 3 form fields' values
* **Workspaces** - Drill down into data for specific Slack Connect workspace (for [customer support inboxes](/tickets/ticketing-for-slack-connect) only)

### Quickly apply date ranges

<figure><img src="/files/ANKBpXMfBTgfpUpYGyVv" alt="" width="563"><figcaption></figcaption></figure>

The date range picker in ticket reports supports the following presets:

* **Today**
* **Yesterday**
* **7D** — last 7 days
* **30D** — last 30 days
* **3M** — last 3 months
* **Custom** — pick a specific start and end date using the calendar

When no custom range is selected, reports default to the **last completed week** (not the current in-progress week).

<figure><img src="/files/oI8MJ5y2QeLhGccKtbHv" alt="" width="563"><figcaption><p>View your organization's performance over the last 7 days quickly by hitting the "7D" button</p></figcaption></figure>

### Date range comparisons

When a date range is selected, a **Compare** button appears next to the date picker. Clicking it lets you overlay a second time period on the report to compare performance side by side.

<figure><img src="/files/hE1Idh0qwCiTaMRFHybm" alt="" width="375"><figcaption></figcaption></figure>

#### Comparison period options

* Previous Day
* Previous Week
* Previous Month
* Previous Quarter

<figure><img src="/files/hXoYUc7w7uI9FWKjxXwM" alt="" width="563"><figcaption><p>Hover over each day to get a breakdown of each day's ticket count.</p></figcaption></figure>

#### What gets compared

**Summary cards** (Tickets Created, Tickets Completed, completion times, first response time, assignment time, CSAT) show:

* The current period's value
* A percentage change indicator (up or down) labeled "over previous period"

**Charts** display both periods simultaneously:

* The current period is shown in solid bars
* The comparison period is shown in striped bars

### Filtering by tags

A **Tags** filter is available in the report filter menu. You can select one or more tags to limit the report to tickets that have those tags applied.

#### View your most used and least used tags

When no tag filter is active, the report includes a **Tag Usage** section with two charts:

* **Top Tags** — the most frequently used tags, broken down by inbox
* **Least Used Tags** — the least frequently used tags, broken down by inbox

<figure><img src="/files/7sdPPd6j6qAs1fd5bVgC" alt="" width="563"><figcaption></figcaption></figure>

### Filtering by form fields

A **Form Fields** filter is available in the report filter menu. You can filter tickets based on the values submitted in form fields.

#### How it works

1. Select a form field from the dropdown
2. Choose an operator:
   * **Contains** — field value includes the text
   * **Contains all** — field value includes all specified values
   * **Does not contain** — field value does not include the text
   * **Equals** — field value exactly matches
   * **Is empty** — field has no value
3. Enter a value to match (not required for **Is empty**)

You can add up to **3 form field filters** at once. Multiple filters are combined with `AND` logic — tickets must match all filters to be included.

### Agents:

Your report will also include individual agent KPIs like:

<figure><img src="/files/F1MjsjsPgX5TkoOx256E" alt=""><figcaption><p>Agent KPIs in the ticket report</p></figcaption></figure>

* **Top Agents by Tickets Completed**
* **Agent Average Completion Time**
* **Agent Median Completion Time**

### AI Deflection reporting:

{% content-ref url="/pages/BWsFMsZ5YOJW0CTlJAwS" %}
[AI Deflection reports](/reporting/ticket-reporting/ai-deflection-reports)
{% endcontent-ref %}

### Leverage AI to analyze your metrics with Ask Wrangle:

{% content-ref url="/pages/DAT12N2zMuQyqGAtR1Zm" %}
[Ask Wrangle](/reporting/ask-wrangle)
{% endcontent-ref %}


# AI Deflection reports

The Deflection Report shows how AI Ticket Deflection and Smart Replies are performing across your inboxes. Access it from the Deflections tab inside Ticket Reporting.

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

### Filters

The following filters are available at the top of the page for deflection reports:

* **Date Range** — preset shortcuts or a custom from/to range
* **Inbox** — filter to one or more inboxes
* **Tags** — filter to tickets with specific tags (depends on selected inboxes)
* **Priority** — filter by ticket priority

### Charts view

The default view shows a summary of outcomes based on users' answers to the prompt below, shown after every deflection attempt made by Wrangle:

<figure><img src="/files/QH2KJ6kmo2xgwjKgOdxa" alt="" width="350"><figcaption></figcaption></figure>

#### Outcomes pie chart

<figure><img src="/files/YE7mwjNjLDV4ipLZZrX8" alt="" width="563"><figcaption></figcaption></figure>

The chart — **"Outcomes After AI Ticket Deflection Attempt"** — breaks every deflection attempt into one of four outcomes:

<table><thead><tr><th width="282.9765625">Outcome</th><th>What it means</th></tr></thead><tbody><tr><td><strong>No Response from User</strong></td><td>The user was shown an AI response and did <strong>not</strong> click either either button.</td></tr><tr><td><strong>Confirmed Helpful</strong></td><td>The user clicked "👍 <strong>Yes, this helped.</strong>"</td></tr><tr><td><strong>Rejected Response</strong></td><td>The user was shown a response but clicked "👎 <strong>No, start a ticket.</strong>" to create a ticket.</td></tr><tr><td><strong>No KB or Smart Reply Match</strong></td><td>No matching content was found, so Wrangle AI did not post a message; a ticket was created automatically</td></tr></tbody></table>

#### Summary cards

<figure><img src="/files/pSLd02esAOZDSl9ysmuW" alt="" width="375"><figcaption></figcaption></figure>

To the right of the chart, four metric cards provide totals for the selected period:

* **Tickets Confirmed Deflected** — count of "Confirmed Helpful" outcomes
* **Total Ticket Deflections** — "Confirmed Helpful" plus "No Response from User" (deflections where the user may not have confirmed but did not create a ticket)
* **Tickets Created: After Response** — tickets created by users who saw a response but chose to create a ticket anyway
* **Tickets Created: No Match** — tickets created automatically because no matching knowledge base content or Smart Reply was found

{% hint style="info" %}
For **After Response** and **No Match**, a downward trend is a positive signal — it means fewer tickets are being created despite deflection attempts.
{% endhint %}

***

### Table view

Switch to **Table View** using the toggle above the chart. The table shows one row per deflection attempt — every question your AI responded to — paginated in sets of 25. This is where you can dig into the details behind your summary numbers.

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

#### Result

Each row shows a color-coded **Result** that tells you what happened after the AI responded:

* **Confirmed** (purple) — the user clicked to confirm the response answered their question
* **Response needed** (dark purple) — the user didn't reply and didn't create a ticket; the outcome is unclear
* **Created ticket** (orange) — the user saw the response but submitted a ticket anyway
* **No match** (gray) — no knowledge base content or Smart Reply matched, so a ticket was created automatically

If a ticket was created, the Result column becomes a link — click it to jump directly to that ticket.

#### Question and Response

The **Question** column shows what the user actually asked, and the **Response** column shows exactly what the AI sent back. Long text is truncated by default; click "more" to expand inline. Reviewing these side by side is the fastest way to spot where your knowledge base has gaps or where responses aren't landing well.

#### Sources

The **Sources** column shows which knowledge base articles or Smart Reply keywords were used to generate the response. Up to two sources are shown per row, with an option to expand if there are more. For AI Ticket Deflection responses, each source is a clickable link to the original article. For Smart Replies, you'll see the keyword that triggered the reply.

#### Type

The **Type** column distinguishes between **AI Ticket Deflection** (AI-generated responses from your knowledge base) and **Smart Replies** (keyword-triggered responses). Viewing by type helps you evaluate each system's performance separately.

#### Rating

{% hint style="info" %}
The **Rating** column lets you score the quality of any AI response on a 1–5 star scale, directly from the table. Click the stars on any row to submit a rating.
{% endhint %}

Ratings are a lightweight way for your team to flag responses that are misleading, off-topic, or just not quite right — without having to open a ticket or leave the report. Over time, consistently low-rated responses point to specific knowledge base articles that may need to be updated or removed. This is one of the most actionable signals in the report for improving deflection quality.

***

### Exporting data

The **Export AI Usage Data** button downloads a CSV of both AI Ticket Deflection and Smart Reply usage for the selected date range and filters.


# Workflow Reporting

The Workflow Report shows you key KPIs about your workflows. See trends in your workflow volume, including average and median time to completion, and find out who your top requesters are.&#x20;

Both [workflow admins and observers](https://docs.wrangle.io/workflows/designing-a-workflow/editing-workflow-settings-and-design#users-and-permissions) have permissions to view reports.

To find the report for a specific workflow, open the [Workflow Dashboard](/workflows/monitoring-and-managing-a-workflow/workflow-dashboard), then choose "Report" in the top menu:

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

Your workflow report will include:

* **Instance Volume** (past 9 weeks)
* **Top Requesters** (past week)
* **Instances Created** (over 8-week average)
* **Instances Completed** (over 8-week average)
* **Average Workflow Completion Time** (over 8-week average)
* **Median Workflow Completion Time** (over 8-week average)

<figure><img src="/files/QwG9gjbEvcYHLKpg7ZGw" alt=""><figcaption><p>Use workflow performance trends to see how efficiently your team is closing out requests over time.</p></figcaption></figure>

{% hint style="info" %}
The Workflow Report requires at least eight weeks of instance data in order to effectively display trends.&#x20;
{% endhint %}

If you want to see the data that these KPIs are based on, [export your workflow history](https://docs.wrangle.io/workflows/designing-a-workflow/editing-workflow-settings-and-design#export-history) for the full dataset.


# Ask Wrangle

If you don't see a specific metric you're interested in within the default reports, you can Ask Wrangle a question about your tickets using natural language.

<figure><img src="/files/CZGMgyhJxvI1yvM1QBUK" alt=""><figcaption><p>Click one of the example questions, or write your own</p></figcaption></figure>

Wrangle's [AI powered reporting engine](https://slack.wrangle.io/reports/tickets/ask-wrangle) will analyze your tickets and provide you with a response, and link to view tickets that were used to generate the response.

After you receive an answer, you'll be able to rate whether or not the response was helpful; ratings help Wrangle to improve your reports over time. Click the thumbs up or thumbs down buttons to submit your feedback:

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

Use the inbox filter to select specific inboxes to use for reports, or leave it empty to ask questions about all inboxes.

{% hint style="info" %}
Users can Ask Wrangle about tickets within inboxes where they have a role of [Observer](/tickets/setting-up-your-inbox/roles-and-permissions) or higher.
{% endhint %}

Ask Wrangle is part of our [Scale Plan](https://www.wrangle.io/pricing). If you're a current Pro customer and interested in taking it for a spin, contact us at `support@wrangle.io`.


# Automated reports

Automated Reports let you schedule regular analytics summaries posted directly to a Slack channel. You choose what metrics to include, how often to send them, and which inboxes to cover.

**Where to find it:** Reports → Automations

<figure><img src="/files/C8Xe3u71KHu1zmAgQjoV" alt="" width="563"><figcaption></figcaption></figure>

***

### Creating a report automation

Click **Create Report Automation** and configure the following:

<figure><img src="/files/Oma9LTAPIugEVLdKRrBQ" alt="" width="563"><figcaption></figcaption></figure>

#### Slack Channel

Select the Slack channel where reports will be posted. Wrangle will join the channel automatically if it isn't already a member.

#### Inboxes

Optionally filter the report to one or more specific inboxes. Leave this field empty to include data from all inboxes.

<figure><img src="/files/clicU0hol2YFXL29IqZY" alt="" width="563"><figcaption></figcaption></figure>

#### Cadence

Choose how often the report sends:

* **Daily** — sent once per day; covers the previous day
* **Weekly** — sent once per week on the day you select; covers the past 7 days
* **Monthly** — sent once per month; covers the past 30 days

For weekly reports, a day-of-week picker appears so you can choose which day each week the report goes out.

#### Send time

Set the time of day for the report to be sent. Reports are delivered within a 30-minute window starting at the time you select. Times are in your workspace's timezone.

The default send time is 9:00 AM.

<figure><img src="/files/3ncac0cMCczjUnXLIaji" alt="" width="563"><figcaption></figcaption></figure>

#### Metrics

Choose which metrics to include in each report. All five can be toggled on or off independently:

| Metric                             | What it measures                                                                                                      |
| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| **Total open tickets**             | Count of tickets currently in New or In Progress status at the time the report is sent                                |
| **Tickets created**                | Number of tickets created during the reporting period                                                                 |
| **Tickets completed**              | Number of tickets moved to Resolved or Closed during the reporting period                                             |
| **Average time to first response** | Average time between ticket creation and the first agent reply, for tickets created during the period                 |
| **Average time to complete**       | Average time between ticket creation and the ticket being resolved or closed, for tickets completed during the period |

By default, Total open tickets, Tickets created, and Tickets completed are enabled when you create a new automation.

***

### What reports look like in Slack

Each report is posted as a Slack message with:

* A header showing the date the report was sent
* The reporting period and which inboxes are included
* A section for each enabled metric
* A **View Ticket Reports** button that links to the Ticket Reports page in Wrangle, pre-filtered to the same date range and inboxes

<figure><img src="/files/OGKWysGEm6fPem3tHSB8" alt="" width="563"><figcaption></figcaption></figure>

***

### Managing automations

Each automation card on the Automated Reports page shows its channel, schedule, inboxes, next send date, enabled metrics, and who created it.

**Send Now** — Immediately sends the report to the channel. Useful for previewing what the report will look like without waiting for the next scheduled send.

**Edit** — Opens the same modal used to create the automation, where you can update any settings. The edit view also includes an **Active** toggle to pause the automation without deleting it. When inactive, reports will not send on the schedule.

**Delete** — Permanently removes the automation. This action cannot be undone.


# Email

Connect Wrangle to your email provider to allow tickets to be created automatically from incoming emails.

## Quick Start Guide

The email integration setup process consists of four steps:

1. **Provide Forwarding Address** - Enter the email address that will forward emails to Wrangle
2. **Verify Forwarding Address** - Verify ownership of the email address
3. **Enable Automatic Email Forwarding** - Configure your email provider to forward emails automatically
4. **Confirm Automatic Email Forwarding** - Complete the setup with a final confirmation

Your progress is saved at each step, so you can complete the setup at your own pace and return to it later if needed.

***

### Step 1: Provide Forwarding Address

In this step, you'll specify the email address that will receive emails and forward them to Wrangle.

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

#### Instructions

1. Navigate to your inbox settings in Wrangle
2. Go to the **Integrations** tab and select **Email**
3. Click the **Setup Email** button
4. In the modal that appears, enter the email address you want to use for ticket creation
   * This should be an email address you control (e.g., `support@yourcompany.com` or `help@yourcompany.com`)
   * Wrangle will suggest an email address based on your inbox name and your account's email domain
   * **Note:** This email address must be unique and cannot be used by another inbox
5. Click **Begin Setup**

After completing this step, Wrangle will send a verification email to the address you provided.

***

### Step 2: Verify Forwarding Address

In this step, you'll verify that you own the email address you provided in Step 1.

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

#### Instructions

1. Check your email inbox for the address you entered in Step 1
2. Look for an email from Wrangle with a verification link
3. Click the verification link in the email
   * This will open a new page confirming your email address has been verified
4. Return to Wrangle - the step should automatically update to show verification is complete

#### Troubleshooting

* **Didn't receive the email?** Check your spam/junk folder, or click the **Resend** button in Wrangle
* **Verification link expired?** Click **Resend** to receive a new verification email
* **Still having issues?** Contact support at <support@wrangle.io>

Once verified, you'll see a success message and can proceed to the next step.

***

### Step 3: Enable Automatic Email Forwarding

In this step, you'll configure your email provider to automatically forward incoming emails to Wrangle. This is the most important step, as it enables the actual email-to-ticket functionality.

<figure><img src="/files/5Kf8utOgWWwniaqnSxns" alt=""><figcaption></figcaption></figure>

#### What You'll Need

* Access to your email account settings
* The forwarding address provided by Wrangle (displayed in the setup interface)

#### Instructions

1. In Wrangle, you'll see a forwarding address displayed (e.g., `forwarding-abc123@wrangle.io`)
   * **Important:** Copy this address - you'll need it in your email provider settings
2. Open your email provider's settings in a new tab or window
3. Follow the instructions below for your email provider:
   * [Forwarding with Gmail](/integrations/email/forwarding-with-gmail)
   * [Forwarding with Outlook](/integrations/email/forwarding-with-outlook)

#### Other Email Providers

If you're using a different email provider (e.g., Yahoo Mail, Apple Mail, custom email server), the general steps are similar:

1. Find your email provider's forwarding or rules settings
2. Set up automatic forwarding to the Wrangle forwarding address
3. Ensure forwarded messages are kept in your inbox (recommended)
4. Return to Wrangle and confirm forwarding is enabled

**Note:** Some email providers may send a confirmation email to verify forwarding. If you receive one, follow the instructions in that email, then return to Wrangle.

***

### Step 4: Confirm Automatic Email Forwarding

In this final step, you'll complete the setup by confirming that email forwarding is working correctly.

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

#### Instructions

1. When you're ready, click the **Complete Setup** button in Wrangle
2. Wrangle will send a test confirmation email to your forwarding address
3. Wait a few seconds while Wrangle processes the confirmation
   * You'll see a "Test email successfully sent!" message
   * Wrangle will automatically detect when the confirmation email is received
4. Once confirmed, you'll see a success message: "Email integration successfully confirmed!"

#### Troubleshooting

* **Taking longer than expected?**
  * Check that forwarding is properly configured in your email provider
  * Verify the forwarding address in your email settings matches the one shown in Wrangle
  * Click **Resend Confirmation** if needed
* **Still having issues?**
  * Double-check your email provider's forwarding settings
  * Ensure you've saved all changes in your email provider
  * Contact support via chat or email <support@wrangle.io>

***

### Setup Complete!

Congratulations! Your email integration is now set up and ready to use.

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

#### What Happens Next?

* **Emails sent to your forwarding address** will automatically create tickets in Wrangle
* **Replies to those emails** will be posted as messages to the corresponding tickets
* **Messages posted to the ticket thread** will be sent as emails to ticket requester

{% hint style="info" %}
Wrangle replies to the sender with a confirmation email, unless their email address matches a known Slack user — in that case, they'll be @mentioned in the ticket thread instead.
{% endhint %}

## Setting A Custom Sender

After setup is complete, you can configure a custom sender address and name in the email integration settings page within your inbox.

1. Click the Edit button to customize the sender details.

<figure><img src="/files/cmtNvs25FbBwhIaAupn9" alt="" width="375"><figcaption><p>Default Sender Details</p></figcaption></figure>

2. The sender name and address are both customizable. The address must be one that you can access to receive a verification email. Wrangle will be able to use the new sender name immediately. The sender address will require an additional verification step.

<figure><img src="/files/GCgyrmCI4wfkUo32znBC" alt="" width="375"><figcaption><p>You may customize the Sender name and address</p></figcaption></figure>

3. Follow the instruction in the email your received to verify your new sender address. This can take a few minutes to arrive.

<figure><img src="/files/CW72c3WQpLFwsyoaym3F" alt="" width="375"><figcaption><p>Pending verification</p></figcaption></figure>

4. All set! Once you have verified the new sender address, Wrangle will begin using it to send ticket confirmations and agent replies.

<figure><img src="/files/y4eR3Z9ZmSQIocgJdGcI" alt="" width="375"><figcaption></figcaption></figure>

## Restricting Ticket Creation

Have a noisy email alias? No problem. You can optionally block specific email senders via email or domain from creating tickets.

<figure><img src="/files/mfaj1PP0XaoG4trlSPN0" alt=""><figcaption><p>Add as many domains or email addresses as you wish to the Blocked Senders list</p></figcaption></figure>

## FAQ

#### Why didn't I receive a confirmation reply when my ticket was created?

If your are sending email from an address that matches a known Slack user you will be @mentioned in the ticket thread instead.

#### Can I use multiple email addresses?

Yes! You can set up multiple email integrations for different inboxes. Each email address must be unique and can only be used by one inbox.

#### What if I need to change my forwarding address?

You'll need to remove the existing integration and set up a new one with the new email address.

#### What happens if forwarding stops working?

If forwarding stops working, you'll need to check your email provider's settings and ensure forwarding is still enabled. You may need to re-verify or reconfigure forwarding in your email provider.


# Forwarding with Gmail

Follow these steps to connect Gmail to Wrangle.

## Setting Up Forwarding in Gmail

1. **Open Gmail Settings**
   * Sign in to your Gmail account
   * Click the **Settings** gear icon in the top right
   * Select **See all settings**
2. **Navigate to Forwarding Settings**
   * Click the **Forwarding and POP/IMAP** tab (or **Forwarding** tab in newer Gmail)
3. **Add Forwarding Address**
   * In the "Forwarding" section, click **Add a forwarding address**
   * Enter the Wrangle forwarding address (the one displayed in Step 3)
   * Click **Next**, then **Proceed**, then **OK**
   * A verification message will be sent to the forwarding address
4. **Verify Forwarding Address**
   * Check the email inbox for the Wrangle forwarding address
   * Click the verification link in the email from Gmail
   * Return to Gmail settings and refresh your browser
5. **Enable Forwarding**
   * In the "Forwarding" section, select **Forward a copy of incoming mail to**
   * Choose the Wrangle forwarding address from the dropdown
   * Select **Keep Gmail's copy in the Inbox** (recommended)
   * Click **Save Changes** at the bottom of the page
6. **Return to Wrangle**
   * Go back to the Wrangle setup page
   * Check the checkbox that says "Automatic email forwarding has been enabled"
   * Click **Proceed**

**Reference:** [Gmail Forwarding Help](https://support.google.com/mail/answer/10957?hl=en)

***

## Forwarding from a Google Group

You can also use Google Groups with Wrangle. To connect, follow the steps below.

<figure><img src="/files/LF09ymTHfpg8T0OwqQab" alt=""><figcaption><p>Example Wrangle Inbox connected to support@your-company.io</p></figcaption></figure>

For this example, we're setting up a Google Group with an alias of `support@your-company.io`.<br>

1. You will need Google Admin Access to proceed. If you are not an admin, send your admin these steps.
2. Navigate to [admin.google.com](https://admin.google.com/).
3. Go to `Apps` > `Google Workspace` > `Gmail`.
4. Open the `Routing` section, and find `Email forwarding using recipient address map` .
5. Click to `Add Rule`.
6. Add the following to your new rule:

   1. Address: `support@your-company.io`&#x20;
   2. Map to address: `ticketing@mail.wrangle.io`&#x20;
   3. Messages to affect: Select either one.
   4. Routing options: Check the `Also route to original destination`  box.&#x20;

   <figure><img src="/files/RtiEb6uRrfLsNxWE4neU" alt="Example routing rule"><figcaption><p>Example Routing Rule to Connect A Google Group to Wrangle</p></figcaption></figure>
7. Click Save.

That's it! You should now be able to send messages to your Google Group `support@your-company.io`

and see tickets created in your Wrangle inbox.<br>


# Forwarding with Outlook

Follow these steps to connect Microsoft Outlook to Wrangle.

## Setting Up Forwarding in Outlook

**For Outlook on the Web (Outlook.com or Microsoft 365)**

1. **Open Outlook Settings**
   * Sign in to Outlook on the web
   * Click the **Settings** gear icon at the top
   * Select **Mail** > **Forwarding**
2. **Enable Forwarding**
   * Toggle **Enable forwarding** to ON
   * Enter the Wrangle forwarding address (the one displayed in Step 3)
   * Select **Keep a copy of forwarded messages** (recommended)
   * Click **Save**
3. **Return to Wrangle**
   * Go back to the Wrangle setup page
   * Check the checkbox that says "Automatic email forwarding has been enabled"
   * Click **Proceed**

**For Classic Outlook Desktop App**

1. **Open Rules Manager**
   * In Outlook, click the **Home** tab
   * In the **More commands** section (three dots), select **Rules** > **Manage Rules & Alerts**
2. **Create New Rule**
   * Click **New Rule**
   * Under "Start from a blank rule," select **Apply rule on messages I receive**
   * Click **Next**
3. **Configure Rule Conditions**
   * Don't select any conditions (leave blank)
   * Click **Next**
   * When asked "This rule will be applied to every message you receive," click **Yes**
4. **Set Up Forwarding Action**
   * Under "What do you want to do with the message?"
   * Check **redirect it to people or public group**
   * Check **stop processing more rules**
   * Under "Step 2: Edit the rule description," click the **people or public group** link
   * Enter the Wrangle forwarding address
   * Click **OK**
5. **Finish Rule Setup**
   * Click **Finish**
   * Click **Apply**, then **OK**
6. **Return to Wrangle**
   * Go back to the Wrangle setup page
   * Check the checkbox that says "Automatic email forwarding has been enabled"
   * Click **Proceed**

**Reference:** [Outlook Forwarding Help](https://support.microsoft.com/en-us/office/turn-on-automatic-forwarding-in-outlook-7f2670a1-7fff-4475-8a3c-5822d63b0c8e)


# Jira Service Management

## JSM Integration Guide for Wrangle

Jira Service Management is a service desk platform designed to help teams manage requests, incidents, and changes. Wrangle’s JSM integration lets you link your Wrangle inboxes with JSM Service Desks to create a seamless experience for ticket handling across teams who may prefer to work in different platforms.

### What you can do with JSM and Wrangle

Once connected, Wrangle and JSM can sync tickets in both directions. When you link a Wrangle inbox to a JSM project, here’s what happens:

* **Create**: New tickets created in Wrangle will also appear in JSM.
* **Update**: Updates to tickets (e.g., name, description, comments) will sync between Wrangle and JSM.

<figure><img src="/files/wD9hs23f3NHgqLHBQl7f" alt=""><figcaption><p>Comments syncing back and forth between JSM and Slack using Wrangle</p></figcaption></figure>

### How to setup a Wrangle & JSM Integration

1. First, you will need to create a dedicated user in Atlassian for your Wrangle integration. Ask your IT admin to create a new user via <https://admin.atlassian.com> with the following details:
   1. Name: "Wrangle". **This is required.**
   2. Product Role:  Jira Service Management - User (agent).
   3. Avatar: Use this image to ensure request comments are posted clearly from Wrangle:

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

{% hint style="info" %}
The specific email address you use doesn't matter but it needs to be something you can access to confirm the account. We suggest something like <wrangle-jsm-bot@yourcompany.com>.
{% endhint %}

2. For each of the Service Desk projects you want to connect to Wrangle, ensure the **Wrangle** user you created in Step 1 [has Service Desk Team permissions](https://confluence.atlassian.com/servicemanagementserver/adding-service-project-agents-939926159.html) for each of the Service Desk projects you want to use with Wrangle.
3. Now head over to the [JSM Integrations page](https://slack.wrangle.io/integrations/jsm) in Wrangle. Click Login to JSM, and make sure you **Login as the user you just created in Step 1:**

<figure><img src="/files/rLGvT7ACdnj7PDUafnZh" alt="" width="375"><figcaption></figcaption></figure>

You will be redirected to JSM, and prompted to Authorize Wrangle. Authorizing Wrangle allows Wrangle to create and update tickets and ticket comments within your account. Scroll to the bottom and click "Accept" to continue:

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

3. You will be redirected back to Wrangle and now you should see your Wrangle account is connected to your JSM account:

   <figure><img src="/files/r3L15n6vjJwl4u8x5H0Q" alt="" width="375"><figcaption></figcaption></figure>
4. Now you're ready to link your Wrangle Inboxes to JSM Service Desks! Click "Add Inbox" and select the inbox and Service Desk you want to link. You'll also be asked to select a default JSM Request Type, which will be used when creating requests from Wrangle:

<figure><img src="/files/BWs81ZJvRPULPw3ffdXs" alt="" width="375"><figcaption><p>Connecting your Wrangle Inbox to a JSM Service Desk</p></figcaption></figure>

Now, you're ready to create linked tickets. Try creating a ticket in Wrangle in your linked inbox. You'll notice that in Slack and the Web's Ticket View there's a link to JSM:\ <br>

<div><figure><img src="/files/0jvF8KS57qRavE39MBl1" alt=""><figcaption><p>Link to JSM in Slack Ticket View</p></figcaption></figure> <figure><img src="/files/uH54Slz5B40bU2n7czg3" alt=""><figcaption><p>Link to JSM in Web Ticket View</p></figcaption></figure></div>

When your agents in JSM reply to tickets, you'll see your replies sent back to Slack and vice versa.

### Which values sync between Wrangle and JSM?

* **Ticket Name** - The Wrangle ticket name will automatically sync with the ticket name in JSM.
* **Ticket Description** - Wrangle's ticket description will sync with the ticket summary in JSM.
* **Ticket Tags** - Wrangle's [ticket tags](/tickets/setting-up-your-inbox/tags) will sync with labels in JSM.
* **Ticket Assignees** - Wrangle will sync ticket assignments to and from JSM. When you are configuring your inbox, make sure that you have:
  * Added all JSM agents [as agents](/tickets/setting-up-your-inbox/roles-and-permissions) in your linked Wrangle inbox.
  * Added all Wrangle agents to the relevant JSM project with a Service Desk Team role, as shown below:

<figure><img src="/files/35u8zVdQB2hdCl16U2RV" alt=""><figcaption><p>Select the Service Desk Team role for your Wrangle agents</p></figcaption></figure>

* **Ticket Statuses** - You may opt in to connecting your Wrangle statuses with JSM by linking specific statuses at the inbox level (Edit Wrangle Inbox > Integrations > JSM). Any statuses that are not explicitly linked will not trigger updates in either system.  [Read more about it here](/integrations/jira-service-management/status-mapping-with-jsm).

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


# Status mapping with JSM

Wrangle can keep ticket statuses in sync between Wrangle and Jira Service Management (JSM). When a status changes on either side, the corresponding status on the other side updates automatically — as long as a status link has been configured.

### Prerequisites

Before you can configure status mapping:

1. Your workspace must have the JSM integration connected (**Integrations** → **JSM**).
2. The inbox must be linked to a JSM service desk (**Inbox Settings** → **Integrations** → **JSM**).
3. Status sync must be enabled for the inbox:&#x20;

<figure><img src="/files/jiLy3fkLgKc45CEGET9e" alt="" width="563"><figcaption></figcaption></figure>

Once enabled, a **Ticket Statuses** section appears beneath the toggle where you can create and manage status links.

<figure><img src="/files/aRwa8DetVgx9agtVjig4" alt="" width="563"><figcaption></figcaption></figure>

### How sync works

**Wrangle → JSM**

When a ticket's status changes in Wrangle, Wrangle checks if there is a status link for the new status. If a link exists, Wrangle uses the JSM transitions API to move the JSM issue to the linked status.

**JSM → Wrangle**

When a ticket's status changes in JSM, Wrangle looks up whether any status link matches the new JSM status name (case-insensitive). If a match is found, Wrangle updates the ticket status to the linked Wrangle status.

If no link exists for a status change on either side, the change is not synced.

### Adding status links

A status link pairs one Wrangle status with one JSM status. When either side changes to a linked status, the other side updates to match.

<figure><img src="/files/fFjs9f6kMUzza0aj8N8z" alt="" width="375"><figcaption></figcaption></figure>

To add a link:

1. Click **Add Status Link**.
2. In the modal, select a **Wrangle status** from the dropdown. All visible Wrangle statuses are available except **New**.
3. Select a **JSM status** from the dropdown. The dropdown lists all statuses configured in your JSM project.
4. Click **Add Status Link** to save.

Each Wrangle status can only be linked to one JSM status.

Wrangle statuses that don't have a link are listed below the status links table as a reminder. Status changes involving unmapped statuses are not synced.

### Custom statuses

Status mapping works with both default Wrangle statuses (In Progress, On Hold, Resolved, Closed) and [custom statuses](/tickets/setting-up-your-inbox/ticket-lifecycle/ticket-statuses#custom-statuses) you've created for the inbox. Custom statuses appear in the Wrangle status dropdown alongside default statuses.

### JSM workflow constraints

JSM uses a [**workflow**](https://support.atlassian.com/jira-cloud-administration/docs/work-with-issue-workflows/) system based on **transitions** — you cannot set a JSM issue to an arbitrary status directly. The transition must be permitted by the JSM project's workflow from the issue's current state.

If Wrangle tries to sync a status change to JSM but no valid transition exists from the current JSM state to the target state, the sync will not complete on the JSM side. The ticket status in Wrangle will still update successfully.

**Example:** If your JSM workflow only allows issues to go from *In Progress* → *Resolved* (skipping *On Hold*), and you move a Wrangle ticket to *On Hold*, Wrangle will attempt the transition but JSM will reject it because *In Progress* → *On Hold* is not a valid transition in that workflow.

To avoid this, make sure the transitions in your JSM workflow align with the status links you configure in Wrangle.

{% hint style="info" %}
**New** status is not available for status links. You cannot link a JSM status to Wrangle's *New* status, and you cannot reset a JSM-linked ticket's status back to *New* in Wrangle.

**Closed** tickets: once a JSM-linked ticket is closed, you cannot change its status in Wrangle.
{% endhint %}


# Notion

Level up your inbox with your own knowledge base content.

Wrangle integrates directly with Notion to [answer common questions](/tickets/ai-powered-ticketing/ai-ticket-deflection) and [draft agent replies](/tickets/ai-powered-ticketing/ai-copilot) directly from your Knowledge Base.<br>

* [Setup](#setup)
* [Editing a Notion Integration](#editing-a-notion-integration)
* [FAQ](#faq)

<figure><img src="/files/T6ufLX10lA1iHQKcp26c" alt=""><figcaption><p>Using AI Ticket Deflection with Notion to answer common questions in Slack</p></figcaption></figure>

<figure><img src="/files/BptC6q793Rioo2LjSt4N" alt=""><figcaption><p>Using AI Copilot to draft agent replies from your Notion content.</p></figcaption></figure>

## Setup

1. To get started, visit <https://slack.wrangle.io/integrations/notion>.
2. Click the **Connect to Notion** button to continue. You will be redirected Notion to authorize Wrangle to connect to your Notion account:

   <figure><img src="/files/rWKyOUpKIpz1OrBXf2hN" alt="" width="246"><figcaption></figcaption></figure>
3. Click **Select pages** to continue.
4. Select the Teamspaces and/or Shared and Private pages you'd like to use with Wrangle and then click **Allow access**:

<figure><img src="/files/DEt7UaBp6G784K1RM938" alt=""><figcaption><p>In this example, we're granting access to the HR and IT Teamspaces</p></figcaption></figure>

When you Allow access to a Teamspace and/or Shared or Private page, Wrangle will automatically process updates to pages within this space. You can change your selected pages at anytime.

5. After clicking Allow access, you will be redirected back to Wrangle, and will see your Notion integration's setup page. Click the **Link Inbox** button shown below:

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

6. You will be prompted to select an inbox. In this example, we're going to link this Notion integration to the Ask IT inbox. You can connect Notion to as many inboxes as you'd like. Select your inbox and click the **Link Inbox** button to confirm:

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

7. Now your Notion integration is connected to your Ask IT inbox! To see it in action, try enabling [AI Ticket Deflection](/tickets/ai-powered-ticketing/ai-ticket-deflection) and/or [AI Copilot](/tickets/ai-powered-ticketing/ai-copilot)for your inbox. Both of these AI powered features will now make use of your Notion content.

<figure><img src="/files/tmn1et0vtSj8IO0wgNnk" alt="" width="375"><figcaption></figcaption></figure>

You may optionally edit the integration name to make it easier for your teammates to find.

<figure><img src="/files/s9YAwOi3et8dz3WVUeeH" alt=""><figcaption><p>We're going to call this IT and HR to match the Notion Teamspaces selected.</p></figcaption></figure>

The Notion integration is part of the Scale plan. **Contact us** at <sales@wrangle.io>, or reach out to us over live chat [here](https://slack.wrangle.io/support) to discuss adding it to your Wrangle account.

## Editing a Notion Integration

You can make changes to the name of your integration, as well as update the content that is used within an integration.\
\
To update the selected Teamspaces for an existing integration, you will need to reconnect to Notion following these steps:

1. Click the **Connect to Notion** button

<figure><img src="/files/8OfZHgivC0CGHe9kvNAi" alt=""><figcaption></figcaption></figure>

2. When the modal window opens, continue by clicking **Connect to Notion**.

<figure><img src="/files/l6KqxuDF5py8qGYnHwEu" alt="" width="376"><figcaption><p>You will see this when you try to re-connect to Notion</p></figcaption></figure>

3. Select the Teamspaces and/or Shared and Private pages you'd like to use with Wrangle and then click **Allow access.** You will see previously added pages already selected. If you de-select them, their content will be removed from Wrangle.

<figure><img src="/files/lxJu5nuFTbGSoWs4z5Um" alt=""><figcaption><p>Adding to our existing integration created above by including the "Engineering" Teamspace</p></figcaption></figure>

3. Once you click Allow Access, you will be redirected to Wrangle. You will see your newly changed page selections reflected in Wrangle.

## FAQ

**How do I update my Notion content in Wrangle?**

* Wrangle will automatically process updates to pages within Teamspaces that are already shared with Wrangle. Specifically, Wrangle will process:
  * Pages that are **added**: content will be added to Wrangle.
  * Pages that are **removed**: content will be removed from Wrangle.
  * Pages that are **edited**: content will be updated in Wrangle.

**Can Wrangle follow links to other Notion pages?**

* No. Wrangle will not follow links within your existing Notion pages; we will only process the pages nested within those you have already authorized Wrangle to access.

**Who can see the content that I have added to Wrangle?**

* Wrangle will display the names of the Notion Teamspaces and page titles that have been added to your account within the Wrangle web app. These page titles and Teamspace names are visible to users within your organization using the Wrangle web app.
* When a ticket deflection message is posted (either via DM for private ticketing or in a channel), the requester will see the summarized contents from your Notion page.

**Can I create more than one Notion integration?**

* No. This is a Notion limitation. You may choose to either:
  * Ask multiple users within your company to create unique integrations. For example your IT admin might connect your IT inbox to Notion, while your HR admin would connect your HR inbox to the HR Notion Teamspace.
  * Use a single integration that connects to multiple Teamspaces across multiple inboxes. One Wrangle user can connect to both the IT and HR Notion Teamspaces; Wrangle's AI will take care of finding the right content for your users' requests.


# Slack Workflow Builder

Wrangle integrates directly into Slack's [Workflow Builder](https://slack.com/help/articles/360035692513-Guide-to-Slack-Workflow-Builder) using [connectors for Workflow Builder](https://slack.com/help/articles/20155812595219-Slack-connectors-for-Workflow-Builder). You can use these connectors to integrate Wrangle directly into your own Slack Workflows for both Wrangle Ticketing and Wrangle Workflows.

* [#getting-started](#getting-started "mention")
* [#using-slack-workflow-builder-for-wrangle-ticketing](#using-slack-workflow-builder-for-wrangle-ticketing "mention")
* [#using-slack-workflow-builder-with-wrangle-workflows](#using-slack-workflow-builder-with-wrangle-workflows "mention")
* [#featuring-a-slack-workflow-in-a-channel](#featuring-a-slack-workflow-in-a-channel "mention")

<br>

## Getting Started

Configuring Wrangle's Slack Workflow Builder Steps for the first time requires a **Slack Admin**. This is a one-time process; once it's been done for your workspace you won't need to do it again.

Ask your Slack Admin to follow these steps:\
\
&#x20; 1\.   First you'll need your Wrangle API Token. A Wrangle account admin can access this via <https://slack.wrangle.io/integrations/api>.

2. Now navigate to Slack's `Workflow steps, triggers and integrations` page via the Slack Workspace Admin web interface: \
   \
   Account > Configure Apps > Workflow steps, triggers and integrations.

{% hint style="info" %}
You can access this page directly by visiting: \
\
**<https://app.slack.com/apps-manage/YOUR\\_WORKSPACE\\_ID/integrations/workflow-steps>**
{% endhint %}

3. Click the "Integrations" tab and then "Add integration"

   <figure><img src="/files/xyaPpChkTsUSKoNel8Wm" alt="" width="375"><figcaption></figcaption></figure>
4. Find Wrangle, and click OK.
5. You'll be prompted for your Wrangle API Token. Enter the token from step 1 and click Save.&#x20;

<figure><img src="/files/VsICuHHXSdv0nqT5mQZy" alt="" width="375"><figcaption></figcaption></figure>

That's it! You're ready to start using Wrangle with Slack's Workflow builder.

## Using Slack Workflow Builder for Wrangle Ticketing

You can connect your Wrangle inboxes to Slack's workflow builder to support a wide range of custom integrations. Some common examples include:

* Capturing Wrangle ticketing data to send into a third party system like Salesforce, GitHub, or Airtable.
* Capturing Wrangle ticketing data to send to a spreadsheet for custom reporting.

We'll walk through setup for a Slack Workflow that will eventually include the following steps:

1. Collect info in a form
2. Create ticket in Wrangle
3. Add to Google Sheet

<figure><img src="/files/BC5OGbXalxIGKZsdKYt3" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="info" %}
You'll need to use a Slack Form Step to work with Wrangle in Slack Workflow builder. See step 2 below.
{% endhint %}

### 1. First, choose how you want to Start the workflow

In this example, we'll start from a link, but you can choose from a variety of other options as well.

<figure><img src="/files/s5IuMKjSPdpdlyCrTCEy" alt="" width="375"><figcaption></figcaption></figure>

### 2. Next, Add a form step

Click "Add steps" and select from Slack Workflow Builder's native "Forms" step.

<figure><img src="/files/oyYKZ7eLk7LsRmhUjaa8" alt="" width="375"><figcaption></figcaption></figure>

### 3. Configure your form step

You'll want to add at least one required field for your Ticket Name. You may add an optional field for a Ticket Description. If you have any [form fields configured for your inbox](/tickets/setting-up-your-inbox/forms) you'll want to add those here as well.

In this example, we have one required Wrangle form field called "Employee ID" in Wrangle. It's a number field, so we've created a number form field in Slack's Workflow Builder.

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

### 4. Add the Wrangle "Create Ticket" step

Now that you have your form step added, add Wrangle's "Create ticket" step:

<figure><img src="/files/Xhf7mtgeBnaNJaR369iL" alt="" width="375"><figcaption></figcaption></figure>

### 5. Configure the Create ticket step

You're going to map your previous form values from the Slack form step to create a ticket in Wrangle.<br>

1. First choose your Wrangle inbox and click Next.
2. Select **Requester** -> **person who submitted the form**
3. Now we're going to map the fields from the Slack form step to your Wrangle inbox using Slack Workflow Builder variables. To insert a variable in Slack Workflow builder, click the blue `{}` next to each form field. In this example, we'll map them as follows:
   1. **Name** -> **Answer to Ticket Name**
   2. **Description** -> **Answer to Ticket Description**
   3. **Employee Id** -> **Answer to Employee ID**

<figure><img src="/files/Nd0TTGDwDAfBKJ5FKSop" alt=""><figcaption><p>Example of mapping form fields from the previous step to Wrangle's "Create ticket" step</p></figcaption></figure>

### 6. Add a step to send your ticket data to Google Sheets

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

### 7. Now you're ready to publish your workflow!

Click the button at the top right that says "Finish Up" and follow the instructions to publish.

<figure><img src="/files/EH9MG1ShC1zNQhXDMo2L" alt="" width="254"><figcaption></figcaption></figure>

## Using Slack Workflow Builder with Wrangle Workflows

You can connect your Wrangle Workflows to Slack's workflow builder to support a wide range of custom integrations.\
\
We're going to walk through an example of how to connect a Wrangle workflow using Slack's Workflow builder to Google Sheets. The end workflow in Slack's Workflow builder will look like this:

<figure><img src="/files/kQBB70xdGuAJqKEUV6e5" alt="" width="375"><figcaption><p>An example of a Form -> Wrangle Workflow -> Google Sheets</p></figcaption></figure>

### 1. First, choose how you want to Start the workflow <a href="#id-1.-first-choose-how-you-want-to-start-the-workflow" id="id-1.-first-choose-how-you-want-to-start-the-workflow"></a>

<figure><img src="/files/ejeZXNoZVQdkyEQLbIxK" alt=""><figcaption><p>In this example, we're starting the workflow from a link in Slack</p></figcaption></figure>

### 2. Next, add a Form step

Click "Add steps" and select from Slack Workflow Builder's native "Forms" step.

<figure><img src="/files/oyYKZ7eLk7LsRmhUjaa8" alt="" width="375"><figcaption></figcaption></figure>

### 3. Now we'll configure the Form step

We'll match your intake form. In this example, the intake form has three fields. We'll create each of them within Slack's Workflow Builder. Make sure to select the correct kind of form field, for example a Date field for the Start Date, and so on.

<figure><img src="/files/5v1hvLKWW82EEDKZxFzY" alt=""><figcaption><p>Add a new form field to Slack's Workflow Builder for each form field in your Wrangle Intake Form</p></figcaption></figure>

<figure><img src="/files/kTUzFm1Lew2IYp5JUSfH" alt=""><figcaption><p>Wrangle List options -> Slack Dropdown options</p></figcaption></figure>

### 4. Add the Wrangle "Start workflow" step

<figure><img src="/files/Q91sGY9kXAi89XQ6maRz" alt="" width="375"><figcaption></figcaption></figure>

### 5. Configure the Wrangle "Start workflow" step

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

### 6. Add a step to send your workflow data to Google Sheets

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

### 7. Now you're ready to publish your workflow!

Click the button at the top right that says "Finish Up" and follow the instructions to publish.

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

## Featuring a Slack Workflow in a channel

<figure><img src="/files/kpYtmS1W5AuudoMHRSRQ" alt="" width="242"><figcaption></figcaption></figure>

You can setup Slack Workflows to be featured for specific channels. This is commonly used with Wrangle to make it really easy for your users to understand how to get help in a specific channel.

To feature a workflow, navigate to the workflows tab in the Slack channel where you want to feature the workflow. Pick which workflow you'd like to feature. In this example, you can see our newly created workflow is now featured for the channel, so users can simply click the button to create a ticket (and in this example send the ticket data to Google Sheets).

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

You can also pin links to Wrangle workflows or tickets in Canvases in Slack. To do so, simply go to the canvas where you want to add the workflow and paste in the link to the workflow. A card will appear in your canvas that users can use to quickly start workflows.


# Slack Workflow Builder (v1)

{% hint style="warning" %}
This integration is only compatible with the legacy version of Slack Workflow Builder (SWB). Starting in August 2023, Slack will begin migrating existing SWB workflows to [their new version](https://slack.com/help/articles/16787711643411-Migrating-legacy-workflows-to-the-new-version-of-Workflow-Builder).
{% endhint %}

Wrangle has its own no-code [Workflow Designer](/workflows/designing-a-workflow) that you can use to build workflows in Slack. We also integrate natively with Slack's Workflow Builder for more advanced use cases like launching a workflow on a recurring basis or via webhook.

## Slack Workflow Builder versus Wrangle's Workflow Designer

There are a number of differences between designing a workflow using Wrangle's Designer or Slack's Workflow Builder. Both offer a no-code designer that you can use to automate business processes in Slack. But there are some important distinctions between how Wrangle works on its own vs. how Wrangle works in tandem with SWB.

* SWB workflows start with their own intake forms and require that you insert variables to bring form data into future steps in the workflow.&#x20;
* SWB forms don't support date and number question types, but Wrangle's forms do.
* SWB workflows can be launched via webhook, intake form, or on a recurring basis, whereas standalone Wrangle workflows are launched on-demand by typing "/wrangle" in Slack. With Wrangle's SWB step, you can use SWB to launch a Wrangle workflow via a webhook or on a recurring schedule.

![Launch a Wrangle workflow using the "Shortcut," "Scheduled date & time," or "Webhook" options.](/files/h8TpX3qeW7KgQU4xPOmp)

## Add a Wrangle Workflow to your Slack Workflow

Wrangle integrates with Slack Workflow Builder by adding a "Start a Wrangle Workflow" step you can use in your workflow design.

You can launch a Wrangle workflow in one of three ways:

* [Launch on a recurring schedule](#launch-a-recurring-workflow)
* [Launch via a webhook request](#launch-via-webhook)
* [Launch via a Slack form](#launch-via-slack-shortcut)

{% hint style="warning" %}
In Slack Workflow Builder, you'll also see Wrangle step types called "Start an Approval" and "Start Tasks." These are legacy step types and are **not** recommended for new workflows because they are not as capable as using a full Wrangle workflow, and we will be removing them soon.
{% endhint %}

{% hint style="warning" %}
If your Wrangle workflow has an "Upload files" question in the intake form, you will not be able to use that workflow with Slack Workflow Builder.
{% endhint %}

### Launch a recurring workflow

If you have a workflow that needs to run on a recurring basis, like annual performance reviews, quarterly security audits, daily opening and closing procedures, etc., you can use SWB's "Scheduled date & time" option to run your Wrangle workflow on that timeline.\
\
Here's how a recurring SWB workflow using Wrangle might look:&#x20;

![Slack Workflow Builder - "Scheduled date & time" step and "Start a Wrangle Workflow" step](/files/YgW4EqZAY8dPGZ1Fn9ey)

Choose your schedule and frequency, then in the Wrangle step, insert "Time when workflow started" as a variable into your form question.

{% hint style="info" %}
We recommend only having one question in your [intake form](/workflows/designing-a-workflow#designing-your-intake-form) for recurring SWB workflows and calling it "Date," "Timestamp," or similar. SWB will not be able to programmatically fill out any other intake form questions. Any other form questions will either need to be skipped or filled out with a hardcoded value that never changes.
{% endhint %}

!["Date" is our only Wrangle form question, and we can populate it with SWB's timestamp each time the workflow launches.](/files/d5GutVDP2fBmIYtIa9G0)

Now whenever our recurring workflow launches, the timestamp will be included in its name so we distinguish between each instance.&#x20;

### Launch via webhook

If you'd like to launch a Wrangle workflow programmatically, like launching a sales quote approval after a deal changes stages in your CRM, you can use SWB's webhook functionality to trigger it.

{% hint style="info" %}
Webhooks are an advanced feature. Check out [Slack's help documentation](https://slack.com/help/articles/360041352714-Create-more-advanced-workflows-using-webhooks) for more information.
{% endhint %}

Here's how your workflow might look in SWB:&#x20;

![Slack Workflow Builder - "Webhook" step and "Start a Wrangle Workflow" step](/files/0OkCA2sPwozhXRbNFMzn)

In the webhook configuration step, you can use data that comes in with your web request as variables to populate your Wrangle intake form.

![Create your variables.](/files/xzGFlMP97bjy85AQx7QK) ![Add your variables to your Wrangle form in the "Start a Wrangle Workflow" step](/files/RjsU8ICsfo12y6ShWxbd)

### Launch via Slack shortcut

All standalone Wrangle workflows start with an intake form, but if you are launching your Wrangle workflow from an SWB shortcut, you will also need to include a Slack form step before your "Start a Wrangle Workflow" step.&#x20;

Let's say we have a blog post publishing workflow in Wrangle with the following intake form:

![Wrangle intake form questions](/files/i3lQ4BP7aAJQcFkD1XZB)

In Slack Workflow Builder, we'll need to replicate those same questions using the "Open a form" step:

![Slack Workflow Builder - "Open a form" step and "Start a Wrangle Workflow" step](/files/jXCtoBtmt753NItWQmYd)

Then, you can use variables in Slack Workflow Builder to connect the Slack form inputs to your Wrangle intake form:

![Insert variables to populate your Wrangle intake form with the values from the Slack form.](/files/zxFaGCqdCEnF9dHsjYGn)

In practice, this means that your requesters would fill out the Slack form, and in turn Slack would send those values to Wrangle as if your requesters had filled out a Wrangle intake form. From there, your workflow will kick off just like [any other Wrangle workflow](/workflows/using-a-workflow), letting your assignees see the intake form data for context.<br>


# Wrangle API

Use the Wrangle API to programmatically manage your tickets and workflows.

Once API access has been enabled for your account, you're ready to start building. Visit the [API & Integrations page](https://slack.wrangle.io/integrations) to find your API token, slackUserId, and slackWorkspaceId.

\
Use your API token, slackUserId and slackWorkspaceId to authenticate with the API. All available methods and required parameters available below:

{% content-ref url="/pages/e886d353d16f9043d66bce142d1fb14f4db89f27" %}
[Wrangle API Documentation](/integrations/wrangle-api/wrangle-api-documentation)
{% endcontent-ref %}

{% content-ref url="/pages/b594909030a034ced1f1591c8870017f7465c312" %}
[Models](/integrations/wrangle-api/models)
{% endcontent-ref %}

\
You may also view and download the [Open API Spec for the Wrangle API](https://openapi.gitbook.com/o/-M8MmFUGgCRyc732IQmK/spec/wrangle-api.json).

***

{% hint style="info" %}
The Wrangle API is a paid feature. Contact us at <sales@wrangle.io> for help enabling it on your account.
{% endhint %}


# Wrangle API Documentation

## GET /inboxes

> Get Inboxes

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"servers":[{"url":"https://slack.wrangle.io/api/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Response_GetInboxes":{"type":"object","required":["success","inboxes"],"properties":{"success":{"type":"string","enum":["true"]},"inboxes":{"type":"array","items":{"$ref":"#/components/schemas/Inbox"}}}},"Inbox":{"type":"object","properties":{"createdAt":{"type":"string"},"creatorId":{"type":"string"},"id":{"type":"string","format":"uuid"},"formFields":{"$ref":"#/components/schemas/FormFields"},"name":{"type":"string"},"description":{"type":"string"},"defaultUserRole":{"type":"string","enum":["REQUESTER","NO_ACCESS","OBSERVER"]},"status":{"type":"string","enum":["ACTIVE","ARCHIVED"]},"tags":{"type":"array","items":{"type":"string"}},"userRoles":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["NO_ACCESS","REQUESTER","OBSERVER","AGENT","ADMIN"]},"userId":{"type":"string"}}}},"updatedAt":{"type":"string"}}},"FormFields":{"type":"object","required":["fieldId","fieldLabel","isRequired","fieldType"],"properties":{"fieldId":{"type":"string"},"fieldLabel":{"type":"string"},"isRequired":{"type":"boolean"},"fieldType":{"type":"string","enum":["Date Picker","File Input","List Input","Multiline","Multiple List Inputs","Multiple Slack Users","Number","Plain Text Input","Slack Channel","Slack User"]},"fieldOptions":{"type":"array","description":"For List Inputs, these are the options available to the user.","items":{"type":"string"}}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"formFieldErrors":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldError"}}}},"FormFieldError":{"type":"object","required":["fieldId","error"],"properties":{"fieldId":{"type":"string"},"message":{"type":"string"},"fieldName":{"type":"string"},"type":{"type":"string"}}}}},"paths":{"/inboxes":{"get":{"summary":"Get Inboxes","operationId":"getInboxes","responses":{"200":{"description":"Get Inboxes Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_GetInboxes"}}}},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get Inbox

> Get an inbox by id.

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"servers":[{"url":"https://slack.wrangle.io/api/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Response_GetInbox":{"type":"object","required":["success","inbox"],"properties":{"success":{"type":"string","enum":["true"]},"inbox":{"$ref":"#/components/schemas/Inbox"}}},"Inbox":{"type":"object","properties":{"createdAt":{"type":"string"},"creatorId":{"type":"string"},"id":{"type":"string","format":"uuid"},"formFields":{"$ref":"#/components/schemas/FormFields"},"name":{"type":"string"},"description":{"type":"string"},"defaultUserRole":{"type":"string","enum":["REQUESTER","NO_ACCESS","OBSERVER"]},"status":{"type":"string","enum":["ACTIVE","ARCHIVED"]},"tags":{"type":"array","items":{"type":"string"}},"userRoles":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["NO_ACCESS","REQUESTER","OBSERVER","AGENT","ADMIN"]},"userId":{"type":"string"}}}},"updatedAt":{"type":"string"}}},"FormFields":{"type":"object","required":["fieldId","fieldLabel","isRequired","fieldType"],"properties":{"fieldId":{"type":"string"},"fieldLabel":{"type":"string"},"isRequired":{"type":"boolean"},"fieldType":{"type":"string","enum":["Date Picker","File Input","List Input","Multiline","Multiple List Inputs","Multiple Slack Users","Number","Plain Text Input","Slack Channel","Slack User"]},"fieldOptions":{"type":"array","description":"For List Inputs, these are the options available to the user.","items":{"type":"string"}}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"formFieldErrors":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldError"}}}},"FormFieldError":{"type":"object","required":["fieldId","error"],"properties":{"fieldId":{"type":"string"},"message":{"type":"string"},"fieldName":{"type":"string"},"type":{"type":"string"}}}}},"paths":{"/inboxes/{inboxId}":{"get":{"summary":"Get Inbox","operationId":"getInbox","description":"Get an inbox by id.","responses":{"200":{"description":"Get Inbox","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_GetInbox"}}}},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Update Inbox

> Update an inbox.

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"servers":[{"url":"https://slack.wrangle.io/api/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Request_UpdateInbox":{"type":"object","description":"Update an inbox.","properties":{"userRoles":{"description":"Allows updating the list of users with the No Access, Observer, and Requester roles for this inbox. Admin and Agent user roles need to be managed via the Wrangle web app.","type":"object","properties":{"NO_ACCESS":{"description":"Slack user IDs to assign the No Access role for this inbox. This will replace all users with the No Access role that exist already.","type":"array","items":{"type":"string"}},"REQUESTER":{"description":"Slack user IDs to assign the Requester role for this inbox. This will replace all users with the Requester role that exist already.","type":"array","items":{"type":"string"}},"OBSERVER":{"description":"Slack user IDs to assign the Observer role for this inbox. This will replace all users with the Observer role that exist already.","type":"array","items":{"type":"string"}}}}}},"Response_PutInbox":{"type":"object","required":["success","inbox"],"properties":{"success":{"type":"string","enum":["true"]},"inbox":{"$ref":"#/components/schemas/Inbox"}}},"Inbox":{"type":"object","properties":{"createdAt":{"type":"string"},"creatorId":{"type":"string"},"id":{"type":"string","format":"uuid"},"formFields":{"$ref":"#/components/schemas/FormFields"},"name":{"type":"string"},"description":{"type":"string"},"defaultUserRole":{"type":"string","enum":["REQUESTER","NO_ACCESS","OBSERVER"]},"status":{"type":"string","enum":["ACTIVE","ARCHIVED"]},"tags":{"type":"array","items":{"type":"string"}},"userRoles":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["NO_ACCESS","REQUESTER","OBSERVER","AGENT","ADMIN"]},"userId":{"type":"string"}}}},"updatedAt":{"type":"string"}}},"FormFields":{"type":"object","required":["fieldId","fieldLabel","isRequired","fieldType"],"properties":{"fieldId":{"type":"string"},"fieldLabel":{"type":"string"},"isRequired":{"type":"boolean"},"fieldType":{"type":"string","enum":["Date Picker","File Input","List Input","Multiline","Multiple List Inputs","Multiple Slack Users","Number","Plain Text Input","Slack Channel","Slack User"]},"fieldOptions":{"type":"array","description":"For List Inputs, these are the options available to the user.","items":{"type":"string"}}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"formFieldErrors":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldError"}}}},"FormFieldError":{"type":"object","required":["fieldId","error"],"properties":{"fieldId":{"type":"string"},"message":{"type":"string"},"fieldName":{"type":"string"},"type":{"type":"string"}}}}},"paths":{"/inboxes/{inboxId}":{"put":{"summary":"Update Inbox","operationId":"updateInbox","description":"Update an inbox.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request_UpdateInbox"}}},"required":true},"responses":{"200":{"description":"Update Inbox","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_PutInbox"}}}},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get Tickets

> Get tickets for an inbox. Query parameters are documented as an object in the Request\_GetTickets schema.

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"servers":[{"url":"https://slack.wrangle.io/api/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Response_GetTickets":{"type":"object","required":["success","tickets","pagination"],"properties":{"success":{"type":"string","enum":["true"]},"tickets":{"type":"array","items":{"$ref":"#/components/schemas/LimitedTicket"}},"pagination":{"type":"object","required":["page","pageSize","totalCount","totalPages"],"properties":{"page":{"type":"integer","description":"Current page number"},"pageSize":{"type":"integer","description":"Number of items per page"},"totalCount":{"type":"integer","description":"Total number of items available"},"totalPages":{"type":"integer","description":"Total number of pages"}}}}},"LimitedTicket":{"type":"object","required":["id","name","status"],"properties":{"assigneeId":{"type":"string","nullable":true,"description":"The Slack user ID of the ticket assignee. They must be an agent for this ticket's inbox."},"createdAt":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"requesterId":{"type":"string"},"status":{"type":"string","enum":["CLOSED","IN_PROGRESS","NEW","ON_HOLD","RESOLVED"]},"updatedAt":{"type":"string"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"formFieldErrors":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldError"}}}},"FormFieldError":{"type":"object","required":["fieldId","error"],"properties":{"fieldId":{"type":"string"},"message":{"type":"string"},"fieldName":{"type":"string"},"type":{"type":"string"}}}}},"paths":{"/inboxes/{inboxId}/tickets":{"get":{"summary":"Get Tickets","operationId":"getTickets","description":"Get tickets for an inbox. Query parameters are documented as an object in the Request_GetTickets schema.","responses":{"200":{"description":"Get Tickets","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_GetTickets"}}}},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /tickets

> Create Ticket

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"servers":[{"url":"https://slack.wrangle.io/api/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Request_CreateTicket":{"type":"object","required":["name","inboxId","requesterId"],"properties":{"description":{"type":"string"},"formFieldValues":{"type":"array","items":{"$ref":"#/components/schemas/TicketFormFieldValues"}},"inboxId":{"type":"string"},"name":{"type":"string","description":"The name of the ticket."},"requesterId":{"type":"string","description":"The Slack user ID of the ticket requester. Can be different than the creatorId, for example when an agent creates a ticket on behalf of another user."},"priority":{"type":"string","enum":["CRITICAL","HIGH","NORMAL","LOW"]},"tags":{"type":"array","items":{"type":"string"}}}},"TicketFormFieldValues":{"type":"object","required":["fieldId"],"properties":{"fieldId":{"type":"string"},"value":{"oneOf":[{"type":"string","description":"For date form fields, use the YYYY-MM-DD format."},{"type":"number"},{"type":"array","items":{"type":"string"}}]}}},"Response_CreateTicket":{"type":"object","required":["success","ticket"],"properties":{"success":{"type":"string","enum":["true"]},"ticket":{"$ref":"#/components/schemas/Ticket"}}},"Ticket":{"allOf":[{"$ref":"#/components/schemas/Request_CreateTicket"},{"type":"object","required":["id","status"],"properties":{"assigneeId":{"type":"string","nullable":true,"description":"The Slack user ID of the ticket assignee. They must be an agent for this ticket's inbox."},"createdAt":{"type":"string"},"creatorId":{"type":"string"},"csatScore":{"type":"string","description":"The customer satisfaction score for the ticket if one exists.","enum":["1","2","3","4","5"]},"csatReason":{"type":"string","description":"The reason for the customer satisfaction score if one exists."},"description":{"type":"string"},"id":{"type":"string","format":"uuid"},"requesterId":{"type":"string"},"slackMessageChannel":{"type":"string"},"slackMessageTs":{"type":"string"},"slackOriginalMessage":{"type":"object","description":"If the ticket was created from a Slack message, this will contain the original message details.","nullable":true,"properties":{"channel":{"type":"string"},"ts":{"type":"string"},"parentMessageTs":{"type":"string","nullable":true},"permalinkUrl":{"type":"string","description":"Link to the original message that created the ticket in Slack."}}},"slackParentMessageTs":{"type":"string"},"slackPermalinkUrl":{"type":"string","description":"Link to the ticket in Slack."},"status":{"type":"string","enum":["CLOSED","IN_PROGRESS","NEW","ON_HOLD","RESOLVED"]},"workspaceId":{"type":"string"},"workspaceTicketNumber":{"type":"number"}}}]},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"formFieldErrors":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldError"}}}},"FormFieldError":{"type":"object","required":["fieldId","error"],"properties":{"fieldId":{"type":"string"},"message":{"type":"string"},"fieldName":{"type":"string"},"type":{"type":"string"}}}}},"paths":{"/tickets":{"post":{"summary":"Create Ticket","operationId":"createTicket","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request_CreateTicket"}}},"required":true},"responses":{"200":{"description":"Create Ticket Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_CreateTicket"}}}},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## GET /tickets/{ticketId}

> Get Ticket

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"servers":[{"url":"https://slack.wrangle.io/api/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Response_GetTicket":{"allOf":[{"$ref":"#/components/schemas/Ticket"},{"type":"object","properties":{"replies":{"type":"array","description":"Present only when includeReplies=true.","items":{"$ref":"#/components/schemas/Reply"}}}}]},"Ticket":{"allOf":[{"$ref":"#/components/schemas/Request_CreateTicket"},{"type":"object","required":["id","status"],"properties":{"assigneeId":{"type":"string","nullable":true,"description":"The Slack user ID of the ticket assignee. They must be an agent for this ticket's inbox."},"createdAt":{"type":"string"},"creatorId":{"type":"string"},"csatScore":{"type":"string","description":"The customer satisfaction score for the ticket if one exists.","enum":["1","2","3","4","5"]},"csatReason":{"type":"string","description":"The reason for the customer satisfaction score if one exists."},"description":{"type":"string"},"id":{"type":"string","format":"uuid"},"requesterId":{"type":"string"},"slackMessageChannel":{"type":"string"},"slackMessageTs":{"type":"string"},"slackOriginalMessage":{"type":"object","description":"If the ticket was created from a Slack message, this will contain the original message details.","nullable":true,"properties":{"channel":{"type":"string"},"ts":{"type":"string"},"parentMessageTs":{"type":"string","nullable":true},"permalinkUrl":{"type":"string","description":"Link to the original message that created the ticket in Slack."}}},"slackParentMessageTs":{"type":"string"},"slackPermalinkUrl":{"type":"string","description":"Link to the ticket in Slack."},"status":{"type":"string","enum":["CLOSED","IN_PROGRESS","NEW","ON_HOLD","RESOLVED"]},"workspaceId":{"type":"string"},"workspaceTicketNumber":{"type":"number"}}}]},"Request_CreateTicket":{"type":"object","required":["name","inboxId","requesterId"],"properties":{"description":{"type":"string"},"formFieldValues":{"type":"array","items":{"$ref":"#/components/schemas/TicketFormFieldValues"}},"inboxId":{"type":"string"},"name":{"type":"string","description":"The name of the ticket."},"requesterId":{"type":"string","description":"The Slack user ID of the ticket requester. Can be different than the creatorId, for example when an agent creates a ticket on behalf of another user."},"priority":{"type":"string","enum":["CRITICAL","HIGH","NORMAL","LOW"]},"tags":{"type":"array","items":{"type":"string"}}}},"TicketFormFieldValues":{"type":"object","required":["fieldId"],"properties":{"fieldId":{"type":"string"},"value":{"oneOf":[{"type":"string","description":"For date form fields, use the YYYY-MM-DD format."},{"type":"number"},{"type":"array","items":{"type":"string"}}]}}},"Reply":{"type":"object","required":["authorSlackUserId","authorSlackWorkspaceId","channelId","isPrivate","markdownText","slackTs"],"properties":{"authorSlackUserId":{"type":"string","description":"The Slack user ID the reply is attributed to."},"authorSlackWorkspaceId":{"type":"string","description":"The Slack workspace ID of the reply author."},"channelId":{"type":"string","description":"The Slack channel ID the reply was posted to."},"createdAt":{"type":"string"},"isPrivate":{"type":"boolean","description":"Whether the reply is private (visible only to agents/observers)."},"markdownText":{"type":"string"},"slackParentTs":{"type":"string","nullable":true,"description":"The Slack timestamp of the thread parent, if this is a threaded reply."},"slackTs":{"type":"string","description":"The Slack message timestamp of the reply."},"updatedAt":{"type":"string"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"formFieldErrors":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldError"}}}},"FormFieldError":{"type":"object","required":["fieldId","error"],"properties":{"fieldId":{"type":"string"},"message":{"type":"string"},"fieldName":{"type":"string"},"type":{"type":"string"}}}}},"paths":{"/tickets/{ticketId}":{"get":{"summary":"Get Ticket","operationId":"getTicket","responses":{"200":{"description":"Get Ticket Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_GetTicket"}}}},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"includeReplies","in":"query","required":false,"schema":{"type":"boolean"},"description":"When 'true', include the ticket's replies in the response."}]}}}}
```

## PUT /tickets/{ticketId}

> Update Ticket

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"servers":[{"url":"https://slack.wrangle.io/api/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Request_UpdateTicket":{"type":"object","properties":{"assigneeId":{"type":"string","nullable":true,"description":"The Slack user ID of the ticket assignee. They must be an agent for this ticket's inbox. To unassign a ticket, set this to null. If a ticket is assigned, it's status will automatically be set to IN_PROGRESS. If a ticket is unassigned, it's status will automatically be set to NEW."},"csatScore":{"type":"string","description":"The customer satisfaction score for the ticket. Must be a value between 1 and 5. Satisfaction surveys must be enabled for the ticket's inbox.","enum":["1","2","3","4","5"]},"description":{"type":"string"},"followers":{"type":"array","items":{"$ref":"#/components/schemas/Followers"}},"formFieldValues":{"type":"array","items":{"$ref":"#/components/schemas/TicketFormFieldValues"}},"inboxId":{"type":"string","description":"Move this ticket to a new inbox. Will clear the assignee, status, tags, and other inbox-specific settings."},"name":{"type":"string"},"priority":{"type":"string","enum":["CRITICAL","HIGH","NORMAL","LOW"]},"status":{"type":"string","enum":["CLOSED","IN_PROGRESS","NEW","ON_HOLD","RESOLVED"]},"tags":{"type":"array","items":{"type":"string"}}}},"Followers":{"type":"object","required":["userId"],"properties":{"userId":{"type":"string"}}},"TicketFormFieldValues":{"type":"object","required":["fieldId"],"properties":{"fieldId":{"type":"string"},"value":{"oneOf":[{"type":"string","description":"For date form fields, use the YYYY-MM-DD format."},{"type":"number"},{"type":"array","items":{"type":"string"}}]}}},"Response_UpdateTicket":{"type":"object","required":["success","ticket"],"properties":{"success":{"type":"string","enum":["true"]},"ticket":{"$ref":"#/components/schemas/Ticket"}}},"Ticket":{"allOf":[{"$ref":"#/components/schemas/Request_CreateTicket"},{"type":"object","required":["id","status"],"properties":{"assigneeId":{"type":"string","nullable":true,"description":"The Slack user ID of the ticket assignee. They must be an agent for this ticket's inbox."},"createdAt":{"type":"string"},"creatorId":{"type":"string"},"csatScore":{"type":"string","description":"The customer satisfaction score for the ticket if one exists.","enum":["1","2","3","4","5"]},"csatReason":{"type":"string","description":"The reason for the customer satisfaction score if one exists."},"description":{"type":"string"},"id":{"type":"string","format":"uuid"},"requesterId":{"type":"string"},"slackMessageChannel":{"type":"string"},"slackMessageTs":{"type":"string"},"slackOriginalMessage":{"type":"object","description":"If the ticket was created from a Slack message, this will contain the original message details.","nullable":true,"properties":{"channel":{"type":"string"},"ts":{"type":"string"},"parentMessageTs":{"type":"string","nullable":true},"permalinkUrl":{"type":"string","description":"Link to the original message that created the ticket in Slack."}}},"slackParentMessageTs":{"type":"string"},"slackPermalinkUrl":{"type":"string","description":"Link to the ticket in Slack."},"status":{"type":"string","enum":["CLOSED","IN_PROGRESS","NEW","ON_HOLD","RESOLVED"]},"workspaceId":{"type":"string"},"workspaceTicketNumber":{"type":"number"}}}]},"Request_CreateTicket":{"type":"object","required":["name","inboxId","requesterId"],"properties":{"description":{"type":"string"},"formFieldValues":{"type":"array","items":{"$ref":"#/components/schemas/TicketFormFieldValues"}},"inboxId":{"type":"string"},"name":{"type":"string","description":"The name of the ticket."},"requesterId":{"type":"string","description":"The Slack user ID of the ticket requester. Can be different than the creatorId, for example when an agent creates a ticket on behalf of another user."},"priority":{"type":"string","enum":["CRITICAL","HIGH","NORMAL","LOW"]},"tags":{"type":"array","items":{"type":"string"}}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"formFieldErrors":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldError"}}}},"FormFieldError":{"type":"object","required":["fieldId","error"],"properties":{"fieldId":{"type":"string"},"message":{"type":"string"},"fieldName":{"type":"string"},"type":{"type":"string"}}}}},"paths":{"/tickets/{ticketId}":{"put":{"summary":"Update Ticket","operationId":"updateTicket","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request_UpdateTicket"}}},"required":true},"responses":{"200":{"description":"Update Ticket Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_UpdateTicket"}}}},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## DELETE /tickets/{ticketId}

> Delete Ticket

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"servers":[{"url":"https://slack.wrangle.io/api/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"formFieldErrors":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldError"}}}},"FormFieldError":{"type":"object","required":["fieldId","error"],"properties":{"fieldId":{"type":"string"},"message":{"type":"string"},"fieldName":{"type":"string"},"type":{"type":"string"}}}}},"paths":{"/tickets/{ticketId}":{"delete":{"summary":"Delete Ticket","operationId":"deleteTicket","responses":{"200":{"description":"Delete Ticket Response","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"string","enum":["true"]}}}}}},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get Workflows

> Get active workflows for a workspace.

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"servers":[{"url":"https://slack.wrangle.io/api/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Response_GetWorkflows":{"type":"object","required":["success","workflows"],"properties":{"success":{"type":"string","enum":["true"]},"workflows":{"type":"array","items":{"$ref":"#/components/schemas/LimitedWorkflow"}}}},"LimitedWorkflow":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"formFieldErrors":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldError"}}}},"FormFieldError":{"type":"object","required":["fieldId","error"],"properties":{"fieldId":{"type":"string"},"message":{"type":"string"},"fieldName":{"type":"string"},"type":{"type":"string"}}}}},"paths":{"/workflows":{"get":{"summary":"Get Workflows","operationId":"getWorkflows","description":"Get active workflows for a workspace.","responses":{"200":{"description":"Get Workflows Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_GetWorkflows"}}}},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## GET /workflows/{workflowId}

> Get Workflow

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"servers":[{"url":"https://slack.wrangle.io/api/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Response_GetWorkflow":{"type":"object","required":["success","ticket"],"properties":{"success":{"type":"string","enum":["true"]},"workflow":{"$ref":"#/components/schemas/Workflow"}}},"Workflow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"intakeFormFields":{"$ref":"#/components/schemas/FormFields"}}},"FormFields":{"type":"object","required":["fieldId","fieldLabel","isRequired","fieldType"],"properties":{"fieldId":{"type":"string"},"fieldLabel":{"type":"string"},"isRequired":{"type":"boolean"},"fieldType":{"type":"string","enum":["Date Picker","File Input","List Input","Multiline","Multiple List Inputs","Multiple Slack Users","Number","Plain Text Input","Slack Channel","Slack User"]},"fieldOptions":{"type":"array","description":"For List Inputs, these are the options available to the user.","items":{"type":"string"}}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"formFieldErrors":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldError"}}}},"FormFieldError":{"type":"object","required":["fieldId","error"],"properties":{"fieldId":{"type":"string"},"message":{"type":"string"},"fieldName":{"type":"string"},"type":{"type":"string"}}}}},"paths":{"/workflows/{workflowId}":{"get":{"summary":"Get Workflow","operationId":"getWorkflow","responses":{"200":{"description":"Get Workflow Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_GetWorkflow"}}}},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /workflows/{workflowId}/instances

> Start Workflow

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"servers":[{"url":"https://slack.wrangle.io/api/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Request_StartWorkflow":{"type":"object","required":["requesterId","formFieldValues"],"properties":{"requesterId":{"type":"string","description":"The Slack user ID of the user starting this workflow instance."},"formFieldValues":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowFormFieldValues"}}}},"WorkflowFormFieldValues":{"type":"object","required":["fieldId"],"properties":{"fieldId":{"type":"string"},"value":{"oneOf":[{"type":"string","description":"For date form fields, use the YYYY-MM-DD format."},{"type":"number"},{"type":"array","description":"For multiple list or user inputs, use an array of strings.","items":{"type":"string"}}]}}},"Response_StartWorkflow":{"type":"object","required":["success","workflowInstanceId"],"properties":{"success":{"type":"string","enum":["true"]},"workflowInstanceId":{"type":"string","format":"uuid"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"formFieldErrors":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldError"}}}},"FormFieldError":{"type":"object","required":["fieldId","error"],"properties":{"fieldId":{"type":"string"},"message":{"type":"string"},"fieldName":{"type":"string"},"type":{"type":"string"}}}}},"paths":{"/workflows/{workflowId}/instances":{"post":{"summary":"Start Workflow","operationId":"startWorkflow","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request_StartWorkflow"}}},"required":true},"responses":{"200":{"description":"Start a Workflow","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_StartWorkflow"}}}},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Create Reply

> Create a reply on a ticket. Anyone who can view the ticket may reply as themselves; attributing the reply to another user (via slackUserId or email) requires admin access, and posting a private reply requires agent or admin access.

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"servers":[{"url":"https://slack.wrangle.io/api/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Request_CreateReply":{"type":"object","required":["markdownText"],"properties":{"markdownText":{"type":"string","description":"The reply body in Slack formatted markdown. Required."},"authorSlackUserId":{"type":"string","description":"The Slack user ID to attribute the reply to. You must provide either an authorSlackUserId or an authorEmail, not both."},"authorEmail":{"type":"string","format":"email","description":"The email address of the user to attribute the reply to. This user must exist in your Slack workspace. You must provide either an authorSlackUserId or an authorEmail, not both."},"isPrivate":{"type":"boolean","description":"Post the reply as private (visible only to agents/observers). Requires agent or admin access."}}},"Response_CreateReply":{"type":"object","required":["success","reply"],"properties":{"success":{"type":"boolean"},"reply":{"$ref":"#/components/schemas/Reply"}}},"Reply":{"type":"object","required":["authorSlackUserId","authorSlackWorkspaceId","channelId","isPrivate","markdownText","slackTs"],"properties":{"authorSlackUserId":{"type":"string","description":"The Slack user ID the reply is attributed to."},"authorSlackWorkspaceId":{"type":"string","description":"The Slack workspace ID of the reply author."},"channelId":{"type":"string","description":"The Slack channel ID the reply was posted to."},"createdAt":{"type":"string"},"isPrivate":{"type":"boolean","description":"Whether the reply is private (visible only to agents/observers)."},"markdownText":{"type":"string"},"slackParentTs":{"type":"string","nullable":true,"description":"The Slack timestamp of the thread parent, if this is a threaded reply."},"slackTs":{"type":"string","description":"The Slack message timestamp of the reply."},"updatedAt":{"type":"string"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"formFieldErrors":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldError"}}}},"FormFieldError":{"type":"object","required":["fieldId","error"],"properties":{"fieldId":{"type":"string"},"message":{"type":"string"},"fieldName":{"type":"string"},"type":{"type":"string"}}}}},"paths":{"/tickets/{ticketId}/reply":{"post":{"summary":"Create Reply","operationId":"createReply","description":"Create a reply on a ticket. Anyone who can view the ticket may reply as themselves; attributing the reply to another user (via slackUserId or email) requires admin access, and posting a private reply requires agent or admin access.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request_CreateReply"}}},"required":true},"responses":{"200":{"description":"Create Reply Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_CreateReply"}}}},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```


# Models

## The Response\_CreateTicket object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Response_CreateTicket":{"type":"object","required":["success","ticket"],"properties":{"success":{"type":"string","enum":["true"]},"ticket":{"$ref":"#/components/schemas/Ticket"}}},"Ticket":{"allOf":[{"$ref":"#/components/schemas/Request_CreateTicket"},{"type":"object","required":["id","status"],"properties":{"assigneeId":{"type":"string","nullable":true,"description":"The Slack user ID of the ticket assignee. They must be an agent for this ticket's inbox."},"createdAt":{"type":"string"},"creatorId":{"type":"string"},"csatScore":{"type":"string","description":"The customer satisfaction score for the ticket if one exists.","enum":["1","2","3","4","5"]},"csatReason":{"type":"string","description":"The reason for the customer satisfaction score if one exists."},"description":{"type":"string"},"id":{"type":"string","format":"uuid"},"requesterId":{"type":"string"},"slackMessageChannel":{"type":"string"},"slackMessageTs":{"type":"string"},"slackOriginalMessage":{"type":"object","description":"If the ticket was created from a Slack message, this will contain the original message details.","nullable":true,"properties":{"channel":{"type":"string"},"ts":{"type":"string"},"parentMessageTs":{"type":"string","nullable":true},"permalinkUrl":{"type":"string","description":"Link to the original message that created the ticket in Slack."}}},"slackParentMessageTs":{"type":"string"},"slackPermalinkUrl":{"type":"string","description":"Link to the ticket in Slack."},"status":{"type":"string","enum":["CLOSED","IN_PROGRESS","NEW","ON_HOLD","RESOLVED"]},"workspaceId":{"type":"string"},"workspaceTicketNumber":{"type":"number"}}}]},"Request_CreateTicket":{"type":"object","required":["name","inboxId","requesterId"],"properties":{"description":{"type":"string"},"formFieldValues":{"type":"array","items":{"$ref":"#/components/schemas/TicketFormFieldValues"}},"inboxId":{"type":"string"},"name":{"type":"string","description":"The name of the ticket."},"requesterId":{"type":"string","description":"The Slack user ID of the ticket requester. Can be different than the creatorId, for example when an agent creates a ticket on behalf of another user."},"priority":{"type":"string","enum":["CRITICAL","HIGH","NORMAL","LOW"]},"tags":{"type":"array","items":{"type":"string"}}}},"TicketFormFieldValues":{"type":"object","required":["fieldId"],"properties":{"fieldId":{"type":"string"},"value":{"oneOf":[{"type":"string","description":"For date form fields, use the YYYY-MM-DD format."},{"type":"number"},{"type":"array","items":{"type":"string"}}]}}}}}}
```

## The Response\_UpdateTicket object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Response_UpdateTicket":{"type":"object","required":["success","ticket"],"properties":{"success":{"type":"string","enum":["true"]},"ticket":{"$ref":"#/components/schemas/Ticket"}}},"Ticket":{"allOf":[{"$ref":"#/components/schemas/Request_CreateTicket"},{"type":"object","required":["id","status"],"properties":{"assigneeId":{"type":"string","nullable":true,"description":"The Slack user ID of the ticket assignee. They must be an agent for this ticket's inbox."},"createdAt":{"type":"string"},"creatorId":{"type":"string"},"csatScore":{"type":"string","description":"The customer satisfaction score for the ticket if one exists.","enum":["1","2","3","4","5"]},"csatReason":{"type":"string","description":"The reason for the customer satisfaction score if one exists."},"description":{"type":"string"},"id":{"type":"string","format":"uuid"},"requesterId":{"type":"string"},"slackMessageChannel":{"type":"string"},"slackMessageTs":{"type":"string"},"slackOriginalMessage":{"type":"object","description":"If the ticket was created from a Slack message, this will contain the original message details.","nullable":true,"properties":{"channel":{"type":"string"},"ts":{"type":"string"},"parentMessageTs":{"type":"string","nullable":true},"permalinkUrl":{"type":"string","description":"Link to the original message that created the ticket in Slack."}}},"slackParentMessageTs":{"type":"string"},"slackPermalinkUrl":{"type":"string","description":"Link to the ticket in Slack."},"status":{"type":"string","enum":["CLOSED","IN_PROGRESS","NEW","ON_HOLD","RESOLVED"]},"workspaceId":{"type":"string"},"workspaceTicketNumber":{"type":"number"}}}]},"Request_CreateTicket":{"type":"object","required":["name","inboxId","requesterId"],"properties":{"description":{"type":"string"},"formFieldValues":{"type":"array","items":{"$ref":"#/components/schemas/TicketFormFieldValues"}},"inboxId":{"type":"string"},"name":{"type":"string","description":"The name of the ticket."},"requesterId":{"type":"string","description":"The Slack user ID of the ticket requester. Can be different than the creatorId, for example when an agent creates a ticket on behalf of another user."},"priority":{"type":"string","enum":["CRITICAL","HIGH","NORMAL","LOW"]},"tags":{"type":"array","items":{"type":"string"}}}},"TicketFormFieldValues":{"type":"object","required":["fieldId"],"properties":{"fieldId":{"type":"string"},"value":{"oneOf":[{"type":"string","description":"For date form fields, use the YYYY-MM-DD format."},{"type":"number"},{"type":"array","items":{"type":"string"}}]}}}}}}
```

## The Request\_CreateTicket object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Request_CreateTicket":{"type":"object","required":["name","inboxId","requesterId"],"properties":{"description":{"type":"string"},"formFieldValues":{"type":"array","items":{"$ref":"#/components/schemas/TicketFormFieldValues"}},"inboxId":{"type":"string"},"name":{"type":"string","description":"The name of the ticket."},"requesterId":{"type":"string","description":"The Slack user ID of the ticket requester. Can be different than the creatorId, for example when an agent creates a ticket on behalf of another user."},"priority":{"type":"string","enum":["CRITICAL","HIGH","NORMAL","LOW"]},"tags":{"type":"array","items":{"type":"string"}}}},"TicketFormFieldValues":{"type":"object","required":["fieldId"],"properties":{"fieldId":{"type":"string"},"value":{"oneOf":[{"type":"string","description":"For date form fields, use the YYYY-MM-DD format."},{"type":"number"},{"type":"array","items":{"type":"string"}}]}}}}}}
```

## The Request\_UpdateTicket object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Request_UpdateTicket":{"type":"object","properties":{"assigneeId":{"type":"string","nullable":true,"description":"The Slack user ID of the ticket assignee. They must be an agent for this ticket's inbox. To unassign a ticket, set this to null. If a ticket is assigned, it's status will automatically be set to IN_PROGRESS. If a ticket is unassigned, it's status will automatically be set to NEW."},"csatScore":{"type":"string","description":"The customer satisfaction score for the ticket. Must be a value between 1 and 5. Satisfaction surveys must be enabled for the ticket's inbox.","enum":["1","2","3","4","5"]},"description":{"type":"string"},"followers":{"type":"array","items":{"$ref":"#/components/schemas/Followers"}},"formFieldValues":{"type":"array","items":{"$ref":"#/components/schemas/TicketFormFieldValues"}},"inboxId":{"type":"string","description":"Move this ticket to a new inbox. Will clear the assignee, status, tags, and other inbox-specific settings."},"name":{"type":"string"},"priority":{"type":"string","enum":["CRITICAL","HIGH","NORMAL","LOW"]},"status":{"type":"string","enum":["CLOSED","IN_PROGRESS","NEW","ON_HOLD","RESOLVED"]},"tags":{"type":"array","items":{"type":"string"}}}},"Followers":{"type":"object","required":["userId"],"properties":{"userId":{"type":"string"}}},"TicketFormFieldValues":{"type":"object","required":["fieldId"],"properties":{"fieldId":{"type":"string"},"value":{"oneOf":[{"type":"string","description":"For date form fields, use the YYYY-MM-DD format."},{"type":"number"},{"type":"array","items":{"type":"string"}}]}}}}}}
```

## The Request\_UpdateInbox object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Request_UpdateInbox":{"type":"object","description":"Update an inbox.","properties":{"userRoles":{"description":"Allows updating the list of users with the No Access, Observer, and Requester roles for this inbox. Admin and Agent user roles need to be managed via the Wrangle web app.","type":"object","properties":{"NO_ACCESS":{"description":"Slack user IDs to assign the No Access role for this inbox. This will replace all users with the No Access role that exist already.","type":"array","items":{"type":"string"}},"REQUESTER":{"description":"Slack user IDs to assign the Requester role for this inbox. This will replace all users with the Requester role that exist already.","type":"array","items":{"type":"string"}},"OBSERVER":{"description":"Slack user IDs to assign the Observer role for this inbox. This will replace all users with the Observer role that exist already.","type":"array","items":{"type":"string"}}}}}}}}}
```

## The Response\_GetInboxes object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Response_GetInboxes":{"type":"object","required":["success","inboxes"],"properties":{"success":{"type":"string","enum":["true"]},"inboxes":{"type":"array","items":{"$ref":"#/components/schemas/Inbox"}}}},"Inbox":{"type":"object","properties":{"createdAt":{"type":"string"},"creatorId":{"type":"string"},"id":{"type":"string","format":"uuid"},"formFields":{"$ref":"#/components/schemas/FormFields"},"name":{"type":"string"},"description":{"type":"string"},"defaultUserRole":{"type":"string","enum":["REQUESTER","NO_ACCESS","OBSERVER"]},"status":{"type":"string","enum":["ACTIVE","ARCHIVED"]},"tags":{"type":"array","items":{"type":"string"}},"userRoles":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["NO_ACCESS","REQUESTER","OBSERVER","AGENT","ADMIN"]},"userId":{"type":"string"}}}},"updatedAt":{"type":"string"}}},"FormFields":{"type":"object","required":["fieldId","fieldLabel","isRequired","fieldType"],"properties":{"fieldId":{"type":"string"},"fieldLabel":{"type":"string"},"isRequired":{"type":"boolean"},"fieldType":{"type":"string","enum":["Date Picker","File Input","List Input","Multiline","Multiple List Inputs","Multiple Slack Users","Number","Plain Text Input","Slack Channel","Slack User"]},"fieldOptions":{"type":"array","description":"For List Inputs, these are the options available to the user.","items":{"type":"string"}}}}}}}
```

## The Response\_GetInbox object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Response_GetInbox":{"type":"object","required":["success","inbox"],"properties":{"success":{"type":"string","enum":["true"]},"inbox":{"$ref":"#/components/schemas/Inbox"}}},"Inbox":{"type":"object","properties":{"createdAt":{"type":"string"},"creatorId":{"type":"string"},"id":{"type":"string","format":"uuid"},"formFields":{"$ref":"#/components/schemas/FormFields"},"name":{"type":"string"},"description":{"type":"string"},"defaultUserRole":{"type":"string","enum":["REQUESTER","NO_ACCESS","OBSERVER"]},"status":{"type":"string","enum":["ACTIVE","ARCHIVED"]},"tags":{"type":"array","items":{"type":"string"}},"userRoles":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["NO_ACCESS","REQUESTER","OBSERVER","AGENT","ADMIN"]},"userId":{"type":"string"}}}},"updatedAt":{"type":"string"}}},"FormFields":{"type":"object","required":["fieldId","fieldLabel","isRequired","fieldType"],"properties":{"fieldId":{"type":"string"},"fieldLabel":{"type":"string"},"isRequired":{"type":"boolean"},"fieldType":{"type":"string","enum":["Date Picker","File Input","List Input","Multiline","Multiple List Inputs","Multiple Slack Users","Number","Plain Text Input","Slack Channel","Slack User"]},"fieldOptions":{"type":"array","description":"For List Inputs, these are the options available to the user.","items":{"type":"string"}}}}}}}
```

## The Response\_PutInbox object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Response_PutInbox":{"type":"object","required":["success","inbox"],"properties":{"success":{"type":"string","enum":["true"]},"inbox":{"$ref":"#/components/schemas/Inbox"}}},"Inbox":{"type":"object","properties":{"createdAt":{"type":"string"},"creatorId":{"type":"string"},"id":{"type":"string","format":"uuid"},"formFields":{"$ref":"#/components/schemas/FormFields"},"name":{"type":"string"},"description":{"type":"string"},"defaultUserRole":{"type":"string","enum":["REQUESTER","NO_ACCESS","OBSERVER"]},"status":{"type":"string","enum":["ACTIVE","ARCHIVED"]},"tags":{"type":"array","items":{"type":"string"}},"userRoles":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["NO_ACCESS","REQUESTER","OBSERVER","AGENT","ADMIN"]},"userId":{"type":"string"}}}},"updatedAt":{"type":"string"}}},"FormFields":{"type":"object","required":["fieldId","fieldLabel","isRequired","fieldType"],"properties":{"fieldId":{"type":"string"},"fieldLabel":{"type":"string"},"isRequired":{"type":"boolean"},"fieldType":{"type":"string","enum":["Date Picker","File Input","List Input","Multiline","Multiple List Inputs","Multiple Slack Users","Number","Plain Text Input","Slack Channel","Slack User"]},"fieldOptions":{"type":"array","description":"For List Inputs, these are the options available to the user.","items":{"type":"string"}}}}}}}
```

## The Request\_GetTickets object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Request_GetTickets":{"type":"object","description":"Query parameters for getting tickets for an inbox.","properties":{"page":{"type":"integer","minimum":1,"default":1,"description":"Page number for pagination (1-based)."},"pageSize":{"type":"integer","minimum":1,"maximum":200,"default":200,"description":"Number of tickets per page."}}}}}}
```

## The Response\_GetTickets object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Response_GetTickets":{"type":"object","required":["success","tickets","pagination"],"properties":{"success":{"type":"string","enum":["true"]},"tickets":{"type":"array","items":{"$ref":"#/components/schemas/LimitedTicket"}},"pagination":{"type":"object","required":["page","pageSize","totalCount","totalPages"],"properties":{"page":{"type":"integer","description":"Current page number"},"pageSize":{"type":"integer","description":"Number of items per page"},"totalCount":{"type":"integer","description":"Total number of items available"},"totalPages":{"type":"integer","description":"Total number of pages"}}}}},"LimitedTicket":{"type":"object","required":["id","name","status"],"properties":{"assigneeId":{"type":"string","nullable":true,"description":"The Slack user ID of the ticket assignee. They must be an agent for this ticket's inbox."},"createdAt":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"requesterId":{"type":"string"},"status":{"type":"string","enum":["CLOSED","IN_PROGRESS","NEW","ON_HOLD","RESOLVED"]},"updatedAt":{"type":"string"}}}}}}
```

## The Response\_GetWorkflows object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Response_GetWorkflows":{"type":"object","required":["success","workflows"],"properties":{"success":{"type":"string","enum":["true"]},"workflows":{"type":"array","items":{"$ref":"#/components/schemas/LimitedWorkflow"}}}},"LimitedWorkflow":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"}}}}}}
```

## The Response\_GetWorkflow object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Response_GetWorkflow":{"type":"object","required":["success","ticket"],"properties":{"success":{"type":"string","enum":["true"]},"workflow":{"$ref":"#/components/schemas/Workflow"}}},"Workflow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"intakeFormFields":{"$ref":"#/components/schemas/FormFields"}}},"FormFields":{"type":"object","required":["fieldId","fieldLabel","isRequired","fieldType"],"properties":{"fieldId":{"type":"string"},"fieldLabel":{"type":"string"},"isRequired":{"type":"boolean"},"fieldType":{"type":"string","enum":["Date Picker","File Input","List Input","Multiline","Multiple List Inputs","Multiple Slack Users","Number","Plain Text Input","Slack Channel","Slack User"]},"fieldOptions":{"type":"array","description":"For List Inputs, these are the options available to the user.","items":{"type":"string"}}}}}}}
```

## The Request\_StartWorkflow object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Request_StartWorkflow":{"type":"object","required":["requesterId","formFieldValues"],"properties":{"requesterId":{"type":"string","description":"The Slack user ID of the user starting this workflow instance."},"formFieldValues":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowFormFieldValues"}}}},"WorkflowFormFieldValues":{"type":"object","required":["fieldId"],"properties":{"fieldId":{"type":"string"},"value":{"oneOf":[{"type":"string","description":"For date form fields, use the YYYY-MM-DD format."},{"type":"number"},{"type":"array","description":"For multiple list or user inputs, use an array of strings.","items":{"type":"string"}}]}}}}}}
```

## The Response\_StartWorkflow object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Response_StartWorkflow":{"type":"object","required":["success","workflowInstanceId"],"properties":{"success":{"type":"string","enum":["true"]},"workflowInstanceId":{"type":"string","format":"uuid"}}}}}}
```

## The Inbox object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Inbox":{"type":"object","properties":{"createdAt":{"type":"string"},"creatorId":{"type":"string"},"id":{"type":"string","format":"uuid"},"formFields":{"$ref":"#/components/schemas/FormFields"},"name":{"type":"string"},"description":{"type":"string"},"defaultUserRole":{"type":"string","enum":["REQUESTER","NO_ACCESS","OBSERVER"]},"status":{"type":"string","enum":["ACTIVE","ARCHIVED"]},"tags":{"type":"array","items":{"type":"string"}},"userRoles":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["NO_ACCESS","REQUESTER","OBSERVER","AGENT","ADMIN"]},"userId":{"type":"string"}}}},"updatedAt":{"type":"string"}}},"FormFields":{"type":"object","required":["fieldId","fieldLabel","isRequired","fieldType"],"properties":{"fieldId":{"type":"string"},"fieldLabel":{"type":"string"},"isRequired":{"type":"boolean"},"fieldType":{"type":"string","enum":["Date Picker","File Input","List Input","Multiline","Multiple List Inputs","Multiple Slack Users","Number","Plain Text Input","Slack Channel","Slack User"]},"fieldOptions":{"type":"array","description":"For List Inputs, these are the options available to the user.","items":{"type":"string"}}}}}}}
```

## The Ticket object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Ticket":{"allOf":[{"$ref":"#/components/schemas/Request_CreateTicket"},{"type":"object","required":["id","status"],"properties":{"assigneeId":{"type":"string","nullable":true,"description":"The Slack user ID of the ticket assignee. They must be an agent for this ticket's inbox."},"createdAt":{"type":"string"},"creatorId":{"type":"string"},"csatScore":{"type":"string","description":"The customer satisfaction score for the ticket if one exists.","enum":["1","2","3","4","5"]},"csatReason":{"type":"string","description":"The reason for the customer satisfaction score if one exists."},"description":{"type":"string"},"id":{"type":"string","format":"uuid"},"requesterId":{"type":"string"},"slackMessageChannel":{"type":"string"},"slackMessageTs":{"type":"string"},"slackOriginalMessage":{"type":"object","description":"If the ticket was created from a Slack message, this will contain the original message details.","nullable":true,"properties":{"channel":{"type":"string"},"ts":{"type":"string"},"parentMessageTs":{"type":"string","nullable":true},"permalinkUrl":{"type":"string","description":"Link to the original message that created the ticket in Slack."}}},"slackParentMessageTs":{"type":"string"},"slackPermalinkUrl":{"type":"string","description":"Link to the ticket in Slack."},"status":{"type":"string","enum":["CLOSED","IN_PROGRESS","NEW","ON_HOLD","RESOLVED"]},"workspaceId":{"type":"string"},"workspaceTicketNumber":{"type":"number"}}}]},"Request_CreateTicket":{"type":"object","required":["name","inboxId","requesterId"],"properties":{"description":{"type":"string"},"formFieldValues":{"type":"array","items":{"$ref":"#/components/schemas/TicketFormFieldValues"}},"inboxId":{"type":"string"},"name":{"type":"string","description":"The name of the ticket."},"requesterId":{"type":"string","description":"The Slack user ID of the ticket requester. Can be different than the creatorId, for example when an agent creates a ticket on behalf of another user."},"priority":{"type":"string","enum":["CRITICAL","HIGH","NORMAL","LOW"]},"tags":{"type":"array","items":{"type":"string"}}}},"TicketFormFieldValues":{"type":"object","required":["fieldId"],"properties":{"fieldId":{"type":"string"},"value":{"oneOf":[{"type":"string","description":"For date form fields, use the YYYY-MM-DD format."},{"type":"number"},{"type":"array","items":{"type":"string"}}]}}}}}}
```

## The LimitedTicket object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"LimitedTicket":{"type":"object","required":["id","name","status"],"properties":{"assigneeId":{"type":"string","nullable":true,"description":"The Slack user ID of the ticket assignee. They must be an agent for this ticket's inbox."},"createdAt":{"type":"string"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"requesterId":{"type":"string"},"status":{"type":"string","enum":["CLOSED","IN_PROGRESS","NEW","ON_HOLD","RESOLVED"]},"updatedAt":{"type":"string"}}}}}}
```

## The Workflow object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Workflow":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"intakeFormFields":{"$ref":"#/components/schemas/FormFields"}}},"FormFields":{"type":"object","required":["fieldId","fieldLabel","isRequired","fieldType"],"properties":{"fieldId":{"type":"string"},"fieldLabel":{"type":"string"},"isRequired":{"type":"boolean"},"fieldType":{"type":"string","enum":["Date Picker","File Input","List Input","Multiline","Multiple List Inputs","Multiple Slack Users","Number","Plain Text Input","Slack Channel","Slack User"]},"fieldOptions":{"type":"array","description":"For List Inputs, these are the options available to the user.","items":{"type":"string"}}}}}}}
```

## The LimitedWorkflow object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"LimitedWorkflow":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"}}}}}}
```

## The Followers object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Followers":{"type":"object","required":["userId"],"properties":{"userId":{"type":"string"}}}}}}
```

## The TicketFormFieldValues object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"TicketFormFieldValues":{"type":"object","required":["fieldId"],"properties":{"fieldId":{"type":"string"},"value":{"oneOf":[{"type":"string","description":"For date form fields, use the YYYY-MM-DD format."},{"type":"number"},{"type":"array","items":{"type":"string"}}]}}}}}}
```

## The WorkflowFormFieldValues object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"WorkflowFormFieldValues":{"type":"object","required":["fieldId"],"properties":{"fieldId":{"type":"string"},"value":{"oneOf":[{"type":"string","description":"For date form fields, use the YYYY-MM-DD format."},{"type":"number"},{"type":"array","description":"For multiple list or user inputs, use an array of strings.","items":{"type":"string"}}]}}}}}}
```

## The FormFields object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"FormFields":{"type":"object","required":["fieldId","fieldLabel","isRequired","fieldType"],"properties":{"fieldId":{"type":"string"},"fieldLabel":{"type":"string"},"isRequired":{"type":"boolean"},"fieldType":{"type":"string","enum":["Date Picker","File Input","List Input","Multiline","Multiple List Inputs","Multiple Slack Users","Number","Plain Text Input","Slack Channel","Slack User"]},"fieldOptions":{"type":"array","description":"For List Inputs, these are the options available to the user.","items":{"type":"string"}}}}}}}
```

## The Error object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"formFieldErrors":{"type":"array","items":{"$ref":"#/components/schemas/FormFieldError"}}}},"FormFieldError":{"type":"object","required":["fieldId","error"],"properties":{"fieldId":{"type":"string"},"message":{"type":"string"},"fieldName":{"type":"string"},"type":{"type":"string"}}}}}}
```

## The FormFieldError object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"FormFieldError":{"type":"object","required":["fieldId","error"],"properties":{"fieldId":{"type":"string"},"message":{"type":"string"},"fieldName":{"type":"string"},"type":{"type":"string"}}}}}}
```

## The Reply object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Reply":{"type":"object","required":["authorSlackUserId","authorSlackWorkspaceId","channelId","isPrivate","markdownText","slackTs"],"properties":{"authorSlackUserId":{"type":"string","description":"The Slack user ID the reply is attributed to."},"authorSlackWorkspaceId":{"type":"string","description":"The Slack workspace ID of the reply author."},"channelId":{"type":"string","description":"The Slack channel ID the reply was posted to."},"createdAt":{"type":"string"},"isPrivate":{"type":"boolean","description":"Whether the reply is private (visible only to agents/observers)."},"markdownText":{"type":"string"},"slackParentTs":{"type":"string","nullable":true,"description":"The Slack timestamp of the thread parent, if this is a threaded reply."},"slackTs":{"type":"string","description":"The Slack message timestamp of the reply."},"updatedAt":{"type":"string"}}}}}}
```

## The Request\_CreateReply object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Request_CreateReply":{"type":"object","required":["markdownText"],"properties":{"markdownText":{"type":"string","description":"The reply body in Slack formatted markdown. Required."},"authorSlackUserId":{"type":"string","description":"The Slack user ID to attribute the reply to. You must provide either an authorSlackUserId or an authorEmail, not both."},"authorEmail":{"type":"string","format":"email","description":"The email address of the user to attribute the reply to. This user must exist in your Slack workspace. You must provide either an authorSlackUserId or an authorEmail, not both."},"isPrivate":{"type":"boolean","description":"Post the reply as private (visible only to agents/observers). Requires agent or admin access."}}}}}}
```

## The Response\_CreateReply object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Response_CreateReply":{"type":"object","required":["success","reply"],"properties":{"success":{"type":"boolean"},"reply":{"$ref":"#/components/schemas/Reply"}}},"Reply":{"type":"object","required":["authorSlackUserId","authorSlackWorkspaceId","channelId","isPrivate","markdownText","slackTs"],"properties":{"authorSlackUserId":{"type":"string","description":"The Slack user ID the reply is attributed to."},"authorSlackWorkspaceId":{"type":"string","description":"The Slack workspace ID of the reply author."},"channelId":{"type":"string","description":"The Slack channel ID the reply was posted to."},"createdAt":{"type":"string"},"isPrivate":{"type":"boolean","description":"Whether the reply is private (visible only to agents/observers)."},"markdownText":{"type":"string"},"slackParentTs":{"type":"string","nullable":true,"description":"The Slack timestamp of the thread parent, if this is a threaded reply."},"slackTs":{"type":"string","description":"The Slack message timestamp of the reply."},"updatedAt":{"type":"string"}}}}}}
```

## The Response\_GetTicket object

```json
{"openapi":"3.0.3","info":{"title":"Wrangle API Documentation","version":"0.1.5"},"components":{"schemas":{"Response_GetTicket":{"allOf":[{"$ref":"#/components/schemas/Ticket"},{"type":"object","properties":{"replies":{"type":"array","description":"Present only when includeReplies=true.","items":{"$ref":"#/components/schemas/Reply"}}}}]},"Ticket":{"allOf":[{"$ref":"#/components/schemas/Request_CreateTicket"},{"type":"object","required":["id","status"],"properties":{"assigneeId":{"type":"string","nullable":true,"description":"The Slack user ID of the ticket assignee. They must be an agent for this ticket's inbox."},"createdAt":{"type":"string"},"creatorId":{"type":"string"},"csatScore":{"type":"string","description":"The customer satisfaction score for the ticket if one exists.","enum":["1","2","3","4","5"]},"csatReason":{"type":"string","description":"The reason for the customer satisfaction score if one exists."},"description":{"type":"string"},"id":{"type":"string","format":"uuid"},"requesterId":{"type":"string"},"slackMessageChannel":{"type":"string"},"slackMessageTs":{"type":"string"},"slackOriginalMessage":{"type":"object","description":"If the ticket was created from a Slack message, this will contain the original message details.","nullable":true,"properties":{"channel":{"type":"string"},"ts":{"type":"string"},"parentMessageTs":{"type":"string","nullable":true},"permalinkUrl":{"type":"string","description":"Link to the original message that created the ticket in Slack."}}},"slackParentMessageTs":{"type":"string"},"slackPermalinkUrl":{"type":"string","description":"Link to the ticket in Slack."},"status":{"type":"string","enum":["CLOSED","IN_PROGRESS","NEW","ON_HOLD","RESOLVED"]},"workspaceId":{"type":"string"},"workspaceTicketNumber":{"type":"number"}}}]},"Request_CreateTicket":{"type":"object","required":["name","inboxId","requesterId"],"properties":{"description":{"type":"string"},"formFieldValues":{"type":"array","items":{"$ref":"#/components/schemas/TicketFormFieldValues"}},"inboxId":{"type":"string"},"name":{"type":"string","description":"The name of the ticket."},"requesterId":{"type":"string","description":"The Slack user ID of the ticket requester. Can be different than the creatorId, for example when an agent creates a ticket on behalf of another user."},"priority":{"type":"string","enum":["CRITICAL","HIGH","NORMAL","LOW"]},"tags":{"type":"array","items":{"type":"string"}}}},"TicketFormFieldValues":{"type":"object","required":["fieldId"],"properties":{"fieldId":{"type":"string"},"value":{"oneOf":[{"type":"string","description":"For date form fields, use the YYYY-MM-DD format."},{"type":"number"},{"type":"array","items":{"type":"string"}}]}}},"Reply":{"type":"object","required":["authorSlackUserId","authorSlackWorkspaceId","channelId","isPrivate","markdownText","slackTs"],"properties":{"authorSlackUserId":{"type":"string","description":"The Slack user ID the reply is attributed to."},"authorSlackWorkspaceId":{"type":"string","description":"The Slack workspace ID of the reply author."},"channelId":{"type":"string","description":"The Slack channel ID the reply was posted to."},"createdAt":{"type":"string"},"isPrivate":{"type":"boolean","description":"Whether the reply is private (visible only to agents/observers)."},"markdownText":{"type":"string"},"slackParentTs":{"type":"string","nullable":true,"description":"The Slack timestamp of the thread parent, if this is a threaded reply."},"slackTs":{"type":"string","description":"The Slack message timestamp of the reply."},"updatedAt":{"type":"string"}}}}}}
```


# Zapier

Zapier is a service lets you connect thousands of apps together as custom integrations without having to write code. Wrangle integrates with Zapier so that you can tie your workflows and tickets together with the other apps your teams use.

## What you can do with Zapier and Wrangle

In Zapier, an event in one app triggers an action in another app. Zapier calls this a "Zap." You can use Wrangle as either the *trigger* or as the *action* in your Zaps.

### Using Wrangle as a Zap Trigger

Zapier includes the following Wrangle triggers:&#x20;

* Workflow Completed
* Ticket Created
* Ticket Completed

When Wrangle is used as a trigger, you can send the data from your intake form to another app.

For example, if you have an employee onboarding flow, you can automatically add the employee to your HR system when your Wrangle steps are completed. Or, if you were approving sales contracts, you could automatically update the deal record in your CRM once you've gotten the requisite approvals in Wrangle.

### Using Wrangle as a Zap Action

Zapier includes the following Wrangle actions:&#x20;

* Start a Workflow
* Start a Ticket

When something happens in another app, you can trigger Wrangle to start a workflow or ticket. You can use data from the other app triggering Wrangle to populate your Wrangle form.

For example, when a customer purchases something in Shopify, you could trigger a warehouse activity workflow in Wrangle. Or, if a deal is moved to the quoting stage in your sales pipeline, you could trigger your Wrangle workflow that gets the services team to put together an hours estimate for the quote.

## Connecting Wrangle to Zapier

### Zapier Credentials

You'll need two things to use Wrangle's Zapier integration:

1. The **private invitation link** to use Wrangle's Zapier integration. Since Wrangle's integration is in public beta, you cannot find Wrangle on Zapier without the link.
2. Your **credentials** to connect Wrangle to Zapier. You'll need your Slack User ID, Slack Workspace ID, and a Wrangle API key.

You can find both the invite link and the credentials [here](https://slack.wrangle.io/integrations).

### Accepting the private invitation link

Once you've gone to the [integrations page](https://slack.wrangle.io/integrations), you'll see an "Accept Invite on Zapier" button. Click that and you'll be taken to a Zapier web page to accept the invitation to the Wrangle beta on Zapier. That page looks like this:

![Once you click the Zapier Invite Link, you'll be taken to this page.](/files/-MlKrSWv_vqkiPZBVvTM)

Click on the "Accept Invite & Build a Zap" button to get started. If you're not taken immediately to Zapier's Zap Builder, then click "Create a Zap". If you've never used Zapier before, check out their [help docs on building Zaps](https://zapier.com/help/create/basics).

Then you'll need to decide whether you're [using Wrangle as a Trigger](/integrations/zapier#using-wrangle-as-a-zap-trigger) or [as an Action](/integrations/zapier#using-wrangle-as-a-zap-action) — once you've made your choice, follow the corresponding instructions below.

## How to Trigger a Zap with Wrangle

Wrangle provides one Zapier Trigger to start a Zap when a Wrangle [workflow](broken://pages/-Mj5blROPstTOn9CIYfZ) has been completed. This trigger will fire each time that the workflow's steps have been completed.

When you're creating a Zap, you'll see the first step is to pick a Trigger. Search for Wrangle and choose it:

![Choosing Wrangle as your Trigger.](/files/-MlKv8eZmPjC5SGqRI9l)

When you pick Wrangle, you'll then be asked to choose which Wrangle trigger to use.&#x20;

![Choose your trigger](/files/cEPAVI0Sx4Z3wCHksgVh)

Next, you'll need to choose an account. If you haven't yet connected your Wrangle account, click on "Connect a new Account" and provide the credentials listed on the [Integrations page](https://slack.wrangle.io/integrations).

Here's what your Zap should look like once you've connected and chosen an account:

![Choosing which Wrangle Account to use in your Zap trigger.](/files/-MlKvzNp6J_d4HAJsUtz)

From there, you'll need to choose *which* Wrangle workflow or inbox in your account to use with this trigger. If you don't have any, you'll need to [design a workflow](/workflows/designing-a-workflow) or [create an inbox](broken://pages/vOOjKsDS998MU3oBkOfC) first.

Here's what it looks like when you're choosing which workflow or inbox to use.&#x20;

{% hint style="info" %}
We'll use workflows for the remainder of this guide, but the process will be the same for the ticket triggers.
{% endhint %}

![Choosing which workflow to use in your trigger.](/files/-MlKwXXDRejDJmpScGVP)

Once you've chosen a workflow or inbox to use, Zapier will prompt you to test your trigger. By testing, Zapier will ask Wrangle for any eligible instances or tickets. Wrangle will use the intake form data from one of these instances to know what data you can provide to other apps in your Zap.

{% hint style="info" %}
If you're using either the **Workflow Completed** or **Ticket Completed** trigger, in-progress instances won't show up in your test data. Make sure you have at least one completed instances in order to successfully test your Zap.
{% endhint %}

If your test is successful, Zapier will show you some data from the most recently completed instance. Here's what ours looked like at this stage (note: yours will have different "formData" based on your own intake form):

![Getting test data from your Wrangle Workflow.](/files/-MlKxZTKLXqt6_I2NO2O)

From there, you move on to deciding on the Action you want to be triggered by completing your Wrangle trigger. You can insert any of the data from your workflow or ticket inside the Action, to pass data from Wrangle to the other app:

![Inserting data from your Wrangle Trigger into your Action.](/files/-MlKxz9BZMhl4uStSd9u)

### Wrangle Data You Can Insert Into Actions

Every Wrangle trigger has two sets of data you can pass along to other apps in the Action step of your Zap:

* Metadata about the workflow or ticket
* Custom intake form data

#### Metadata about the workflow or ticket

Wrangle will pass along certain metadata about the workflow instance that was completed:

* **Workflow/Ticket Started Time:** the date and time when the workflow was started (usually when the intake form was submitted by someone, unless it was started by Zapier),
* **Workflow/Ticket Completed Time:** the date and time when the last workflow step was completed or the ticket was set as either "Resolved" or "Closed."
* **Workflow Instance/Ticket ID**: a unique identifier for this particular instance of your workflow or ticket.
* **Requester ID**: the Slack User ID of the person who started the workflow instance. You can [use this Slack User ID with Slack's Zapier integration](/integrations/zapier#using-the-slack-integration-with-zapier-to-find-users) to get even more information about this person if you need to, like their email address.
* **Requester Name**: the name of the person who started the workflow instance (we get their name from their display name in Slack).
* **Ticket Completer Name**: the Slack display name of the person who set the ticket status to either "Resolved" or Closed
* **Ticket Name**: the short-answer ticket name given when the ticket was created
* **Ticket Number**: the unique number automatically assigned to each ticket as they're created

#### Custom Intake Form Data

We also pass along data from all fields in the intake form. You'll see a form data entry for each of these. If you have optional fields in your intake form, that data may not be passed along.

{% hint style="info" %}
If you have a "Pick a User" field in your intake form, note that Wrangle will pass the Slack User ID of the person that was chosen. You can [use the Slack integration with Zapier](/integrations/zapier#find-out-who-has-a-certain-slack-id) to lookup more information about that person, like their name or email address.
{% endhint %}

{% hint style="info" %}
Zapier Triggers are checked every few minutes, up to every 15 minutes. If you are testing your Zap and don't see it firing right away, give it a few minutes.
{% endhint %}

## How to Start a Wrangle Workflow or Ticket with Zapier

Wrangle has two Zapier Actions you can use to start a Wrangle [workflow](broken://pages/-Mj5blROPstTOn9CIYfZ). An event in one of the over thousands of apps on the Zapier platform can thus trigger a workflow or ticket to a Slack channel.

When you're designing your Zap and you get to the Action step, you can search for Wrangle:

![Searching for Wrangle to power the Action step of your Zap.](/files/-MlLswar-ypYcvSAxr00)

Next, you'll be prompted to choose either the "Start a Workflow" or "Start a Ticket" action.

{% hint style="info" %}
We'll use workflows for the remainder of this guide, but the process will be the same for the ticket action.
{% endhint %}

![Choosing a Wrangle action](/files/1VpL7XmwmbjJr8FoVQt2)

\
Next, you'll need to choose an account. If you haven't yet connected your Wrangle account, click on "Connect a new Account" and provide the credentials listed on the [Integrations page](https://slack.wrangle.io/integrations).

![Choosing a Wrangle account to use in your Zap action.](/files/-MlLtWDcLHIMhB9kVwXZ)

From there, you'll need to choose *which* Wrangle workflow or inbox in your account you want this Zap to start. If you don't have any, you'll need to [design a workflow](/workflows/designing-a-workflow) or [create an inbox](broken://pages/vOOjKsDS998MU3oBkOfC) first.

Here's what it looks like when you're choosing which workflow to use. Note: you'll see your workflows in the list, these are the ones we have in our account.

![Picking a Workflow to start.](/files/-MlLtzhBBnF0BF9695Pn)

Once you've chosen a workflow, Zapier will show you more fields to fill out. These fields fall into two categories:

* Identifying the Slack User starting the workflow or ticket
* Filling in the workflow or ticket form

Since Zapier is automating the initiation of the workflow or ticket, you're essentially automating how a user normally starts the instance — by filling out the intake form in Slack. So, these data fields help Zapier do that on a user's behalf.

{% hint style="warning" %}
If your Wrangle workflow has an "Upload files" question in the intake form, you will not see it in the list of workflows you can start via Zapier.
{% endhint %}

### Identifying the Slack User Starting the Workflow

Every workflow or ticket in Wrangle is started by one of the users in your Slack Workspace. Wrangle needs to know *who* is starting the instance, even if Zapier is triggering it, so that we know whom to notify as steps are completed. For example, in a workflow to report facility issues, we need to know who is having the facility problem so that they can be notified when the issue is resolved.

#### If one person is always the person starting the workflow or ticket

If you or a colleague are the person that needs to be the person starting the instance *every* time Zapier kicks it off, then you can find your Slack User ID on the Integrations page. Copy and paste it into the "Slack User ID of person starting this workflow" field of your Zap.

#### If the person starting the workflow or ticket needs to change each time

More likely, you need to change who is starting the Wrangle instance (and will thus be notified about progress) each time. For example, if you're trigger a sales manager approval whenever a deal reaches a certain stage in Salesforce, you want the specific sales rep for that deal to be the one who is notified when the workflow is completed.

Using data from your Trigger step (e.g. Salesforce in the previous example), we can [use the Slack integration for Zapier to look up the Slack User ID of that person](/integrations/zapier#find-the-slack-id-of-a-person). You can use their name or email address in that Slack step to find their Slack User ID.

### Filling in the Intake Form of the Workflow or Ticket

Once you've filled in the Slack ID of the person starting the instance, you can now move on to providing data for each of the intake form fields. These will be listed after the "Slack User ID of user starting this workflow/ticket" field:

![The full list of fields for starting our workflow.](/files/-MlLxWUAKK2HoUndDpv7)

When you click into each of these fields, Zapier will give you a drop-down menu that lets you use data from previous steps in your Zap to populate this field dynamically:

![Inserting data from previous Zap steps.](/files/-MlLyaH9E7mtvWTSXUTC)

In the example above, our trigger is when a new message is posted to a channel in Slack, so we get a bunch of Slack-specific data like what the channel's name was. In your Zap, your drop-down will have data specific to your trigger.

{% hint style="info" %}
Zapier doesn't show *all* of the data you can insert by default. Click on the "Show all options" button (you can see it in the screenshot above) and you will have access to the many data points from your previous Zap steps.
{% endhint %}

## Using the Slack Integration with Zapier to Find Users

### Find the Slack ID of a Person

When you're starting a Wrangle workflow or ticket via Zapier, you'll need to know the Slack User ID of the person kicking off the flow. Thankfully, you can use Slack's Zapier integration to find their ID.

First, insert a step *between* your Trigger and your Action (the Action is the step where you're starting the Wrangle workflow). Choose Slack as the app you want to use at this new middle step:

![Inserting a Slack step in between the Trigger and the Action steps.](/files/-MlLzjZhmAzneOu6JicG)

In this Slack step, under Action Event, you'll want to scroll to the bottom until you can see the "Search" category:

![Choose one of the "Search" options.](/files/-MlM-0FcQQn3VCMj78RR)

You'll want to pick one of the "Find User" options, most likely either "by Name" or "by Email". That way, you can use the name or email of the user provided by your Trigger step to find their Slack User ID.

When you test out the step, you'll get back lots of data from that user's Slack profile. But, we only need the ID field:

![Testing out a "Find User in Slack" step so we can find the ID of the person who will be starting our workflow.](/files/-MlM29k8c57-ByjtBX4C)

Now that we've got our Slack step working, we can go on to our Wrangle action step and insert the ID into the "Slack User ID of user starting the workflow" field:

![Back on our Wrangle action, we can now insert the ID from our "Find User in Slack" step.](/files/-MlM2jbl9v2hTijfrnku)

{% hint style="info" %}
The Slack User ID will always look like uppercase letters, starting with a U or a W. They are not the same as the Slack username, which is what you sometimes use to @-mention them in Slack.
{% endhint %}

### Find out who has a certain Slack ID

When you're using Wrangle as a Trigger, Wrangle provides data that might include a Slack User ID:

* You'll see a "Requester" field — that lists who started this workflow instance, including both their name and Slack User ID.
* If your intake form has fields to pick a user, the "Form Data" returned by the Wrangle trigger in Zapier will have the ID(s) of any users chosen in the form.

If you want more context on those users beyond their Slack User IDs, like their name or email address, you can use Slack's integration with Zapier to find that data.

To get started, go view your Zap in Zapier's designer. You'll want to add a Slack step *after* your Wrangle trigger, like this:

![Adding a Slack step after our Wrangle trigger step.](/files/-MlM4HDMhmcN7TQVVfy1)

When choosing which action to use on the Slack step, scroll to the bottom to find the "Search" section. You'll then want to pick "Find User by ID" since we have the ID from our Wrangle step.

Once you've chosen "Find User by ID", you'll have a field to put in the ID. Here's what it looks like when you click on that field:

![Clicking on the ID field brings up data from previous steps.](/files/-MlM5E0x7soUWaC0-Pxd)

You'll likely not see the Requester ID in those top 3 results from our "Workflow Completed in Wrangle" step. **Click on Show all options**. This will expand the list and you can find "Requester Slack User ID". Click on it to insert it into the field:

![Insert the "Requester Slack User ID" data from your Wrangle step.](/files/-MlM5AYZFcMx5XPhubhq)

Now test this Slack step and you'll see all the information Slack knows about this person, including their name and possibly their email address:

![Getting results after searching Slack for a user's ID.](/files/-MlM5wRmduxO0A-BKwE_)

Now, you can use the results of this Slack data about the user in subsequent steps in your Zap. For example, you could log their email address along with the data from Wrangle's intake form in a Google Sheet.


# Troubleshooting Your Zap

Use this guide to troubleshoot common errors and ensure your Wrangle integration runs smoothly

Once you've [created your Zap](/integrations/zapier), we recommend closely monitoring your [Zap history](https://help.zapier.com/hc/en-us/articles/8496291148685-View-and-manage-your-Zap-history) for errors. Sometimes the test data you used while setting up your Zap isn't fully representative of your actual production data, and you may find that unaccounted-for errors crop up over time.

By keeping a close eye on your Zap after publishing it, you can catch and resolve any potential errors early. Below we'll walk you through some common issues to look out for.&#x20;

### Common errors when connecting Wrangle

| Error Message                    | How to Resolve                                                                                                   |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| Invalid API key or Workspace ID. | Check that your API key and Workspace ID match your login details [here](https://slack.wrangle.io/integrations). |

### Common errors when Wrangle is the trigger

| Error Message                                                  | How to Resolve                                                                                                                                                       |
| -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| This workflow has been archived, so you cannot use it in Zaps. | Once a workflow has been [archived](/workflows/designing-a-workflow/editing-workflow-settings-and-design#archive), it cannot be used again until it's been restored. |

### Common errors when Wrangle is the action

| Error Message                                                                           | How to Resolve                                                                                                                                                                                                                                                                                                                                                                                                           |
| --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 400                                                                                     | This can be a number of issues, but a good starting point is to ensure you have a valid ID in the "Slack User ID of user starting this Workflow" field. If you belong to multiple workspaces, make sure the ID in this field matches a user in the correct workspace and that they have at least the [Requester permission](/workflows/designing-a-workflow/editing-workflow-settings-and-design#users-and-permissions). |
| Required field "Slack User ID of user starting this Workflow" (requesterId) is missing. | If you're using a variable from a previous Zap step to populate this field, make sure it is a valid Slack ID, not a username or email address. If your trigger does not populate a Slack ID, you may need to add a Slack action to find the appropriate ID.                                                                                                                                                              |
| Your input must be a string or number.                                                  | Make sure the variables you're inserting from a previous Zap step are formatted the same as your Wrangle form questions. For example, if your Wrangle form has a "Select a person" field, you'll need to insert a Slack User ID.                                                                                                                                                                                         |
| The value you provided is not one of the options in the list.                           | A value was sent to a list question in your Wrangle intake form that does not match one of your list options. If you're using an external form to fill out your Wrangle form via Zapier, make sure both forms have matching list options.                                                                                                                                                                                |

### Other common issues

| Issue                                                                                                       | How to Resolve                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ----------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| All your Wrangle timestamps include "Coordinated Universal Time"                                            | [Set your timezone](https://help.zapier.com/hc/en-us/articles/8496215472653-Zap-dates-or-times-are-incorrect) in your Zapier account settings, or use a [formatter step](https://help.zapier.com/hc/en-us/articles/8496257974029#1-add-a-formatter-step-0-0) in your Zap to change the date format.                                                                                                                                                                                                                                                                         |
| Your Wrangle step only identifies users by their Slack ID, but you need to use their name or email address. | <p>Add a "Find User" Slack action to your Zap.<br><br>If Wrangle is your trigger and you want to convert the user ID to a name/email address, use the "Find User by ID" action. Zapier will check Slack for the user matching that ID and return data like their username and email address.<br><br>If Wrangle is your action and you want to convert an email address to a user ID in order to kick off the workflow, use the "Find User by Email" Slack action. Zapier will check Slack for the user matching that email address and return data like their Slack ID.</p> |


# Zendesk

{% hint style="info" %}
The Zendesk Integration is available on the Scale Plan. To enable it, upgrade your account directly in the web app.
{% endhint %}

{% embed url="<https://youtu.be/BcZL30r9GqE>" %}

{% embed url="<https://www.youtube.com/watch?v=xZaC1EZC4h4>" %}
Send Zendesk tickets to Slack for escalation and action
{% endembed %}

## Zendesk Integration Guide for Wrangle

Zendesk is a popular customer service platform that helps businesses manage support tickets. Wrangle’s Zendesk integration lets you link your Wrangle inboxes with Zendesk groups to create a seamless experience for ticket handling. Here’s everything you need to know to get started.

### What you can do with Zendesk and Wrangle

Once connected, Wrangle and Zendesk can sync tickets in both directions. When you link a Wrangle inbox to a Zendesk group, here’s what happens:

* **Create**: New tickets created in Wrangle will also appear in Zendesk.
* **Update**: Updates to tickets (e.g., status changes, comments) will sync between Wrangle and Zendesk.
* **Delete**: If a ticket linked to Zendesk is deleted in Wrangle, it will also be deleted in Zendesk.

> This integration is designed for **workspace admins** to set up and manage. General users will be able to see the linked inboxes, but only workspace admins will be able to edit them. Let’s dive into how to connect Wrangle with Zendesk and start using it.

***

## How to Connect Wrangle with Zendesk&#x20;

Only **Workspace Admins** can connect Zendesk with Wrangle. Here's how to do it:&#x20;

1. Go to **API & Integrations** in Wrangle located on the bottom left.
2. Click on **Zendesk** in the top tab and choose **Connect**.
   1\.

   ```
   <figure><img src="/files/8bExLF4ftvSbfcrstLK9" alt=""><figcaption></figcaption></figure>
   ```
3. You’ll be prompted to enter your Zendesk Subdomain. You can find this in your Zendesk support URL.&#x20;

   1. For example: if your Zendesk support URL is **<https://my-company.zendesk.com>**, then your subdomain is "**my-company".**
   2.

   ```
   <figure><img src="/files/B0bqgDz46kTMQ6Hemigp" alt=""><figcaption></figcaption></figure>
   ```
4. When you click "Log into Zendesk", You will be prompted to authorize Wrangle to connect to Zendesk.
5. After successful authorization, you’ll see a confirmation message, and Zendesk will be listed as a connected service.
   1. ![](/files/jcqQIGmSqpBfrrq8QD2d)

***

## Linking a Wrangle Inbox to a Zendesk Group

Once you’ve connected to Zendesk, you can link a Wrangle inbox to a Zendesk group to sync ticket data.

**To link an inbox to a Zendesk group:**

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

* Navigate to **API & Integrations** > **Zendesk** and select the **Add Inbox** button on the button right.
* Select the Wrangle Inbox in the top drop down and pick the appropriate Zendesk group from the list you'd like it be connected to.
  * ![](/files/CnUOrxGl5y2lIlzJ5tEY)
* Click **Save and Close** to confirm.

***

## What Happens When You Link an Inbox:

When you link an inbox in Wrangle to a Zendesk group, ticket syncing begins. Here’s what you can expect:

### Ticket Creation

* If a new ticket is created in Wrangle, it will automatically appear in the linked Zendesk group.
* The ticket will include all the details from Wrangle’s intake form and follow the group’s default settings in Zendesk.

Your Wrangle tickets will have a tab called **Integrations** where you can find the corresponding Zendesk ticket link:&#x20;

<figure><img src="/files/TDMSAQj4vGN4dCD0EWgk" alt=""><figcaption><p>Wrangle ticket view</p></figcaption></figure>

When you click on the Zendesk Ticket link, it will take you to the Zendesk view of the ticket (see below).&#x20;

<figure><img src="/files/Xqoa0fKV26M9ebAnrB9r" alt=""><figcaption><p>Zendesk portal view</p></figcaption></figure>

### Ticket Updates

* Updates are synced bi-directionally. For example:
  * Changing the status (e.g., Open, Pending, Solved) in Wrangle will update it in Zendesk, and vice versa.
  * Comments and replies are also synced between Wrangle and Zendesk and Slack.
* Here are the fields that **are synced**:
  * **Ticket Title**
  * **Description**
  * **Status**
  * **Assignee**
  * **Public Comments**
  * **Private Agent Comments**
  * **Tags**
  * **Followers** (if follower's email exists in Zendesk)
  * **Priority**

> **Limitation:** Certain fields like **custom** **statuses**, **form fields**, and **internal notes** are not synced. Refer to the Limitations section for more details.

***

### Mappings Between Wrangle and Zendesk

#### **Status Mappings**

Wrangle statuses are mapped to Zendesk statuses as follows:

| **Wrangle Status** | **Zendesk Status** |
| ------------------ | ------------------ |
| NEW                | new                |
| CLOSED             | closed             |
| RESOLVED           | solved             |
| IN\_PROGRESS       | open               |
| ON\_HOLD           | pending            |

**Important:** Zendesk does not allow updates to tickets marked as **closed**. Wrangle will not process changes for closed tickets linked to Zendesk.

#### **Priority Mappings**

Wrangle priorities are mapped to Zendesk priorities as follows:

| **Wrangle Priority** | **Zendesk Priority** |
| -------------------- | -------------------- |
| LOW                  | low                  |
| MEDIUM               | normal               |
| HIGH                 | high                 |
| CRITICAL             | urgent               |

#### **Tag Formatting**

Zendesk does not allow spaces in tags. Any Wrangle tags with spaces will automatically be reformatted for Zendesk compatibility (e.g., `high priority` becomes `high_priority`). Newly added tags will also follow this rule.

#### **Automations**

Wrangle automations that reopen tickets upon receiving a reply will only work for tickets marked as **resolved** in Zendesk. Closed tickets cannot be reopened or updated due to Zendesk’s restrictions.

> When posting comments on behalf of another user, Zendesk will display:
>
> > "This comment was submitted by \[Your User] on behalf of \[Original User]."
>
> The user who authorized the Zendesk integration in Wrangle (e.g., Rachel Tublitz) will appear in this note.

### Ticket Deletion

* If a ticket is deleted in Wrangle, it will also be deleted in Zendesk to maintain data consistency.

{% hint style="danger" %}
**Warning:** This action cannot be undone. Deleting a ticket in Wrangle will permanently delete it in Zendesk as well.
{% endhint %}

***

## Disconnecting Wrangle from Zendesk

You can disconnect the Zendesk integration either at the **account level** or for a specific **inbox**.

#### Disconnecting the Entire Account

1. Go to **API & Integrations**
2. Click on **Zendesk Integration** and select **Disconnect**.
3. Confirm the action. This will remove the Zendesk connection for all inboxes.

> **Note:** Disconnecting at the account level will break all links between Wrangle inboxes and Zendesk groups.

#### Disconnecting a Specific Inbox

1. Go to **API & Integrations**
2. Click on **Zendesk Integration**
3. Click the **X** on the righthand side of the Inbox you'd like to disconnect from Zendesk.
4. Confirm the action. This will remove the Zendesk connection for this specific inbox.

<figure><img src="/files/P1Cfm8gPRYyKgBqVL8ka" alt="" width="563"><figcaption></figcaption></figure>

> **Tip:** If you need to link the inbox to a different Zendesk group, simply unlink it first, then follow the steps in the[ Linking a Wrangle Inbox](#linking-a-wrangle-inbox-to-a-zendesk-group) section.

***

## Setting Up Zendesk Groups

Before linking an inbox, ensure your Zendesk groups are properly set up:

{% stepper %}
{% step %}

### Log in to your Zendesk Admin profile

Go to your admin view in Zendesk. You can do this by going to your Zendesk admin domain.&#x20;

For example, if your Zendesk domain is "**my-company",** you can find your admin profile by going to **<https://my-company.zendesk.com/admin/home>**

{% endstep %}

{% step %}

### Observe which groups you have

You can find your Zendesk groups by navigating to **People > Teams > Groups** on the lefthand side bar.&#x20;

Once there, you can see which groups you have and create new ones if desired.&#x20;

<img src="/files/FftZCPtw7LzAnlU35ZWX" alt="" data-size="original">
{% endstep %}

{% step %}

### Add agents to the group who need access to tickets

Click on the group you'd like to edit, and then add users in your directory on the right hand sidebar as needed.&#x20;

***Its important to note that the agent's email address must match their email address in their slack profiles.***&#x20;
{% endstep %}
{% endstepper %}

***

## Installing the Wrangle App in your Zendesk App Drawer

Wrangle makes it easy to keep your team aligned by seamlessly pushing Zendesk tickets into Slack. With this integration, you can ensure that support teams, internal stakeholders, and cross-functional teams stay updated on important requests—without constantly switching between platforms.

<figure><img src="/files/JiKC0XlbLZBnDqLradfr" alt=""><figcaption><p>Using the Wrangle App inside of Zendesk</p></figcaption></figure>

#### What You Can Do with Wrangle’s Zendesk App:

✅ **Automatically send new Zendesk tickets to Slack** to notify your team in real-time.\
✅ **Update and comment on Zendesk tickets directly from Slack**, reducing response times.\
✅ **Sync ticket statuses** so everyone stays informed on progress.\
✅ **Collaborate seamlessly**, ensuring faster resolutions and better customer support.

In this guide, we’ll walk you through how to set up and use Wrangle inside Zendesk to push tickets to Slack and streamline your workflows. Let’s get started!

{% embed url="<https://youtu.be/4dq-AEE9Kh8>" %}

{% stepper %}
{% step %}

### Step 1

To begin the installation of the Wrangle app in your Zendesk workspace, navigate to the Zendesk admin center. On the left-hand side, select "Apps & Integrations," then choose "Zendesk Support Apps." Here, you will see a list of your currently installed apps and an option to visit the Marketplace for exploring new apps.
{% endstep %}

{% step %}

### Step 2

In the Marketplace, use the search bar to type in "Wrangle" to find the app. Follow the on-screen instructions to proceed with the installation of the Wrangle app. After installation, select the Zendesk workspace where you wish to enable Wrangle support.
{% endstep %}

{% step %}

### Step 3

Fill out the necessary information, including the API token, Slack workspace ID, and Slack user ID. This information can be located in your Wrangle dashboard under "API Integrations." Copy the API token from the API tab.

Utilize the copied API token, Slack workspace ID, and Slack user ID to complete the Wrangle app details in Zendesk. Once completed, finalize the installation.
{% endstep %}

{% step %}

### Step 4

With the Wrangle app installed in Zendesk, you can now push Zendesk tickets directly to Slack. In Zendesk, select a ticket and use Wrangle to send it to Slack.

On the right-hand side of the screen, open the app drawer to confirm that Wrangle is installed.

Choose the ticket you want to send to Wrangle and select the inbox destination. The ticket will now reside in both Slack and Wrangle, with a direct link to the Slack thread.
{% endstep %}
{% endstepper %}


# Managing Incoming Workflow Requests

If you've been assigned to complete work in a workflow, use this guide to learn how to manage requests as they come in.

There are several ways to manage the work you've been assigned from a workflow. In this guide we'll walk you through each of them.

* **Wrangle Slack app** - Best for people who are frequently assignees on several distinct workflows, and who prefer working from Slack
* **Wrangle web app** - Best for people who are frequently assignees on limited distinct workflows, and who prefer a "power user" dashboard
* **Slack notifications and threads** - Best for people who are infrequently assignees and who prefer an "inbox zero" style of Slack usage

Watch our video below, or read on to learn more.

{% embed url="<https://youtu.be/3B5thpEJEf4>" %}

### Wrangle Slack app - Starring the app

If you're assigned to multiple Wrangle workflows and prefer to work from Slack, the Wrangle Slack app is for you.

To manage your open items directly from Slack, we recommend using the Wrangle Slack app and starring it so it stays pinned in your sidebar. If it's not already in your sidebar, you can search Slack for "Wrangle" to find the app.

Then, to ensure Wrangle remains in your sidebar, you can open the Wrangle app menu, click the star icon, then move to "Starred."

<figure><img src="/files/ercM0JqKcbdNNnwcodxS" alt=""><figcaption><p>Move Wrangle to your Starred items to ensure it's always visible in your Slack sidebar.</p></figcaption></figure>

### Wrangle Slack app - Setting up and using filters

Once you've starred the Wrangle Slack app, you now have a one-stop shop for everything that's assigned to you.

Use the "My Approvals/Tasks" view to create custom filters of everything that needs your attention. Click the "More Options" button under the "Filters" subheading.

<figure><img src="/files/FH4pSWbwoaiGi98kjpj4" alt=""><figcaption><p>Ensure you're on the My Approvals/Tasks view using the rightmost menu, then click "More Options" to set up your custom filters.</p></figcaption></figure>

Use these filters to find open tasks or approvals that need your input, respectively:

<div><figure><img src="/files/AYrWIxOrCEmjqTougFL0" alt=""><figcaption><p>Find tasks that are waiting on you</p></figcaption></figure> <figure><img src="/files/GtN7VpUvfzYiPMIIGOaS" alt=""><figcaption><p>Find approvals that are waiting on you</p></figcaption></figure></div>

If there are any outstanding items, you'll get a list of clickable links that go directly to the thread where you can take action.

### Wrangle web app

If you prefer working from the web instead of Slack, you can use Wrangle's workflow dashboards to manage open requests. This works best if you're assigned to only a few workflows, as each workflow has its own dashboard and you'll need to check each one individually.

To get started, sign into the Wrangle web app [here](https://slack.wrangle.io/workflows). At a glance, you'll be able to see how many instances are in progress for each workflow. For example, let's say in the example below you are responsible for both the "Employee Offboarding" and "Employee Onboarding" workflows. There are no in-progress instances for the offboarding workflow, but there is one in progress for the onboarding workflow, so you know right away to focus on onboarding.

<figure><img src="/files/MB8wMzIcHkKNI7v8KUsN" alt=""><figcaption><p>Use the in-progress counters to see which workflows have the most active instances.</p></figcaption></figure>

Click on the name of the workflow you'd like to check to get to its workflow dashboard. Then, use the dashboard filters to find instances that are assigned to you.

<figure><img src="/files/a8Z5GccrPLk4WW1u91q2" alt=""><figcaption><p>Use the "Assignees" filter to find instances where the current step is assigned to you.</p></figcaption></figure>

Then, you can click on an instance to take action directly from the web.

<figure><img src="/files/tFcQ6wjquDsgkrNMjo2n" alt=""><figcaption><p>Complete work assigned to you from the web.</p></figcaption></figure>

### Slack notifications and threads

Another way to keep up with the work you've been assigned is using your Slack notifications and unread threads. Every time you're assigned to a workflow step, you'll be at-mentioned in the Wrangle workflow thread, which will appear in your Threads counter.

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

If you're used to keeping your notifications at "inbox zero," then you can keep track of your assigned work by keeping an eye on your unread threads. But if you're looking for a dedicated spot in Slack to track those open requests, we recommend using the My Approvals/Tasks view in the Wrangle Slack app.


# Wrangle App Home

The Wrangle App Home in Slack is where you'll find shortcuts to all the key Wrangle features and help resources, as well as any outstanding to-dos and requests you've created.<br>

### Create Wrangle Items

Use the "Start Ticket" and "Start Workflow" buttons to create a request directly from the App Home, and use the "Wrangle Dashboard" button to open the Wrangle web app.

### Find Wrangle Items

And in the **"My Items"** section, use the the following filters to find items associated to you:&#x20;

{% stepper %}
{% step %}

### Waiting on Me

View all workflows and tickets that require your immediate action. This filter ensures you can easily prioritize tasks that need your attention. These are tickets that you are assigned to as an agent, or workflows that are pending a task, form, or approval step from you.
{% endstep %}

{% step %}

### Created by Me

See all workflows and tickets that you initiated. Use this view to track progress and stay updated on the items you’ve created.
{% endstep %}

{% step %}

### Followed by Me

Find workflows and tickets you are following to stay informed about updates, even if you’re not directly responsible for the task.
{% endstep %}
{% endstepper %}

<figure><img src="/files/tIEiDAdvdeQ04zVt5K8j" alt=""><figcaption><p>Toggle between "Waiting on Me", "Created by Me", and "Followed by Me"  to track your personal to-dos and requests.</p></figcaption></figure>

The Wrangle App Home is also where you'll periodically receive messages from us, including information about new features being released, as well as any [workflow](/workflows/designing-a-workflow/editing-workflow-settings-and-design#export-history) or [ticket exports](broken://pages/EoclPbGUEAkvi6bNMgPX#export-history) you've requested.


# Rolling out Wrangle to your Workspace

### Announcing Wrangle to Your Team

To ensure a smooth rollout of Wrangle.io to your Slack workspace, you can use this slack announcement template to introduce Wrangle to your team and optionally send it out via [Broadcast announcements](/broadcasts/broadcast-announcements). Customize it as needed to fit your channels, agents, and company guidelines. Additionally, consider these tips for a successful implementation:

* **Identify Wrangle Champions**: Designate a few team members as Wrangle champions who can help others learn the tool and answer questions.
* **Run a Live Demo**: Schedule a team meeting or training session to demonstrate how Wrangle works in your specific Slack channels.
* **Pilot First**: Test Wrangle in a smaller team or department to work out any kinks before a full rollout.
* **Highlight Use Cases**: Share specific examples of how Wrangle will help solve common team challenges, like streamlining ticket management or improving response times.
* **Monitor and Iterate**: Collect feedback from the team after the initial rollout and make adjustments to workflows or Wrangle configurations as needed.

***

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

{% hint style="success" %}
Copy and Paste this message below for a quick and easy announcement of how to use Wrangle for your co-workers!  Use [broadcasts](/broadcasts/broadcast-announcements) to send it quickly to a list of Slack channels and users. &#x20;
{% endhint %}

> **Wrangle Ticket Automation is Here!** :rocket:
>
> Hi Team! 👋
>
> We’re thrilled to share that Wrangle is now live in our Slack workspace, making it easier than ever to create and manage tickets! <br>
>
> #### What’s in it for you?
>
> Wrangle streamlines ticketing directly in Slack, offering multiple ways to create, track, and manage tickets—all without leaving Slack!
>
> #### ⚙️ HOW TO CREATE TICKETS
>
> **Use the Wrangle App**
>
> * Open the Wrangle app from the Slack sidebar.
> * Select **“Create a Ticket”** and follow the prompts to add ticket details.
>
> **Use the `/wrangle` Command**
>
> * In a ticketing channel (e.g., #support, #operations), type `/wrangle` and hit enter.
> * Fill out the form that appears and submit your ticket.
>
> **Post in an "Ask" Channel**
>
> * In channels like **#ask-it**, simply post your request for help.
>
> * Wrangle automatically detects and converts clear, specific requests into tickets.
>
> **📣 MANAGING TICKETS + FOLLOW UPS**
>
> **Reply to a Ticket**
>
> * Ticket threads will appear in the relevant Slack channel.
> * Respond directly in the thread to ask questions, provide updates, or follow up.
>
> **Track Ticket Status**
>
> * **In Slack**: Open the Wrangle app in the sidebar to view your “Created by Me” items.
>
> * **In Wrangle.io**: Log in to the Wrangle dashboard for a detailed overview of all tickets, statuses, and updates.
>
> #### 💡 WHY WRANGLE IS AWESOME
>
> * **Easy Ticket Creation**: Use the Wrangle app, /wrangle command, or just post in an "ask" channel.
> * **Seamless Collaboration**: Manage tickets directly in Slack, no switching platforms needed.
> * **Comprehensive Tracking**: Stay up to date with ticket statuses in Slack or the Wrangle dashboard.<br>
>
> For additional help, check out the Wrangle Help Docs. If you have any questions, feel free to contact the IT team!
>
> Let’s get Wrangling!&#x20;

***

### Installing the Wrangle Slack App

To enable your team to use Wrangle directly within Slack, follow these steps to guide your colleagues through the installation process:

1. **Open Slack**: Ensure you're signed into the workspace where you want to install the Wrangle app.
2. **Visit the Slack App Directory**:
   * On desktop: Click on the **"Apps"** button in the left sidebar.
   * On mobile: Tap on the **"More"** button (three dots), then tap **"Apps"**.
3. **Search for Wrangle**: In the search bar, type **"Wrangle"** and select the app from the results.
4. **Install Wrangle**:
   * Click the **"Add to Slack"** button.
   * If prompted, select the workspace you want to install Wrangle to.
5. **Grant Permissions**: Review the permissions Wrangle requires. Click **"Allow"** to proceed.
6. **Complete Setup**: Once installed, follow any additional prompts to complete the setup, and you're ready to start using Wrangle within Slack!

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

If your co-workers need any further assistance, please let them know they can reach out to the support team or refer to this guide for help!


# Ticketing for Field Teams and Mobile Users

In this guide, we’ll cover best practices for using a Wrangle inbox when your requesters primarily work from mobile. While you can configure your inbox a number of different ways, we have some specific recommendations for reducing friction for your requesters on mobile.

### Inbox setup

For the most seamless experience for your requesters, enable [automatic ticket creation](/tickets/creating-tickets#auto-creating-tickets) in your inbox settings, and *don’t* include any custom form fields. This ensures that requesters only need to add a message in your inbox channel in order to create a ticket. And to ensure they’re kept in the loop as you work on their ticket, enable [requester notifications](broken://pages/EoclPbGUEAkvi6bNMgPX#automations).

### Creating and tracking tickets on mobile

Once you have your inbox ready with automatic ticket creation and requester notifications, your requesters just need to add a message to your inbox channel in order to submit their request. They’ll immediately see the Wrangle ticket show up in their threads, and if you’ve enabled requester notifications, they’ll also get a notification whenever an agent claims and resolves the ticket.

<figure><img src="/files/stTt89PC2kzI9hOau1S2" alt="" width="222"><figcaption><p>Automatic ticket creation on mobile</p></figcaption></figure>

Requesters can see a list of all their tickets from the Wrangle Slack app. Rather than trying to hunt through the inbox channel or their threads for the ticket thread, requesters can simply open the app, scroll to “My Items,” and use the “Created by me” filter. They’ll get a list of all their tickets and can open any ticket thread directly to check the status, ask questions, etc.&#x20;

<div data-full-width="true"><figure><img src="/files/kEEarGQpLC6pAYWDHALb" alt="" width="375"><figcaption><p>My Items on mobile</p></figcaption></figure></div>

{% hint style="info" %}
We recommend that any Wrangle users, both agents and requesters, star the Wrangle Slack app to ensure it’s always visible from the Slack sidebar.
{% endhint %}


# Recipes

Use our step-by-step recipes to achieve specific outcomes with Wrangle and our integration partners.&#x20;

{% content-ref url="/pages/tMZi9e8lL4zs6WeCK0xL" %}
[Recipe: Create a recurring workflow using Zapier](/best-practices/recipes/recipe-create-a-recurring-workflow-using-zapier)
{% endcontent-ref %}

{% content-ref url="/pages/MIpGQKxG6PC6n7EHOIFr" %}
[Recipe: Create a recurring workflow using Slack Workflow Builder](/best-practices/recipes/recipe-create-a-recurring-workflow-using-slack-workflow-builder)
{% endcontent-ref %}

{% content-ref url="/pages/V3qXbQX7oF1jhI30cTWk" %}
[Recipe: Send your intake form data to Google Sheets using Zapier](/best-practices/recipes/recipe-send-your-intake-form-data-to-google-sheets-using-zapier)
{% endcontent-ref %}

{% content-ref url="/pages/eqT5SubKaSS2jYTaJLTX" %}
[Recipe: Send your intake form data to Google Sheets using Slack Workflow Builder](/best-practices/recipes/recipe-send-your-intake-form-data-to-google-sheets-using-slack-workflow-builder)
{% endcontent-ref %}


# Recipe: Create an inbox or workflow for external requesters

Learn how to set up a Wrangle ticketing inbox or workflow for requesters who don’t belong to your workspace.

{% hint style="info" %}
Ingredients needed:&#x20;

* A Wrangle ticketing inbox OR a Wrangle workflow
* A Zapier account
* Google Forms (or any other form app that’s compatible with Zapier)
* Optional: Email
  {% endhint %}

If you have customers, vendors, or any other external stakeholders who you’d like to be able to start a Wrangle request, you can create an external request form and connect it to Wrangle using Zapier. In this walkthrough, we’ll use Google Forms as our example, but the setup steps will be similar for any other form app in Zapier.\
\
Your final process will essentially follow these steps:&#x20;

* Requester fills out a Google form
* Zapier sends the Google form responses to Wrangle
* Wrangle kicks off the request using those responses
* Your team resolves the request in Slack
* (Optional) In a second Zap, when the Wrangle request is completed, Zapier sends a confirmation to your requester via email

### Setting up your forms (Google Forms and Wrangle)

To start, create two identical forms: one in Google Forms, and one in Wrangle. If you’re using a workflow, your Wrangle form will be your intake form. If you’re using a ticketing inbox, you'll instead use form questions in your inbox settings.

<div><figure><img src="/files/RRlp87qmhg3IMonUWOKN" alt="" width="493"><figcaption></figcaption></figure> <figure><img src="/files/ZjQcH0Qf5EufYtJpTBV9" alt=""><figcaption></figcaption></figure></div>

{% hint style="danger" %}
If your form includes a list question, make sure the text of each list option matches exactly between your Google form and your Wrangle form. If a single character is different, the response won’t be passed to Wrangle. This is especially important if the question is marked as required in Wrangle. Any errors here will prevent the Zap from running, and the workflow won’t be triggered.
{% endhint %}

<figure><img src="/files/rMXMX6iUG6SREJ6IOT2U" alt="" width="519"><figcaption><p>Your list questions must match each other exactly</p></figcaption></figure>

### Creating your Google Forms Zap trigger

Once your forms match and your inbox or workflow has been saved, you’re ready to create your Zap.\
\
Let’s start with the trigger: choose Google Forms, then select the “New Form Response” trigger.

<figure><img src="/files/hkB6Wq9FPkhl6z2hnUDW" alt="" width="563"><figcaption><p>Choose "New Form Response" as your Zap trigger</p></figcaption></figure>

Connect your Google account, find your form, and test your trigger. A successful test will return sample responses to your form that we'll use in the next step.

<figure><img src="/files/36SEedsnLzDdHactEy9S" alt="" width="563"><figcaption><p>Test data from your trigger</p></figcaption></figure>

### Configuring your Wrangle Zap action

After testing your trigger, it's time to set up your action. Add an action, choose Wrangle as the app, then select either "Start a Ticket" or "Start a Workflow." If you're using the "Start a Ticket" action, you'll then need to choose your Wrangle inbox. And if you're using the "Start a Workflow" action, you'll need to choose your workflow.

<figure><img src="/files/c2lz3g74kyVWlwbP0UQy" alt="" width="563"><figcaption><p>Choose either "Start a Workflow" or "Start a Ticket" as your action</p></figcaption></figure>

Once you’ve done that, you'll be able to see your Wrangle form fields in the Zap editor. Using variables, insert the form responses from your Google Forms trigger to the corresponding Wrangle form field.&#x20;

<figure><img src="/files/8xA9hu1bEY2sThq0X2ol" alt="" width="563"><figcaption><p>Use variables to map your Google form fields to your Wrangle form.</p></figcaption></figure>

{% hint style="info" %}
Use your Slack ID (found [here](https://slack.wrangle.io/integrations)) as the Slack User ID of user starting this Ticket/Workflow&#x20;
{% endhint %}

After you've set up your action, you're ready to test and publish your Zap!

### Optional: Notify your requester via email once the request is complete

If your original form collects your requester's email address, either automatically or in a question, you can use a second Zap to send them a notification when their issue is resolved.\
\
Your second Zap will follow this framework:

* **Trigger**: Ticket Completed or Workflow Completed (Wrangle)
* **Action**: Send Email (I’m using the "Email by Zapier - Send Outbound Email" action in this example, but Zapier also has Gmail and Outlook connections)

Start by choosing the specific inbox or workflow you'll use to trigger the notification.

<figure><img src="/files/JRTw6yOKCXiL3bvSwtzr" alt="" width="563"><figcaption><p>Choose your Wrangle trigger.</p></figcaption></figure>

Next, set up your email action using the email provider of your choice. You can use data from the workflow or ticket to populate the email notification, including the requester’s email address, the name of their request, and so on. If your workflow or ticket includes a field for a Wrangle agent or assignee to add a note to the requester, you can also include that note as part of your notification.

<figure><img src="/files/LnaIOCFZNhAW16GTA11G" alt="" width="563"><figcaption><p>Our workflow includes a form step that one of our teammates fills out to send a message to the requester, so we've included that in our email notification Zap.</p></figcaption></figure>

Once you've finished setting up your email action, you're ready to test and publish!

<figure><img src="/files/Ba6pCEkQkzeQl3nchuRc" alt=""><figcaption><p>An example of what your email notification might look like.</p></figcaption></figure>

###


# Recipe: Create a recurring workflow using Zapier

Use this guide to create a recurring, scheduled workflow using Wrangle and Zapier.

{% hint style="info" %}
**Ingredients needed**:

* A use case for a recurring, scheduled workflow. For example:
  * Daily opening and closing tasks for office managers or retail workers
  * Weekly timesheet approvals
  * Monthly KPI/OKR updates
* Edit access for your Wrangle workflow
* A [Zapier](https://zapier.com/) account
  {% endhint %}

Let’s start with your Wrangle [intake form](/workflows/designing-a-workflow#designing-your-intake-form). We recommend having only one question in the form called “Date” and setting it as a short answer question, not a “Select a date” question. Your form should look something like this:

![](/files/R1vvGmtMstTwovtjhf6M)

The reason for only having a short-answer “Date” question is that unlike having a requester manually fill out an intake form for context, Zapier will fill out your intake form programmatically.

The rest of your workflow can be customized to fit your needs with whatever approval and/or task list steps you’d like. Once you’ve saved your workflow in Wrangle, it’s time to finish building out your automation in Zapier.

{% hint style="info" %}
If you haven’t already connected Wrangle to your Zapier account, follow [these instructions](/integrations/zapier#connecting-wrangle-to-zapier).
{% endhint %}

## Set up your Schedule trigger

In Zapier, create a new Zap, and in the "Select a Trigger" modal, choose the “Schedule” option.

![](/files/VXIsDSD8lqv6HmL2XuOM)

Choose your frequency under “Trigger Event” to set up either an hourly, daily, weekly, or monthly recurrence, then finish customizing your trigger based on what frequency you select.

![Choose your trigger's recurrence schedule.](/files/z3PRDsjFuRb3JMOkommN) ![Customize your trigger.](/files/AX2vyvwUHrFyuEYFoqwp)

Test your trigger (Zapier will return a number of different date formats), then continue on to set up your Zap’s action.&#x20;

## Set up your Wrangle action

Use the search bar under “App Event” to find and select Wrangle.

![](/files/a9G3VKJin11BHjPuKdJW)

You’ll be prompted to select an Action Event; choose “Start a Workflow” then “Continue.” Then, choose your Wrangle account to continue setting up your action.

![Select "Start a Workflow."](/files/BHubc6s38KgRe5fJDpEY) ![Choose your Wrangle account.](/files/LuoC0IDU42oZLTDOEJ55)

From the "Set up action" step, select your workflow, enter your Slack User ID, and choose the date format you’d like entered into your “Date” intake form question. We recommend Slack’s “Pretty Date” option.

![Enter your Slack User ID and select a date format.](/files/KHmh8ydtaXzcAxL0WGnI)

{% hint style="info" %}
Not sure where to find your Slack User ID? You can find it under “Step 2: Zapier Login Details” [here on our integrations page](https://slack.wrangle.io/integrations).
{% endhint %}

Finally, you’ll be prompted to test your Zap. After you’ve tested it, you should see something like this in your Slack workspace:

![Notice the instance name includes the date format (May 5, 2022) that we chose in the previous step.](/files/r371Gd2HNbuu2mEfV8dy)

Once you’ve successfully tested your workflow, you’re ready to turn on your Zap!

![Click "Turn on Zap" to start automating your workflow!](/files/R8pmKsMkmqJ1zSH28VYj)


# Recipe: Create a recurring workflow using Slack Workflow Builder

Use this guide to create a recurring, scheduled workflow using Wrangle and Slack Workflow Builder.

{% hint style="warning" %}
This integration is only compatible with the legacy version of Slack Workflow Builder (SWB). Starting in August 2023, Slack will begin migrating existing SWB workflows to [their new version](https://slack.com/help/articles/16787711643411-Migrating-legacy-workflows-to-the-new-version-of-Workflow-Builder).
{% endhint %}

{% hint style="info" %}
**Ingredients needed**:

* A use case for a recurring, scheduled workflow. For example:
  * Daily opening and closing tasks for office managers or retail workers
  * Weekly timesheet approvals
  * Monthly KPI/OKR updates
* Edit access for your Wrangle workflow
* Access to Slack Workflow Builder (by default, all members in a paid workspace have access)
  {% endhint %}

Let’s start with your Wrangle [intake form](/workflows/designing-a-workflow#designing-your-intake-form). We recommend having only one question in the form called “Date” and setting it as a short answer question, not a “Select a date” question. Your form should look something like this:

![](/files/R1vvGmtMstTwovtjhf6M)

The reason for only having a short-answer “Date” question is that unlike having a requester manually fill out an intake form for context, Slack Workflow Builder (SWB) will fill out your intake form programmatically.

The rest of your workflow can be customized to fit your needs with whatever approval and/or task list steps you’d like. Once you’ve saved your workflow in Wrangle, it’s time to finish building out your automation in Slack Workflow Builder.

In [Slack Workflow Builder](https://app.slack.com/workflow-builder/), click Create, then name your new workflow. Then, when prompted to choose how to start your workflow, select "Scheduled date & time."

![Choose "Scheduled date & time"](/files/h8TpX3qeW7KgQU4xPOmp)

\
Then, customize the start date, start time, and frequency of your recurring workflow:

![SWB has both preset and customizable frequency options.](/files/0SBF582gbifUMqGsUn62)

Save your scheduled date and time settings, then click "Add step." On the "Add a workflow step" modal, search for "Start a Wrangle Workflow" and click "Add."

![Choose "Start a Wrangle Workflow"](/files/iM2YCyq0A0e5pmLI2Bi2)

When setting up your Wrangle step, select a user who will be considered to be the person starting your workflow. This will be the "Created By" user in your [workflow dashboard](/workflows/monitoring-and-managing-a-workflow/workflow-dashboard). Then, choose your Wrangle Workflow, and use "Time when workflow started" as the variable for your "Date" intake form question.

![](/files/d5GutVDP2fBmIYtIa9G0)

Now you're ready to publish your new workflow!&#x20;

![The instance name will be populated with the workflow start time stamp we added as a variable in the "Date" form question.](/files/oT60AHmwFnWdq8K3ki17)


# Recipe: Send your intake form data to Google Sheets using Zapier

Use this guide to

{% hint style="info" %}
Ingredients needed:

* Edit access for your Wrangle workflow
* A spreadsheet in Google Sheets where you'd like to pass your Wrangle form data
* A Zapier account
  {% endhint %}

While Wrangle includes both a [workflow dashboard](/workflows/monitoring-and-managing-a-workflow/workflow-dashboard) and a [CSV export](/workflows/designing-a-workflow/editing-workflow-settings-and-design#export-history), you might find that you'd like a bit more flexibility in your reporting, like being able to analyze specific values from your [intake form](/workflows/designing-a-workflow#designing-your-intake-form) or [form steps](https://docs.wrangle.io/workflows/designing-a-workflow#form-steps). You can easily create an automation that sends each workflow instance's form values to a Google Sheet using Zapier.\
\
Let's start with your spreadsheet. Your sheet should include column headers that correlate to your form fields. You can also include columns for requester name, workflow started date, and workflow completed date. \
\
For example, if this is our Wrangle form:

![](/files/RnbRwFDCAMKU3wN5fX3j)

Then our column headers in Google Sheets will look something like this:

![Each column corresponds to a form question, plus we've added "Requester Name," "Workflow Started," and "Workflow Completed."](/files/nshPIusmPFfp6Mvu24rm)

Now we're ready to start building our Zap.&#x20;

{% hint style="info" %}
If you haven’t already connected Wrangle to your Zapier account, follow [these instructions](/integrations/zapier#connecting-wrangle-to-zapier).
{% endhint %}

## Set up your Wrangle trigger

In Zapier, create a new Zap, and in the "Select a Trigger" modal, search for "Wrangle."

![Search for Wrangle.](/files/tfub58yi7lyVB2uaebSJ)

Choose "Workflow Completed" as the Trigger Event, then choose your Wrangle account to continue setting up your trigger.

![Choose "Workflow Completed"](/files/s8DfosR4Jy1daB5ZDLNo) ![Connect your Wrangle account.](/files/1WA9NMNW5zZiF8sL1Aa6)

Under "Set up trigger," choose the workflow whose data you'd like sent to Google Sheets, then click "Continue."

![Find your workflow.](/files/mVcBI0raELzhvaKUFTSP)

You'll then be prompted to test your trigger.&#x20;

![Successful test showing intake form values.](/files/xfc2gPuhgL9jWBENYGxK)

## Set up your Sheets action

In the Action modal, choose "Google Sheets" under "App Event."

![Find Google Sheets.](/files/fObFoL8QSa6IlXt6w8Ua)

Under "Action Event," choose "Create Spreadsheet Row." This will add a new row of data for every instance of your workflow. Then, connect your Google Sheets account and continue.

![](/files/tvcBFjOEEF9BxPof6nBQ) ![](/files/bxanucXVBqaIotsmYRHm)

Under "Set up action" find your spreadsheet and worksheet where you'd like to start sending your workflow data. Then, under each of your column headers, insert the corresponding Wrangle form field as a variable. Your finalized action should look something like this:

![Insert variables using test data from your Wrangle trigger.](/files/33lWkMRsMwMZFeubh3qC)

Finally, test your Sheets action. You should see a new row in your spreadsheet like this:

![](/files/k8PtmCYqE2J3sAHhADAw)

You're ready to turn on your Zap!

## Optional Step for "Select a Person" intake form questions

If your intake form has a "Select a person" question like our "Manager" question in the above example, you'll notice that their alphanumeric Slack ID is what's passed from Wrangle to Sheets. You can add an action between your Wrangle trigger and Sheets action that looks up the Slack user by their ID, which will then let you pass either their display name or email address to Sheets instead of their ID.&#x20;

{% hint style="info" %}
Adding a second action to a Zap requires a paid Zapier plan.\
\
"Select multiple people" and "Select a channel" form questions also pass alphanumeric IDs, but Zapier does not have an option to convert them to a more legible name.
{% endhint %}

To set this up, add a new action after your Wrangle trigger and before your Sheets action, and select Slack.

![](/files/nkH3DNPmhxUITpUq4x3h)

Under "Action Event," select "Find User by ID," then choose your Slack account and continue.

![Choose "Find User by ID."](/files/UXIgZU2tdP9aeazcyifN) ![Connect your Slack account.](/files/ZEwxlId0CePkrlzR6iPs)

In the "ID" field under "Set up action," insert your Wrangle form field with the "Select a person" question. If your "Select a person" question is required, you can answer "No" to "Should this step be considered a 'success' when nothing is found?" If it is optional, you can answer "Yes" to ensure the Zap continues to the Sheets action even when that question is left blank.

![Insert your "Select a person" form question as a variable under "ID."](/files/FXNr2cdQSmleYOYpsr0G)

Finally, in your Sheets action step, find the column header that corresponds to your "Select a person" question, and instead of inserting the variable from the "Workflow Completed in Wrangle" step, you can instead insert a variable from the "Find User by ID in Slack" step. In this example, we've chosen the user's display name.

![Insert either the user's Name or Email under the corresponding Sheets column header.](/files/4jFOLf9oqsCVBgbxWyrx)


# Recipe: Send your intake form data to Google Sheets using Slack Workflow Builder

{% hint style="warning" %}
This integration is only compatible with the legacy version of Slack Workflow Builder (SWB). Starting in August 2023, Slack will begin migrating existing SWB workflows to [their new version](https://slack.com/help/articles/16787711643411-Migrating-legacy-workflows-to-the-new-version-of-Workflow-Builder).
{% endhint %}

{% hint style="info" %}
Ingredients needed:

* Edit access for your Wrangle workflow
* A spreadsheet in Google Sheets where you'd like to pass your Wrangle form data
* [Google Sheets for Workflow Builder](https://slack.com/app-pages/google-sheets) installed in your Slack workspace
* Access to Slack Workflow Builder (by default, all members in a paid workspace have access)
  {% endhint %}

While Wrangle includes both a [workflow dashboard](/workflows/monitoring-and-managing-a-workflow/workflow-dashboard) and a [CSV export](/workflows/designing-a-workflow/editing-workflow-settings-and-design#export-history), you might find that you'd like a bit more flexibility in your reporting, like being able to analyze specific values from your [intake form](/workflows/designing-a-workflow#designing-your-intake-form) or [form steps](https://docs.wrangle.io/workflows/designing-a-workflow#form-steps). You can easily create an automation that sends each workflow instance's form values to a Google Sheet using Slack Workflow Builder (SWB).

{% hint style="warning" %}
If you use this recipe, your requesters will have to submit a request using a channel shortcut, rather than the "/wrangle" command in Slack. Alternatively, you could [launch the workflow via webhook](/integrations/slack-workflow-builder-1#launch-via-webhook), but this recipe assumes you will use the former method.
{% endhint %}

## Prep your Wrangle form and Google Sheet

Let's start with your form. There are a few ways that SWB's native form functionality differs from Wrangle's. See the below table to understand what changes you might need to make to your Wrangle form in order to make it compatible with SWB:

| If your Wrangle form has this: | Then change it to this in Wrangle: | And set it to this in Slack Workflow Builder: |
| ------------------------------ | ---------------------------------- | --------------------------------------------- |
| Select a date                  | Short answer                       | Short answer                                  |
| Number input                   | Short answer                       | Short answer                                  |
| Select from a list             | Short answer                       | Select from a list                            |

Let's move on to your spreadsheet. Your sheet should include column headers that correlate to your form fields. You can also include columns for requester name, workflow started date, and workflow completed date. \
\
For example, if this is our Wrangle form:

![](/files/Kdv1YEZ2tOmmZMuzlIvf)

Then our column headers in Google Sheets will look something like this:

![](/files/nshPIusmPFfp6Mvu24rm)

## Set up your Slack shortcut and form

Now we're ready to start building our Slack workflow. In [Slack Workflow Builder](https://app.slack.com/workflow-builder/), click "Create," then name your new workflow. Then, choose "Shortcut" under "Choose a way to start this workflow."

![Choose "Shortcut"](/files/h8TpX3qeW7KgQU4xPOmp)

Choose a channel and name your shortcut, then click "Next."

![Configure your shortcut.](/files/r9MtyfpoI9rngW2Z9MCA)

Add a workflow step, and choose "Send a form."

![](/files/8GgusY9vcTL0jsawz3Qi)

Create a form to match your Wrangle form questions, then click "Save."

![Match these form questions to your Wrangle form questions.](/files/rNPCUZNM9JdtOUMBdyQA)

## Set up your Wrangle workflow step

Now we're ready to add our next step, which is our Wrangle step. Under "Add a workflow step" choose "Start a Wrangle Workflow."

![](/files/jBlp4NLfWkSYZCe5GTJh)

Add "Person who submitted form" under "Which user is considered to be starting the Wrangle Workflow," choose your workflow, then use "Insert a variable" to map all the answers to the Slack form to your Wrangle form. Click "Save" when you're done.

![](/files/ywjvBmM3CfFa2g0DriJN)

## Set up your Google Sheets step

Now it's time to add our Google Sheets step. Under "Add a workflow step," find "Add a spreadsheet row."

![](/files/IiWDuqI1cDp8TYy14BiR)

Find your spreadsheet and sheet, then map your form fields to their respective columns using "Insert a variable." In addition to your form data, you can also add fields like the person who started the workflow, the time the Wrangle workflow step started, and the time the Wrangle workflow step completed.

![](/files/f435JNGwrkeMWA0VwsuD)

Publish your Slack workflow, and you're ready to go! Whenever a new request comes from your new channel shortcut, you'll see a new row in your Google Sheet like this:

![](/files/wZKk62YdRpDxcIGDHTkp)


# Broadcast Announcements

#### What are broadcasts?

Send formatted announcements from Wrangle to as many Slack channels and DMs as you need, whether you need to announce product launches, policy updates, maintenance windows, outages, or any other business need. &#x20;

#### Who can send a broadcast?

Broadcast announcements are currently offered for Slack only.  Any one in your workspace can send an announcement, and you can see who sent an announcement easily under each announcement title.&#x20;

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

#### How does it work?

First, you will want to create an [Audience](/broadcasts/audiences), which is the group of Slack channels or users who will receive your broadcast.  Then you can compose your announcement title and body, including markdown.  You can send a test DM to yourself to preview how the broadcast will look, and then either save it as a draft or send the broadcast to your audience. &#x20;

<figure><img src="/files/XkiFU7hkSvGmGB7ww8AV" alt="" width="563"><figcaption></figcaption></figure>

You can send either as yourself or the Wrangle bot.  Use the live preview on the right to verify markdown appears correctly, or go [here for a guide to using Slack markdown](https://www.wrangle.io/post/slack-markdown-a-comprehensive-guide-to-formatting-messages). &#x20;

#### Troubleshooting

If a broadcast fails to send, verify that the Wrangle bot or the user you are sending as is in the channel and allowed to post a message. &#x20;

If it appears some channels or users in a large audience do not receive your broadcast right away, keep in mind broadcasts to large audiences can take several minutes.  Our Wrangle bot will DM you once all broadcast messages have been delivered. &#x20;


# Audiences

#### What is an audience?&#x20;

An audience is a saved group of Slack channels and/or users - create an audience once, and reuse it many times. &#x20;

#### Creating an audience

To create an audience, go to **Broadcasts** in the main sidebar, and then **Audiences**.  Click **Add new audience**, name it, and then add however many Slack channels or users you want.  You can always edit an Audience later. &#x20;

<div data-with-frame="true"><figure><img src="/files/O27kesJwHPTxuZfNZNEd" alt="" width="563"><figcaption></figcaption></figure></div>

#### Editing and Deleting an Audience

Audiences can be edited at any time, whether you want to name it, or add or remove people and channels.&#x20;

For historical purposes, you cannot delete an audience once you have sent a broadcast to it.&#x20;


# Account Admins

Account admins are users will full admin access to all inboxes (except [confidential inboxes](broken://pages/88QuPeyYTVr0rwI6E0Xj)) and workflows in your Wrangle account.

The user in your workspace that installed Wrangle will become an account admin by default, and will have access to "Admin Settings" in the Wrangle web app:

<figure><img src="/files/8hzP7kqmSWZ8gybQIHZF" alt=""><figcaption><p>Admin Settings on the web</p></figcaption></figure>

{% hint style="info" %}
Admin Settings are only visible to account admins.
{% endhint %}

From the "Admin Settings" page, account admins can add and remove other admins:

<figure><img src="/files/drF7O8TCf8NfYEHln6Qm" alt="" width="536"><figcaption><p>Add and remove other account admins</p></figcaption></figure>

While account admins cannot remove themselves, any other admin can.&#x20;




---

[Next Page](/llms-full.txt/1)

