Translator + Reviewer Workflow
Comvi supports a clean two-stage flow: translators write, reviewers approve, and your production CDN includes only Translated values. This recipe walks through configuring roles, filters, and publish settings so the workflow runs without babysitting.
The model
Section titled “The model”Every translation moves through three statuses (see Translation Lifecycle):
- Not translated — empty
- Not reviewed — a translator or MT filled it, waiting for approval
- Translated — a reviewer approved it
Configure the production CDN status filter to include only Translated. Not reviewed drafts won’t leak into production unless you include them in that filter.
When to use it
Section titled “When to use it”- You use freelance translators and keep final approval in-house
- You have internal translators plus a senior linguist who reviews their work
- You want a clear “ready to ship” boundary before publish
If you trust contributors to publish directly, skip this recipe — the split only adds friction.
-
Invite translators with the Translator role
Translator can edit values but cannot set a value to
Translated. Any edit they make lands asNot reviewed. See Team Management. -
Invite reviewers with the Editor role
Editor can approve — their edits can land as
Translateddirectly, and they can flip existingNot reviewedvalues toTranslated. -
Restrict translators to specific languages (optional)
If you have one translator per language, set their language restrictions in the member settings. A German translator sees only
decolumns. This prevents accidental edits to wrong locales and keeps the reviewer queue focused. -
Set the CDN status filter to Translated
Settings → Content Deploy. Select only
Translatedin the publish status filter. Drafts won’t deploy. -
Enable notifications (optional)
Connect a webhook on
translation.updatedevents so reviewers are pinged in Slack or email when new drafts land. See Webhooks.
The daily flow
Section titled “The daily flow”Translator:
- Open the Translations page, filter by their language +
Not translatedstatus. - Work down the list. Use MT / TM suggestions in the side panel when helpful.
- Every saved value becomes
Not reviewed.
Reviewer:
- Filter by their language +
Not reviewed. - Approve in place: open the cell, confirm or edit, set to
Translated. - For bulk approval of clean MT output, select the rows and use the bulk status action.
Result: The Translated count per language is the publishable surface. The CDN auto-deploys once the debounce window closes (see CDN Deployment).
Bulk MT with review
Section titled “Bulk MT with review”A common pattern: translator (or project admin) runs bulk MT to pre-fill drafts, then reviewers go row-by-row.
- Select untranslated keys — filter by language +
Not translated, then select all. - Bulk translate — choose a provider, run. Every MT output lands as
Not reviewedby design, neverTranslated(see Machine Translation). - Reviewer flips through — use keyboard navigation (
Tab/Enter), approve or correct.
This compresses a large translation project from weeks of typing to days of review.
Handling edits after approval
Section titled “Handling edits after approval”When a reviewer (or anyone) edits a Translated value, it drops back to Not reviewed automatically. The value disappears from the CDN on the next deploy until re-approved. This is the intended guardrail — every change after approval gets a second pair of eyes.
What not to do
Section titled “What not to do”- Don’t give translators Editor role “just to unblock them”. You lose the review boundary. If a translator is trusted enough to approve, make them an Editor explicitly.
- Don’t filter the CDN to include
Not reviewed. Drafts will ship. - Don’t use the Viewer role for reviewers. Viewer is read-only — reviewers need edit access to approve.