Skip to main content
Every flow starts with one trigger. The trigger sets when the flow runs and what data the flow has when it starts. You choose it in the flow builder, in the Starts menu above the composer. There are two kinds of trigger:
  • Event triggers start a flow when something happens, for example when Doris finishes processing a meeting.
  • Schedule triggers start a flow at a set time, once a day or once a week.
If you are not sure which trigger to use, leave Starts on Let Doris choose. Doris reads your description and picks a trigger. If Doris cannot find a match, it picks Weekly schedule. Check the trigger on the canvas before you activate the flow.

All triggers

The Starts menu shows these triggers, in this order. The flows list can show a shorter name for a trigger. For example, it shows “After meeting” for After a meeting.

Who a flow runs for

The scope of the flow and the trigger together decide who a run is for.
  • A company flow runs on every matching event in your workspace.
  • A personal flow runs only when the event is about you. Doris finds that person in this order: the user the event names, then the deal’s owner, then the meeting’s owner.
  • If the deal or meeting has no Doris user, a personal flow does not run. A company flow still runs.
Schedule triggers work in a different way. A personal schedule flow runs for you. A company schedule flow runs once for each active user in the workspace.

Narrowing when a flow runs

A trigger fires on every matching event. To run on only some events, tell Doris the condition in the builder. “Only when the deal moves to Negotiation” is an example. Doris adds a condition on the trigger’s data, or adds a Continue if step. Custom flows have no cooldown. If the same deal fires the same trigger twice, the flow runs twice. Use a condition to keep a flow quiet.

After a meeting

  • What fires it: Doris finishes processing a recorded meeting. Internal and external meetings both fire it.
  • Who it runs for: the Doris user who owns the meeting.
  • Data the flow gets: the meeting, its owner, its title, the deals linked to it and their count, and the call type Doris detected with its confidence.
  • Caveats:
    • If someone reprocesses a meeting, the trigger fires again. A flow on this trigger can run more than once for the same meeting.
    • A meeting with no linked deal still fires this trigger. If your flow is about a deal, use After a deal meeting.

After a deal meeting

  • What fires it: Doris finishes processing a meeting that has an active link to a deal. It fires once for each linked deal.
  • Who it runs for: the deal’s owner in Doris. This can be a different person from the meeting’s owner.
  • Data the flow gets: the meeting, the deal, the deal’s owner, and whether the deal is active and whether it is closed.
  • Caveats:
    • A meeting with no active deal link does not fire this trigger.
    • Doris does not check if the meeting was internal or external. An internal meeting that is linked to a deal fires it.
    • Reprocessing a meeting fires it again.

Deal stage changed

  • What fires it: a deal moves to a different stage. Your CRM must send the change to Doris, or someone must change the stage in Doris.
  • Who it runs for: the deal’s owner in Doris.
  • Data the flow gets: the deal, the new stage, the previous stage, the pipeline ID, and the amount.
  • Caveats:
    • A scheduled CRM sync does not fire this trigger. Only a CRM webhook or a change in Doris fires it.
    • Salesforce does not send deal events to Doris today. Salesforce deals do not fire this trigger.

Deal created

  • What fires it: a new deal comes in from your CRM, or someone creates a deal in Doris.
  • Who it runs for: the deal’s owner in Doris.
  • Data the flow gets: the deal, its name, its amount, and its stage.
  • Caveats:
    • A scheduled CRM sync does not fire this trigger. Only a CRM webhook or a new deal in Doris fires it.
    • Salesforce deals do not fire this trigger today.
    • A new deal often has few fields set. If your flow needs the amount, close date or contacts, use Deal updated or a Daily schedule.

Deal closed

  • What fires it: an open deal is marked won or lost.
  • Who it runs for: the deal’s owner in Doris.
  • Data the flow gets: the deal, whether it was won, and its amount.
  • Caveats:
    • A scheduled CRM sync does not fire this trigger. Only a CRM webhook or a change in Doris fires it.
    • Salesforce deals do not fire this trigger today.
    • If you only need the outcome, use this trigger, not Deal stage changed.

Deal updated

  • What fires it: your CRM sends Doris a webhook that a deal was created or changed.
  • Who it runs for: the deal’s owner in Doris.
  • Data the flow gets: the deal, the action (created or updated), and the names of the changed fields.
  • Caveats:
    • Any deal webhook fires this trigger, also when no field you care about changed.
    • Only HubSpot sends the names of the changed fields. Other CRMs do not send them.
    • Salesforce deals do not fire this trigger today.
    • This trigger can fire often. Add a condition, for example on a changed field, to keep the flow quiet.

Assessment completed

This trigger does not fire today. The Starts menu shows it, but no part of Doris sends this event. A flow on this trigger never runs. Use a different trigger.
  • What fires it: nothing, today.
  • Who it runs for: nobody.
  • Data the flow gets: none.

Commitment created

  • What fires it: Doris finds a commitment in a meeting it processes.
  • Who it runs for: the owner of the commitment’s deal in Doris.
  • Data the flow gets: the commitment text, who owns it (rep or buyer), its due date, the deal, and the meeting it came from.
  • Caveats:
    • Only meetings fire this trigger. Doris does not create commitments from email.

Commitment overdue

  • What fires it: an open commitment passes its due date. Doris checks once a day at 02:00 UTC.
  • Who it runs for: the owner of the commitment’s deal in Doris.
  • Data the flow gets: the commitment text, its due date, the number of days overdue, and the deal.
  • Caveats:
    • Doris compares the due date with the UTC date. A commitment becomes overdue at the first check after its due date.
    • It fires once for each commitment. Doris then marks the commitment as overdue.

Daily schedule

  • What fires it: a set hour, every day. The default is 08:00. Tell Doris a different hour in the builder.
  • Who it runs for: you, for a personal flow. Every active user in the workspace, for a company flow.
  • Data the flow gets: the user, their email and time zone, today’s date, and an overdue cut-off date (three days before today).
  • Caveats:
    • The hour is each user’s local time. Users in different time zones get their runs at different moments.
    • It runs at most once a day for each user.
    • On a schedule flow, the flow page has Run now to start a run at once.

Weekly schedule

  • What fires it: a set hour, on set days of the week. The default is Monday at 09:00. Tell Doris different days or a different hour in the builder.
  • Who it runs for: you, for a personal flow. Every active user in the workspace, for a company flow.
  • Data the flow gets: the same data as Daily schedule.
  • Caveats:
    • The hour is each user’s local time.
    • It runs at most once a day for each user.

Before an upcoming meeting

  • What fires it: an external meeting on a user’s calendar starts in 30 to 90 minutes. Doris checks every 15 minutes.
  • Who it runs for: the people the system “Meeting Prep Brief” flow runs for. This is everyone in the workspace, or the people who turned that flow on for themselves.
  • Data the flow gets: the calendar event, its title, its start time, the user and their email, and the linked deal if there is one.
  • Caveats:
    • A deal link is not necessary. A meeting with a company your CRM does not know fires it. The deal is then empty.
    • Internal meetings do not fire it.
    • It fires once for each meeting and user.
    • A custom flow on this trigger runs only in a workspace where the system “Meeting Prep Brief” flow is on. It runs only for the users of that flow. If that flow is off, your custom flow never runs.
Use the most specific trigger for your case. Use After a deal meeting, not After a meeting, when the flow is about a deal. Use Deal closed, not Deal stage changed, when you only need the outcome.