Skip to main content
AI-Implement can send notifications to Slack or Microsoft Teams as work moves through the orchestrator, and as the orchestrator itself changes state.

Configuration

These environment variables control notifications: Set these on your orchestrator’s Fly app (or in your .env file when running locally):

What triggers a notification

Runs

  • Dispatch — the orchestrator picks up an issue and dispatches a run. Includes the issue identifier, title, and target repository, and says whether this is planning or implementation.
  • Dispatch failed — the workflow could not be started at all. Names the workflow file, and says when the cause looks like a target repo that has not re-synced its workflows.
  • Completion — a run finishes. Includes the outcome (completed, review_failed, failed, or timed_out), a link to the pull request if one was opened, a link to the GitHub Actions run, and the duration.
A completion that did not finish cleanly also carries the explanation posted on the ticket — see Outcome comments.

Issues the orchestrator gives up on

  • Parked — dispatches for one issue and phase kept failing. Includes the phase, the failure count, the last conclusion, and where to unpark it.
  • Stuck, needs human — the orchestrator stops retrying an issue. Includes the attempt count, the last run status, and a link to the last run.

Feature-branch grouping

  • Child merged — a child pull request was merged into its grouping branch.
  • Conflict left for a human — a child pull request conflicts with its grouping branch and the automatic resolution attempts are spent.

The orchestrator itself

  • Restarting — the orchestrator is shutting down, so dispatches are paused until it returns.
  • Back up — it is serving again, saying whether this is a new version or the same one.
  • Deployment available — a newer commit is ready to release.
  • Reaper burst — a single sweep destroyed more machines than the alert threshold.
  • Runner mode changed — someone switched execution mode from the admin interface.

Deploy notifications

When the orchestrator restarts, it announces the fact itself, so a pause in dispatches doesn’t look like a fault.
This needs no configuration beyond the webhook you already set — the same NOTIFY_TYPE and NOTIFY_WEBHOOK_URL.
You get a matched pair, sent wherever the orchestrator can identify its own image — in practice Fly.io, so running locally is silent. The outgoing process posts Orchestrator restarting as it shuts down — the only one of these that sends an @channel, since the message that follows answers it. The incoming process replies once it’s serving again:
  • Orchestrator redeployed — a new version is live.
  • Orchestrator back up — the same version came back, so this was a restart rather than a deploy.
Each message names the app, its region, and how long it was down. The restarting notice omits the version deliberately: it is sent by the process being replaced, so the only version it knows is the one going away. The first deploy after enabling this is silent, by design: the outgoing process is still running the older build and has no shutdown handler, while the incoming one has no previous version to compare against. Restart the app once afterwards to see the full pair. Deployment available stands outside the pair. It announces a commit you could release rather than one this machine is already running, so it arrives on any host. Self-deployment covers what to do with it.

Setting up Slack

1

Create a Slack app with an incoming webhook

Go to api.slack.com/apps and create a new app. Choose From scratch, give it a name, and select your workspace.
2

Activate incoming webhooks

In the app settings, open Incoming Webhooks and toggle Activate Incoming Webhooks on.
3

Add a webhook to your workspace

Click Add New Webhook to Workspace, choose the channel where you want notifications to appear, and click Allow.
4

Copy the webhook URL

Copy the webhook URL that appears on the Incoming Webhooks page. It looks like https://hooks.slack.com/services/T.../B.../....
5

Set the environment variables

Setting up Microsoft Teams

1

Open the target Teams channel

In Microsoft Teams, navigate to the channel where you want notifications to appear.
2

Add an incoming webhook connector

Click the … (More options) next to the channel name, select Connectors, find Incoming Webhook, and click Configure.
3

Name the webhook and save

Give the webhook a name (e.g. AI-Implement), optionally upload an icon, and click Create.
4

Copy the webhook URL

Copy the webhook URL shown on the confirmation screen.
5

Set the environment variables

Teams notifications use Adaptive Cards, which render a structured fact-set with the issue, repo, PR link, and run duration — the same information as Slack, formatted for the Teams card UI.