How to Route Front Messages to Slack
Forward important customer messages from Front to a Slack channel.
What This Integration Does
Support teams live in Front, but the rest of the company lives in Slack. When a VIP customer hits a problem, or an escalation tag goes on a conversation, the engineering or product channel should know without anyone having to copy-paste. This workflow watches Front for the conversations that matter and posts a tight summary plus a deep link into the right Slack channel.
The run model is a scheduled poll. Spojit polls Front on an interval, filters down to conversations that match your routing rules, posts a Slack message for each one, and remembers the last conversation it saw so the next run does not re-post the same thing. State is small: a timestamp watermark per workflow.
Prerequisites
- A front connection with API access to the inboxes you want to monitor.
- A slack connection with permission to post in the target channels.
- Slack channel IDs (e.g.
C0123ABCD) for each routing destination.
Step 1: Schedule Trigger
Drop a Trigger node and set its type to Schedule. Every 1 to 5 minutes is a good starting cadence - low enough that messages feel timely, high enough not to hammer the Front API. The trigger exposes the previous run's timestamp as lastRunAt, which becomes the lower bound of the poll window.
Step 2: List Recent Conversations
Add a Connector node pointing at the front connector and pick the list-conversations tool. Filter by:
inbox_id- scope to one or more inboxesq[updated_after]-{{ lastRunAt }}so you only get new activity
Save the result as conversations. If you need full message bodies, call get-conversation in a follow-up step for each ID.
Step 3: Condition - Filter by Tag or Priority
Add a Condition node to drop conversations you do not want to forward. Common routing rules:
- Has a specific tag like
viporescalation. - Came in on a particular inbox (billing vs. general support).
- Has a sender domain that matches a known enterprise account.
Only conversations that pass the condition continue to the Slack post.
Step 4: Transform - Build the Slack Payload
Add a Transform node that converts a Front conversation into a Slack-friendly summary. Use mrkdwn for readability:
{
"text": "*New {{ conversation.tags.0.name }} from {{ conversation.recipient.handle }}*\n> {{ conversation.subject }}\n<https://app.frontapp.com/open/{{ conversation.id }}|Open in Front>",
"channel": "C0123ABCD"
}
Step 5: Post to Slack
Add a Connector node pointing at the slack connector and pick the send-message tool. Pass channel and text from the Transform. If different conversation types should land in different channels, branch with a Condition upstream and use the appropriate channel ID per branch.
Step 6: Loop and Acknowledge
Wrap Steps 3 to 5 in a Loop node that iterates over conversations. Optionally tag the conversation back in Front using add-tag with a routed-to-slack tag so you can audit which conversations have been forwarded and avoid double-posts even if the watermark is reset.
Tips
- Use Slack channel IDs, not channel names. Renaming a channel will silently break the workflow if you reference it by name.
- Keep the Slack message short - link to the conversation rather than dumping the full body.
- For very busy inboxes, lift the schedule cadence rather than the page size. Smaller, faster polls are cheaper than huge ones.
Common Pitfalls
- Front API rate limits hit faster than you expect on multi-inbox polling. Stagger schedules across workflows if you monitor many inboxes.
- The
updated_afterfilter includes outbound messages too. If you only want inbound, add a Condition on message direction. - If the workflow ever stops for a long time and resumes, the first run will post a backlog. Cap the poll window at, say, the last hour to avoid a Slack flood.
Testing
Point the workflow at a test Slack channel and a single Front inbox. Send a test message into Front and confirm the Slack post arrives within one poll cycle. Verify the deep link opens the right conversation, then widen the inbox scope and switch to the production Slack channel.