Slack

Your translations, reported in Slack

Connect a channel with two clicks of OAuth and locamorph starts reporting: translations updated, imports landed, keys deleted, languages added, contributors joined. Each event is a toggle, each message names who did what in which project, and nobody has to ask whether the translations went in.

Notifications run after the fact. They cannot block, slow down or fail the work they report on, even when Slack itself is down.

# localization

locamorph APP 14:02

📥 Translations imported by Alex

Project: Web-app
Language: de
Summary: 142 imported, 8 skipped

locamorph APP 15:37

✏️ Translation updated by Jordan

Project: Web-app
Key: checkout.summary.title
Language: fr
Old: Résumé de commande
New: Récapitulatif de commande

One message per event, only for the events you switched on.

Illustration of the messages locamorph posts, drawn rather than screenshotted and matching the real message format.

How it works

Five events, one channel

Each message carries an event marker, who did it, and what changed. A translation update shows the old and new value side by side; an import reports what was added, skipped and removed. Everything else stays out of the channel.

events

You choose what posts

Translation updated, import finished, key deleted, language added, contributor joined. Five switches you can change at any time without reconnecting.

one channel

Public or private

Each project posts to one channel of your choice. Public channels need no bot invite at all; private ones appear in the picker once the bot is a member.

fire and forget

Never in the way

Delivery happens after the operation completes. If Slack errors or is unreachable, the failure is logged and the import, edit or invite proceeds untouched.

Setup

Connect, pick a channel, choose events

The shortest setup of any integration. Nothing gets typed or pasted; you approve the bot on Slack’s own consent screen and decide where messages go.

  1. Connect Slack from the Integrations page

    Choose Slack and you are handed to Slack’s consent screen, which names exactly what the bot may do. Approve it and you are back in locamorph with the workspace connected. There is no token to create and nothing to paste.

  2. Pick the channel

    The picker lists your workspace’s public and private channels. Most teams create a dedicated channel such as #localization, which is easy to follow and just as easy to mute.

    The Slack configuration modal: a notification channel picker set to #localization and event toggles for key added, key deleted, translations imported, language added and contributor joins
    Channel and events in one modal, changeable any time without reconnecting.
  3. Choose the events

    Imports, deletions, new languages and new contributors start switched on. Updates to individual translations start off, because a busy project would flood the channel; switch them on when the volume fits.

  4. Save, then make a change

    Edit any translation or run an import and watch the message arrive. The integration card shows the connected workspace and channel from here on.

    The connected Slack card on the Integrations page: workspace Acme, channel #localization, status Connected
    Workspace and channel, visible at a glance.

Security

A bot that speaks, and never listens

The bot asks for five scopes and nothing more: post messages, post to public channels without joining, list public channels, list private channels, read the workspace name. There is no history scope of any kind, so the bot cannot read a single message in any conversation, including the channel it posts to. What your team writes in Slack stays in Slack.

chat:write chat:write.public channels:read groups:read team:read

Authorization is Slack’s own OAuth, so there is no credential to create or rotate. Revoking works from either side. Delete the integration in locamorph and the bot token is revoked through Slack’s API in the same operation, or remove the app from Slack’s admin page; either way the connection is fully gone.

Common workflows

Three shapes teams settle into

The localization feed

The defaults, posted to a #localization channel. Imports, deletions, new languages and new contributors arrive as they happen, so anyone can scroll the channel and see what changed this week without opening locamorph.

The quiet mode

Only imports and key deletions, posted to the channel developers already watch. The two events that can affect a release stay visible; everything else stays out of the way.

The launch channel

Updates for every translation edit switched on, pointed at a dedicated review channel during a big release. Reviewers watch old and new values scroll by in real time, then switch the toggle off when the launch ships.

Give translations a channel

Available on the Free plan. Connect a channel, run an import and the announcement posts itself. If the channel gets noisy the toggles are right there, and revoking cleans up the bot token too.