> For the complete documentation index, see [llms.txt](https://support.suptask.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.suptask.com/integrations-automations-and-workflows/integration-guides/how-to-automate-and-integrate-suptask-with-other-slack-apps.md).

# Integrate any app that posts in Slack

Learn how to automate and integrate with other messages and Slack Apps

Suptask reads messages posted by other apps and bots in Slack and can automatically create a ticket from each one. Any tool that can post to a Slack channel can therefore create tickets in Suptask - no API work, no middleware, no custom code.

This turns Slack into the connection point between your systems and your ticketing. An alert fires, an HR event happens, a form is submitted - the app posts a message, and Suptask makes it a ticket in the right Inbox for the right team.

Suptask can also work the other way around and trigger the other app, so a change on a ticket sets off work in your other systems. See [Trigger other apps from Suptask](/integrations-automations-and-workflows/integration-guides/how-to-automate-and-integrate-suptask-with-other-slack-apps.md#trigger-other-apps-from-suptask) below.

***

## How it works

1. Another Slack app posts a message into a Slack channel.
2. That channel is an **intake source** on a Suptask Inbox with the creation mode **Automatic**.
3. Suptask creates a ticket from the message, using the message content as the ticket description.
4. If the message contains **field markers**, Suptask extracts them and pre-fills the matching ticket fields.
5. The ticket is created with the Form offered on the source, routed to the Inbox, and the Agents are notified in their Responder channel.

From there the ticket behaves like any other Suptask ticket. Agents can assign it, reply, set fields, escalate it to another Inbox, or let an AI Assistant work on it.

{% hint style="info" %}
The message is both the trigger and the content. Whatever the app writes in the channel becomes the ticket, so the more structured the message, the more complete the ticket.
{% endhint %}

***

## Example use cases

* **Alerting and monitoring**\
  When a monitoring or alerting app posts an incident in a channel, a ticket is created automatically so the alert is remediated and followed up rather than scrolling away.
* **HR onboarding and offboarding**\
  Let your HRIS - such as HiBob, Rippling or BambooHR - post an event in a channel, and Suptask creates the onboarding or offboarding ticket for IT or HR.
* **Other ticketing systems**\
  When another system such as Zendesk is in use, have it post the ticket as a message in a channel and Suptask creates an internal ticket from it. Useful when several teams need to hand work to each other across systems.
* **Security and compliance**\
  Route findings from a security tool into a channel so each one becomes a tracked ticket with an owner and an SLA.
* **Deployments and CI/CD**\
  Turn failed builds or release events into tickets so follow-up work isn't lost in a busy channel.
* **Forms and intake tools**\
  Any form or intake tool that can post to Slack becomes a ticket submission channel.

***

## How to set up

{% hint style="info" %}
Get started by setting up [Automatic ticket creation](/working-with-tickets/for-agents-who-respond-and-manage-tickets/how-to-automatically-create-tickets-from-new-messages.md) on your Inbox.
{% endhint %}

Before setting up the integration, create a dedicated channel for it, where the other app can post messages and where Suptask can pick these up to create tickets. A private channel works well - nobody needs to read it, since the work happens in the tickets.

1. Create a **dedicated Slack channel** for the integration, for example `#alerts-to-tickets`.
2. Invite the **Suptask App** to the channel.
3. Open your **Inbox** in Suptask and go to the **Intake sources** tab.
4. **Add intake source** of the type **Slack channel**, select your new channel and set the **Creation mode** to **Automatic**.
   * [Learn more about Intake sources](/setup-and-configure/inboxes/intake-sources.md)
5. Select the **Form** to offer on the source and save.
6. Set up your other Slack App to **post messages** to that channel.

Post a test message in the channel to confirm the ticket is created before you switch the integration on for real.

***

## Pre-fill ticket fields from the message

A ticket built only from message text gives you a description and nothing else. If the other app can control what it writes, it can also set the ticket's fields.

Suptask analyses each message for **field markers** - short snippets of text that name a field and its value. The markers are extracted into the ticket fields, and the rest of the message stays as the description.

```
New incident reported. <<priority: High>> <<status: New>> Server outage detected.
```

This creates a ticket with the description "New incident reported. Server outage detected." and the priority and status fields already set.

Three syntax styles work the same way - use whichever your app can produce most easily:

| Syntax style        | Example                   |
| ------------------- | ------------------------- |
| **Angle brackets**  | `<<priority: High>>`      |
| **Square brackets** | `[[status: In Progress]]` |
| **Hash syntax**     | `#assignee=U123456789`    |

Both system fields and custom fields are supported, and matching is case-insensitive. A value that doesn't match an available option is simply ignored.

{% hint style="info" %}
Most apps that post to Slack let you build the message from a template. Put the field markers in that template once, and every ticket from that app arrives correctly categorized.
{% endhint %}

The full syntax reference - multi-select fields, conflict handling, escaping and validation - is documented here:

{% content-ref url="/pages/11343SZZJ8YQCfn445tH" %}
[Slack Workflows](/integrations-automations-and-workflows/integration-guides/how-to-use-slack-workflows.md)
{% endcontent-ref %}

***

## Set the requester

When another app posts the message, the message author is the app itself rather than a person. That matters, because the requester is who gets notified about the ticket.

If the app knows who the request concerns, include their Slack user ID as a field marker:

```
Onboarding for new hire starting Monday. <<requesterId: U934212312>>
```

Suptask then sets that user as the requester, and they're notified like any other requester.

{% hint style="info" %}
Without a requester marker, Agents may need to set the Requester field on the ticket after it has been created, in order to have the correct user on it.
{% endhint %}

***

## Choosing your channels

The intake source decides which Inbox a message lands in, and the Form offered on it decides what fields the ticket has.

* Use **one dedicated channel per integration** when different apps should reach different teams. `#hibob-events` as a source on the HR Inbox, `#monitoring-alerts` as a source on the IT Inbox.
* Use **one channel per event type** when the same app produces work for different teams. Let it post new hires to one channel and offboarding to another, each as its own source.
* Offer **one Form per source**. If several Forms are offered, Suptask asks the poster to pick one, which an app or bot cannot answer.
* Keep the channel **dedicated**. Every message in it becomes a ticket, including messages from people, so it isn't a place for discussion.

{% hint style="warning" %}
Every message posted in the channel creates a ticket - not just messages from the app. Keep conversation out of the channel, and discuss the work in the ticket thread instead.
{% endhint %}

***

## Fields on automatically created tickets

A Form offered on an Automatic intake source can have custom Fields, but they're **optional by default and can't be Required**, because nobody is prompted to fill them in. Agents can set them after the ticket has been created.

To get consistent categorization without asking anyone, use field markers in the message, set default values on the Form, or use Automations to set fields based on the ticket content.

{% content-ref url="/pages/zx2b3jBwDpuzxI47sgia" %}
[Automations in Suptask](/integrations-automations-and-workflows/how-to-set-up-automation-rules.md)
{% endcontent-ref %}

***

## Trigger other apps from Suptask

The same integration works outbound. With an Automation rule, Suptask can call a webhook when something happens on a ticket, which lets another app pick up the work.

1. In the other app, create the entry point that should receive the call and copy its **webhook URL**.
2. In Suptask, create a new **Automation** rule on the Inbox, and optionally a specific Form.
3. Define the trigger event, for example **New ticket created**, and any conditions.
4. Select the **Webhook** action and paste the webhook URL.
5. Save the rule.

The other app now runs whenever the Automation rule is triggered. Combined with inbound ticket creation, work can flow in both directions without either system talking to the other directly.

***

## Combine with AI Assistants

Automatic creation gets the work into Suptask. An AI Assistant can then take it further on the same ticket - reading context from your connected systems, answering, or carrying out the steps the event requires.

For example: your HRIS posts a new hire announcement, Suptask creates the onboarding ticket, and the Assistant creates the account in Google Workspace and adds the employee to the right groups - pausing for an agent to approve before anything changes.

{% content-ref url="/pages/7WEPMEAfx02Sp4yEhl36" %}
[Intelligence with Suptask AI](/suptask-ai/how-the-ai-assistant-works.md)
{% endcontent-ref %}

***

## Troubleshooting

* **No ticket is created** - check that the Suptask App is in the channel, that the channel is part of an intake source with the creation mode **Automatic**, and that a Form is offered on the source.
* **Tickets land in the wrong Inbox** - the channel is part of an intake source on another Inbox. Move the app to its own channel, or add the channel to a source on the right Inbox.
* **Only some messages become tickets** - confirm the app is posting to the configured channel and not to a thread or another channel.
* **A field marker was ignored** - the field name doesn't match a field on your Form, or the value isn't one of the available options. Check the spelling and the option list.
* **The wrong user is set as requester** - add a `requesterId` marker to the message, or set the Requester field on the ticket afterwards.
* **Required fields can't be set on the Form** - Fields on an automatic creation Form are always optional. Use field markers, default values or Automations instead.
* **Too much noise** - narrow what the other app posts to the channel, rather than filtering afterwards in Suptask. Every message becomes a ticket.

***

## Related articles

{% content-ref url="/pages/muOwGHBkMSYJbNMMlpcF" %}
[Automatic ticket creation](/working-with-tickets/for-agents-who-respond-and-manage-tickets/how-to-automatically-create-tickets-from-new-messages.md)
{% endcontent-ref %}

{% content-ref url="/pages/11343SZZJ8YQCfn445tH" %}
[Slack Workflows](/integrations-automations-and-workflows/integration-guides/how-to-use-slack-workflows.md)
{% endcontent-ref %}

{% content-ref url="/pages/Bnf3GdTWIvS64SeikKZT" %}
[Forms](/setup-and-configure/forms-and-fields/what-are-ticket-forms-and-fields.md)
{% endcontent-ref %}
