Intercom + Fin as code · hands-on verified · CLI 0.9.0

You can build and test Fin as code. You can’t ship it as code.

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.

works as code partial / needs a UI step blocked — dashboard only not yet audited

Fin as code — top wins & top blockers

The headline before the detail: what the CLI already nails, and the three things standing between it and a real deploy pipeline.

▲ Top wins

  • 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.
  • Guidance is full CRUD via fin api, and Voice call transcripts + audio are now pullable via /calls.

▼ Top blockers

  • No publish verb. upload only saves a draft; state: is silently ignored. The per-workspace enable flag already exists — it just isn’t on.
  • Every upload resets the escalation team to Default — a human must re-select it in the UI on every push. Round-trip data-loss.
  • No Reports/Analyze from code — the export API is Intercom-Version: Unstable only, which the CLI can’t send; connector logs stay dashboard-only.

The delivery pipeline

Six stages of shipping a Fin change. Five are scriptable; the gate in the middle isn’t. Click a stage for the detail.

Capability matrix — activity × surface

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.

The wider Intercom surface — audit & rollout

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.

▲ Surface wins

  • Articles ship as code — REST Articles API + MCP create/update_article; fin setup even seeds them.
  • Workflows have a real togglefin workflows upload / enable / disable / get. The one place Fin gives you the verb procedures lack.
  • Tickets ship as codePOST /tickets creates (validation-confirmed); types & states are readable.

▼ Surface blockers & unknowns

  • Series & SLAs have no public API — 404 on the default version and Unstable; dashboard-only.
  • Help Center config is read-only as code — website toggle & custom domain are UI-only. Outbound/News was inconclusive (404 here).

All behaviors verified hands-on on @intercom/cli 0.9.0 (re-confirmed 2026-07-30) · ~8 workspaces · Prepared by Nathan Sudds (Activelabs) · client-anonymized