Slack Integration
Open and work Core tickets from Slack, in your workspace and your customers' workspaces
Overview
The Slack integration lets people open Core tickets from Slack and keeps the whole conversation there. A ticket that starts in Slack is worked in its Slack thread: replies sent from Core post to that thread, replies in the thread are added to the ticket, and the requester gets no ticket emails.
You can connect your own Slack workspace, and each customer can connect theirs from an install link you send.
Connecting your workspace
- Go to Settings > Integrations > Slack
- Click Connect Slack Workspace
- Choose your workspace and approve the requested permissions (a Slack admin may need to approve the install)
- You're returned to Core with the workspace connected
Opening a ticket from Slack
| From | How | Where the conversation continues |
|---|---|---|
| A DM to Core | Open a direct message with the Core app and describe the problem | The thread under your message |
| Create Ticket form | Click the slash button in Slack's message box, or type /, find Create Ticket, and select it. The form opens immediately. | A new thread in your DM with Core |
| Create Ticket on a message | Choose Create Ticket from a message's More actions menu | The message's thread (your workspace) or a DM with Core (customer workspaces) |
| Reaction | React to a message with :ticket: (your workspace only) | The message's thread |
Each new DM to Core opens a new ticket. To add to an existing ticket, reply in its thread. Core confirms every new ticket in the thread with its number and a link.
Core converts Slack mentions and links into readable ticket text. People appear by name when Core can resolve them; channel mentions appear by channel name, and private channel names are hidden. Broadcast mentions such as @here remain text. Replies use the same formatting rules.
A ticket opened from someone else's message (shortcut or reaction) belongs to that message's author, when that person is in the same Slack workspace.
Working a Slack ticket
On a ticket that started in Slack, the reply box shows Slack thread instead of email recipients.
- Replies you send to the customer post to the Slack thread, with your name.
- Resolution notes post to the thread when you complete the ticket, then a short "resolved" notice, then the satisfaction survey link when one is sent.
- Waiting-on-you reminders arrive in the thread as short messages. Core does not post a separate message for other status changes or for assignment.
- Internal notes stay in Core.
- Attachments you add are linked from the Slack message to the ticket in the customer portal.
The requester gets no ticket emails for a Slack ticket, including when the requester is someone on your own team who opened the ticket from your Slack workspace. Emails to your staff about assignment or a mention, and approval requests sent to an approver, are unchanged.
Core marks the message that opened the ticket with 🎫. When the ticket is resolved, that becomes ✅. If the ticket is reopened, it goes back to 🎫. The Create Ticket form has no original message, so Core marks the confirmation message the same way. A customer workspace that connected before this permission was requested has to connect again, with a new install link their Slack admin approves, before those marks appear there. Until then Core still works in that thread and skips the marks.
Replies in the thread
A reply with something new to do reopens a resolved ticket. Core sets the ticket back to needing a response, tells the assignee, and posts "Reopened ticket #…" in the thread.
A short thanks does not. "Thanks", "thank you", "got it", "sounds good", a teammate's first name after thanks ("Thanks Josh", when Josh is the assignee or someone on your team), or only an emoji is saved on the ticket and left as it is. The ticket stays resolved if it was resolved, and on an open ticket the assignee is not notified. A question, a file, an all-caps word ("Thanks, BSOD"), or a longer note ("thanks, but it's still broken") is a real reply.
An emoji reaction does not reopen a ticket. The 🎫 reaction still opens a new ticket from a message that is not already a ticket thread.
Replies from your staff in a channel thread stay internal notes.
Merged tickets
If a Slack ticket is merged into another, Core keeps that thread and posts "Merged into #…" there. Later replies in that thread are added to the ticket you kept. Replies you send, the resolved notice, and the survey are posted in every Slack thread still linked to that ticket. When the ticket you kept is an email ticket, the closing note still appears in that Slack thread before the resolved notice, and the survey is posted there as well as emailed. If you discard a completion draft and write a different note, that new note is what the thread shows. A retry does not post the resolved notice again in a thread that already received it.
If Core can't post to the thread (for example, the app was removed from the customer's Slack), it adds an internal note to the ticket saying the customer hasn't seen the message.
Shared channels and files
People from another Slack organization in a shared channel are not members of your connected workspace. Core ignores their messages and reactions and gives them no ticket previews. Shortcuts answer privately without ticket details. Their company can connect its own Slack workspace to open tickets.
Files shared in a Slack ticket conversation are copied onto the ticket and shown in the customer portal when that workspace has granted Core permission to read files. Screenshots and documents then sit on the message the same way other ticket attachments do.
That permission is added only when the workspace reconnects through Core:
- Your workspace: Settings → Integrations → Slack → Reconnect. Do not reinstall the app from Slack's own app page. Slack would grant the permission to a token Core never receives, and files would keep showing up only as a note.
- A customer workspace: create a new install link on that same page and have their Slack admin approve it. A reinstall from Slack's app page does not save the new token in Core.
Until then, Core can't copy the files. The message ends with a note that says so: "Couldn’t copy N files from Slack into Core because this Slack workspace must be reconnected to Core," followed by the next step. For your workspace, that step is to reconnect in Settings → Integrations → Slack. For a customer workspace, a staff member sends a new Core install link to that workspace's Slack admin. Reconnecting does not copy files shared before the reconnect.
When the workspace has the permission, Core adds the note "(Shared N files in Slack)" while it copies the files and removes it when every file is saved. The note stays if a file is too large, over the workspace storage limit, or Slack will not return it. A temporary problem looking up the file in Slack is tried again, so the file can still be saved. Files that can be saved still appear on the ticket while that note stays, including when you come back to a ticket that was open while they were copied. A workspace that is missing the permission shows Reconnect to sync files on the Slack settings page.
Send SLA alerts to a staff channel
- Connect your staff workspace under Settings > Integrations > Slack.
- In Slack, invite Core to the channel that should receive SLA alerts.
- Open the channel details in Slack and copy its channel ID.
- Enter the ID under SLA channel alerts, then select Save SLA channel.
Core posts new SLA warnings and breaches directly to that channel. Saving the channel does not send a test alert. Staff notification preferences stay the same.
The native channel takes priority over SLA Slack Channel Email in Settings > Business. Clear the channel ID and save to use that email address again. Alerts already waiting to send keep their original destination.
The card shows pending alerts, failed alerts, and the latest delivery error. For a channel-access error, invite Core to the channel. If Slack access was revoked, reconnect your staff workspace. Reconnecting the same workspace preserves the channel. Connecting a different workspace clears it so you can choose a channel there.
Customer Slack workspaces
A customer can install Core in their own Slack so their people can DM Core, open the Create Ticket form, and use Create Ticket on a message there.
- Go to Settings > Integrations > Slack > Customer Slack workspaces
- Choose the customer and click Create install link
- Copy the link and send it to the customer's Slack admin. It works once and expires after 14 days, and Core shows it only once
- Their admin opens the link, approves the install, and sees a confirmation
Every ticket from that workspace belongs to the customer. People are matched to the customer's contacts by Slack profile email, and a new contact is added under the customer when there's no match. Nobody in a customer workspace is ever treated as your staff.
Core asks a customer workspace only for what it needs: direct messages with the Core app, the Create Ticket shortcuts, profile names and emails, and permission to add and remove the ticket and check-mark emoji on those messages. It can't read the customer's channels. A workspace that connected before the emoji permission was added needs a new install link, approved by their Slack admin, before the marks show up. The rest of Slack ticketing keeps working until then.
To stop, click Disconnect (or Revoke link for a link that hasn't been used). Core also removes the app from the customer's Slack. If the customer uninstalls Core themselves, Core marks the workspace disconnected.
Things to know before you send a link:
- Slack shows the customer a notice that Core isn't listed in the Slack Marketplace. Workspaces that only allow Marketplace apps can't install it yet.
- A Slack workspace can be connected to one customer at a time, and your own workspace can't be connected as a customer workspace.
User matching
Core matches people by their Slack profile email:
- Your workspace: an exact match to one staff member identifies an internal requester. Core finds or creates their contact and uses its company, or a single matching company email domain. It leaves company unset when the domain is missing or ambiguous. Non-staff senders are matched to contacts. A shortcut on someone else's message uses that message's author.
- Customer workspace: people are matched only to that customer's contacts. Plus-address aliases can match the same mailbox within that company; dots remain significant. Core creates a new contact if no unique match exists, and never attaches the ticket to a different company's contact.
Tickets follow the normal assignment rules, including named assignees, company primary/secondary technicians, round robin, or least busy when configured.
If Core can't read Slack profile emails, reconnect Slack from Settings →
Integrations → Slack and approve the requested permissions (users:read and
users:read.email). Reinstalling from Slack's app page does not update the
token Core has stored.
File sync needs the same Core reconnect, plus files:read. The settings page
says Reconnect to sync files when that permission is missing.
A direct message to Core always comes from someone in that Slack workspace. If Core can't read their profile, it still opens the ticket and replies in the thread. The reply says the ticket isn't linked to a person yet. Core does not stay silent, and it does not treat that person as staff.
The Create Ticket form and message shortcut do the same when Slack has already said that person belongs to this workspace. The ticket opens without a linked person, and the thread says so. A shortcut used on someone else's message still requires that person's own profile.
Rich link previews
When a Core ticket link is shared in your workspace, Core shows the ticket number, title, status, and priority. The person sharing the link must match an active Core staff member who can read tickets. Otherwise Slack shows a card without ticket details: "Ticket preview unavailable in Slack. Open the ticket in Core." Customer workspaces don't get previews.
The preview is shared with the conversation; signing in to Core doesn't update an existing preview. After fixing the sender's account matching, share the link in a new message.
Troubleshooting
"Sending messages to this app has been turned off"
The Core Slack app's Messages tab is off. A Rooted administrator turns it on in the Slack app settings (App Home > Messages Tab, with Allow users to send Slash commands and messages from the messages tab checked).
A direct message to Core got no reply
Core replies in the thread under that message, including when it can't match the sender to a person. If there is still no reply, check that the Messages tab is on (above) and that the sender is in the connected Slack workspace. Someone from another Slack organization is ignored on your install.
The form couldn't start a direct message
The Create Ticket form starts a direct message with Core. If Core cannot start that conversation, the form stays open with your details and an error. Allow messages from apps in Slack, then try again. A customer-workspace message shortcut also continues in a DM; if that fails, Core sends a private note where you used the shortcut.
Reactions don't open a ticket
Invite the Core app to the channel (/invite @Core); Core only sees reactions
in channels it's in. The Create Ticket shortcuts and DMs work without inviting
it. A message shortcut used in a channel Core isn't in opens the ticket and continues
the conversation in a DM with the requester.
Replies from Core aren't showing up in Slack
Check that the ticket started in Slack (its reply box shows Slack thread) and look for an internal note from Slack on the ticket explaining the failure.