The Fin CLI is a genuinely good "manage-as-code" tool — until the pipeline hits Publish. There, every path forces you back into the dashboard. The same audit extends to the wider Intercom surface — Articles, Workflows and Tickets already ship as code; Series and SLAs have no public API; Outbound is inconclusive.
The headline before the detail: what the CLI already nails, and the three things standing between it and a real deploy pipeline.
fin setup provisions a whole workspace in one command — signup → messenger → help center → articles → Fin.simulations generate / run / result is real CI-style regression testing from the terminal — it caught the 0.9.0 regression for us.fin api, and Voice call transcripts + audio are now pullable via /calls.upload only saves a draft; state: is silently ignored. The per-workspace enable flag already exists — it just isn’t on.upload resets the escalation team to Default — a human must re-select it in the UI on every push. Round-trip data-loss.Intercom-Version: Unstable only, which the CLI can’t send; connector logs stay dashboard-only.Six stages of shipping a Fin change. Five are scriptable; the gate in the middle isn’t. Click a stage for the detail.
Where each job actually runs. The Dashboard column is the only one that’s green all the way down — and the Set-live row is red everywhere else.
Beyond Fin: the rest of the estate we review, configure and roll out. Two areas already prove the “ship-as-code” pattern works — the platform just hasn’t extended it everywhere. “Not yet audited” marks the live rollout backlog, not a known gap.
create/update_article; fin setup even seeds them.fin workflows upload / enable / disable / get. The one place Fin gives you the verb procedures lack.POST /tickets creates (validation-confirmed); types & states are readable.Unstable; dashboard-only.@intercom/cli 0.9.0 (re-confirmed 2026-07-30) · ~8 workspaces · Prepared by Nathan Sudds (Activelabs) · client-anonymized