Skip to main content
The Composer reads how your users behave and how your current flows are performing, then proposes changes. It only proposes. Nothing it writes sends until a person approves it and activates the flow.

What it reads

  • Aggregate behavior: retention, funnels, where users drop off, which early actions go with users sticking around
  • Every active flow’s results, compared against the holdout
  • Your app context (below)
  • Your own database, read-only, if you’ve connected one

What it proposes

Each proposal is one change: create a flow, adjust one, pause one, or retire one. Removing rules that stopped working matters as much as adding new ones. Every proposal carries:
  • Diagnosis: what it noticed, in plain words
  • Evidence: the numbers behind it
  • Confidence: high, medium, low or insufficient_data
  • The complete flow it would create or change, already checked against the same rules as a hand-written one
Users who add 3+ connections in week 1 retain at 4.2x. 61% never reach 3; median drop-off is at connection #1 with no second within 48h. Proposed: trigger on connection_added with no second one in 48h, send at most once a week.
It is built to say “insufficient data” when that is the truth. With modest traffic, most differences between flows aren’t significant yet, and a confident story invented from noise would be worse than no proposal.

Running it

Open the Composer page and run it. A run takes about a minute, and you can leave the page while it works. New proposals appear under Flows, where you approve, edit or reject them.

App context

Event names alone don’t tell the Composer whether a nudge is welcome or intrusive. Fill in the App context page: