Translate Slack announcements into every regional channel

Mirror every English announcement into your Spanish, Japanese, French, and German Slack channels, automatically and in the local language.

Deterministic Code
SlackJigsawStackOperationsHR & PeopleNotifications & AlertsContent GenerationData Sync
PromptCreate

Build a code workflow that mirrors every announcement posted in our English source Slack channel into multiple regional Slack channels, with each regional post translated into that channel's local language.

Trigger: a Slack webhook event for a new message posted in the configured source channel (for example the #announcements channel). The workflow should run on every new top-level message and every threaded reply in that channel.

Configuration the workflow should expose:

- source_channel_id: the Slack channel id to watch.

- target_channels: an ordered list of objects, each with channel_id, language_code, and language_label. For example: #announcements-es / es / Spanish, #announcements-ja / ja / Japanese, #announcements-fr / fr / French, #announcements-de / de / German.

- skip_prefix: a string that, when a message text starts with it, causes the workflow to skip translation entirely. Default to "DNT:".

Steps:

1. From the Slack event payload, extract the message text, the author's Slack user id, the channel id, the message ts, the thread_ts (present when it is a threaded reply), and a flag indicating whether the sender is a bot (bot_id present or subtype is bot_message).

2. Skip the message if the sender is a bot, or if the message text starts with the configured skip_prefix. Also skip message_changed and message_deleted subtypes.

3. Fetch a permalink to the source message so the translated posts can link back to it.

4. For each entry in target_channels, run the following fan-out (in parallel where possible, with isolated error handling per entry):

a. Call the JigsawStack "Translate Text" operation with the original message text and the entry's language_code as the target language.

b. Compose the post body as the translated text followed by a small footer line in Slack mrkdwn that credits the original author and links back to the source message. Example footer: "_Posted by <@U123ABC> in <permalink|#announcements>_".

c. Call the Slack "Send a Message" operation to post into the entry's channel_id. If the source message has a thread_ts (it's a reply), the post must land in the matching thread in the target channel, not at the channel root. To do that, the workflow needs to remember a mapping from source thread_ts (the root message's ts in the source channel) to each target channel's root-message ts; when the source message is itself a top-level post, store the mapping so future replies can look it up; when it is a reply, look up the target thread root and post with thread_ts set to that value.

5. A failure to translate or post into one regional channel must not stop the other regional channels from receiving the announcement. Log per-channel failures with the channel id and a short reason.

Use the JigsawStack "Translate Text" operation and the Slack "Send a Message" operation. Treat the workflow as a deterministic fan-out: one inbound message in, N translations and N posts out, where N is the length of target_channels.

What does this prompt do?

  • When someone posts in your English announcements channel, every regional channel gets the same post in the local language within seconds.
  • Threaded replies follow into the matching thread in each regional channel, so conversations stay grouped where the original happened.
  • Bot posts and messages that start with your chosen do-not-translate prefix are skipped, so internal pings or memes don't get mirrored.
  • Each translated post credits the original author and links back to the source message, so nothing loses context.

What do I need to use this?

  • A Slack workspace where you can install apps and post into the channels you want to mirror into
  • A JigsawStack account for the translation step
  • The list of target channels and which language each one speaks (for example Spanish, Japanese, French, German)

How can I customize it?

  • Add, remove, or relabel target channels and their languages without rewriting the workflow
  • Change the do-not-translate prefix, or add more skip rules like ignoring messages tagged [internal]
  • Tweak the footer line that credits the original author and links back to the source message

FAQs

Will it translate threaded replies, or only top-level posts?
Both. A reply in the source thread is mirrored into the matching thread in each regional channel, so the conversation stays grouped the same way it does in English.
Can I exclude certain announcements from being translated?
Yes. Posts from bots are skipped automatically, and any message that starts with your chosen prefix (for example DNT:) is skipped too. You can change the prefix at any time.
How many languages and regional channels can I add?
As many as you need. The list of channels and their languages is configuration, so adding French or Japanese later is a small edit, not a rebuild.
Will the translated post show who wrote the original?
Yes. A small footer line credits the original author and links back to the source message, so anyone reading the translation can jump to the full context in one click.
What if one of the regional channels is down or misconfigured?
The workflow keeps going. A failure to post into one regional channel does not block the others, so the rest of your global team still gets the announcement.

Related templates

Partner tier review board for quarterly promotion calls

Work every partner tier decision from one board, with the revenue and commission numbers, clear promotion thresholds, and AI review briefs.

Introw
HubSpot
Slack
App
Reconcile partner commissions between HubSpot and Introw

Open one board at month end to find every closed deal missing a commission, every commission with no deal behind it, and every amount that does not add up.

Introw
HubSpot
Slack
App
Run your Webflow site translations from one review desk

See every page's translation status at a glance, edit translations side by side with the English, and publish only what your team has actually approved.

Webflow
JigsawStack
Slack Bot
+1
App
One control room for every Instantly sending mailbox

See warmup status, daily send volume, and bounce risk for every sending account in one grid, with the riskiest mailboxes floating to the top.

Instantly
Slack
App
Partner payout approval queue with Xero bill handoff

Review Introw partner payouts line by line, approve them from one board, raise the matching bill in Xero, and post every approval to Slack.

Introw
Xero
Slack
App
Catch angry support tickets before the customer escalates

Open one board each morning to see which Zendesk tickets are turning hostile, why, and who has been waiting longest.

Zendesk
JigsawStack
Slack Bot
App

Make every region read the announcement on day one.

Connect Slack and JigsawStack once, and Geni translates and mirrors every announcement into your regional channels the moment it is posted.