> ## Documentation Index
> Fetch the complete documentation index at: https://docs.connie.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Triggers

> Choose what starts your workflow: every row of a list, an event, a manual run with a form, or a schedule.

A **trigger** is what starts a workflow. Think of it as the "when" in "when X happens, do Y". Every workflow has one trigger card at the top of the canvas, and every time the trigger fires, the workflow runs once. For a list, that means once per row.

**Where:** open a workflow → **Build** tab → click the first card on the canvas · `https://connie.ai/<workspace-id>/workflows/<workflow-id>?tab=canvas`

## The four kinds of trigger

| Trigger | Runs when | Example | Shows in the Trigger column as |
| - | - | - | - |
| **Run every row of a list** | You run it on rows, or new rows arrive | Enrich every lead in a list | **Each item in Records** |
| **Event** | Something happens in Connie or a connected app | A new email arrives; a record is added to a list; a form posts to a webhook | The event name, e.g. **Email Received**, **Record Created**, **Custom Webhook** |
| **Manually** | You click **Run** and fill in a form | A one-off research job | **Manually** |
| **Schedule** | A timer goes off | Every weekday at 9:00, post a digest to Slack | **Schedule** |

The **AI Agent** card in **Add workflow** creates a Schedule trigger with an AI Agent step. **Outreach campaign** creates a Run every row of a list trigger.

<Warning>
  **Automatic triggers only fire while the workflow is live.** Events, schedules and new rows do nothing while it's in draft. After setting up the trigger, use **Run** → **Set live**. See [Set a workflow live](/automations/workflows/test-and-run#set-a-workflow-live).
</Warning>

## Choose or change the trigger

<Steps>
  <Step title="Pick a trigger when you create the workflow">
    **Automations** → **New** → **New workflow**, then pick a card. See [Create a workflow](/automations/overview#create-a-workflow).
  </Step>

  <Step title="To change it later, use the trigger card's ⋯ menu">
    Click **⋯** on the trigger card → **Change**. The **Select option** window opens with the same choices. A trigger that's already chosen is greyed out ("This trigger is already selected"). You can't change the trigger while the workflow is live.
  </Step>

  <Step title="Configure it and click Save">
    Click the trigger card to open its settings. Changes only apply when you click **Save** in the panel.
  </Step>
</Steps>

## Run every row of a list

The workflow works through the rows on its **Records** tab, one run per row. Each row's columns are available to your steps as [variables](/automations/workflows/variables) under **Record**.

### Add rows

Open the **Records** tab and use the **Actions** menu to:

* add records by hand,
* **Import from CSV** (up to 25 MB, with **Skip duplicates (recommended)** or **Overwrite existing**),
* **Import from LinkedIn** (a LinkedIn search, the comments or reactions on a post, a group, or an event),
* **Import from CRM**,
* **Import from List**, which mirrors one of your [Records lists](/records/lists-and-views) into the workflow without copying it. Edits write through to the list.
* or find new people and companies with [Lead Finder](/records/lead-finder).

### Run it

Click **Run** in the top bar and choose:

* **All rows**, **First 10 rows**, **First row only**, or **Selected rows** (tick rows on the Records tab first).
* **Run only on empty cells:** skips steps that already have a result for a row. Use it to avoid paying twice when you re-run.
* **Keep running on new rows:** new rows added later (by import, list sync or by hand) run automatically. The button changes to **Run and set live**.

You can run at most 500 selected rows at once.

### Trigger settings

* **Recurring refresh:** "Runs all of your items on a schedule instead of running them only once". Shows schedule controls (Minute, Hourly, Daily, Weekly; no Monthly here). Here **Minimum Interval** starts at 15 minutes.
* **Column Filters:** "Only trigger when row matches these conditions". Click **Add filter**.
* **List sync** (in [Workflow settings](/automations/workflows/test-and-run#workflow-settings)): for each mirrored list, "When on, records added to this list are mirrored into the flow automatically."

## Event

The workflow runs every time a chosen event happens. When you pick **Event**, a picker opens with tabs **All**, **Workflows**, **Email**, **Calls**, **Connectors** and **Webhooks**, plus a **Popular** group.

| Tab | Events include |
| - | - |
| **Workflows** | **Record Created**, **Record Updated**, **Table Created**, **Workflow Completed**, **Workflow Failed** |
| **Email** | **Email Received**, **Email Sent**, **LinkedIn Message Received** |
| **Calls** | **Call created**, **Call completed** |
| **Connectors** | Google Calendar (on event created, updated, cancelled, started, ended), Calendly (meeting booked or canceled), Google Sheets (on row created), Google Docs (on document created or updated), HubSpot (contact, company or deal created, updated or deleted; meeting booked), Slack (bot mention, new channel message, direct message, reaction added, slash command and more), Linear, GitHub, Google Ads |
| **Webhooks** | **Custom Webhook**: any outside app can start the workflow by sending data to a URL. See [Webhooks](/automations/workflows/webhooks). |

Task events (**Task Created**, **Task Updated**, **Task Assigned**, **Task Status Changed**, **Task Completed**, **Task Due Soon**, **Task Overdue**) aren't on any of these tabs. Find them on the **All** tab, or search "Task".

You can stack several events on one workflow with **Add trigger**. Removing one asks "Delete event?".

### Event settings

Depending on the event, the panel offers:

* **Connected Account:** which account to listen to. Some events offer **All connected accounts (N)**, which includes accounts you connect later. **+ Add account** connects a new one.
* **List** (Record Created / Updated): "Runs when a record is added to the selected list." Add **Column Filters** to narrow it down.
* **Trigger Delay** (record, task and Google Sheets events): wait up to 24 hours before running. After the delay, Connie re-checks that the record still matches your filters and uses its latest values.
* **Email Received** filters: **From Filter** (e.g. "@company.com"), **Keyword Filter**, **Label Filter**, **Email Folder**.
* **Include conversation history** (email and LinkedIn messages, on by default) and **Only replies to a flow's messages**.
* **Status changed to** (task status events).
* **Call Filters** (call events): Sentiment, Recording Provider, Meeting Platform (Zoom, Google Meet, Microsoft Teams, Slack Huddle, Other), **Minimum Duration**, **Has Competitor Mentions**.
* Slack **Channels**, Google Calendar **Calendar**, Calendly **Event type** and **Ignore reschedules**, Google Docs **Drive** / **Folder** / **Include subfolders**, Google Sheets spreadsheet and **Sheet (tab)**.

### How quickly events arrive

* **Record Created** fires when a record is **added to the selected list**, not whenever a record is created anywhere. For a filtered (smart) list, it fires when a record starts matching.
* **A bulk import fires one run per record.** Importing 500 records into a watched list starts 500 runs.
* Google Sheets and Google Docs are checked about every 30 seconds while the workflow is live.
* **Calendly** triggers need a paid Calendly plan (Standard or above).
* For Slack, Connie's bot joins the configured channels when you save. Private channels may need you to invite the bot.

## Manually

A manual workflow runs when you click **Run**. You can give it a **form**, so each run asks for inputs (for example, a company domain to research).

<Steps>
  <Step title="Open the trigger card and build the form">
    Add fields: **Text field**, **Number field**, **Dropdown**, **Radio button**, **Checkbox**, **Filter selector**, **Slider**, **Date time**, **Toggle switch**, **File upload** (up to 25 MB). Each field has a question, an optional description and default value, and a **Required** switch.
  </Step>

  <Step title="Save">
    The trigger card shows "Form · N fields".
  </Step>

  <Step title="Click Run">
    The **Run flow** panel shows your form ("No inputs needed" if there isn't one). Fill it in and click **Run**. You'll see "Workflow run started".
  </Step>
</Steps>

Each answer is available to later steps as a [variable](/automations/workflows/variables) under the trigger. Manual workflows are never set live; every run is started by hand. Each manual run adds a new row to **Runs**.

## Schedule

The workflow runs on a timer. Click the trigger card to set:

* **Timezone:** defaults to your browser's timezone. "All times are in this timezone".
* **Run frequency:** **Minute**, **Hourly**, **Daily**, **Weekly** or **Monthly**.
  * **Weekly:** **Day of week** (one day).
  * **Monthly:** **Day of month** (1st–31st). "Months without a 31st are skipped".
  * **Daily**, **Weekly**, **Monthly:** **Run at time**, in whole hours.
  * **Minute** and **Hourly:** **Maximum runs per day** (default 10) and **Minimum Interval** in minutes (default 0). The time between runs is the longer of the frequency and the Minimum Interval.
* **Stop flow if node fails** (on by default): "When off, the flow keeps running the remaining nodes after a failure".

Then click **Run** → **Set live**. A schedule never runs until the workflow is live. To try it once without going live, use **Run only once now**.

There's no field for a cron expression. A schedule made with one in the past shows as **Custom**: "This schedule can't be edited here. It keeps running as is — choose a frequency above to replace it."

## Test a trigger

Some triggers can capture a real sample event, so later steps have example data to work with.

1. Click the trigger card → **Capture test event** (or open its **Test** panel) → **Run Test**.
2. Do the real thing: send an email to the connected account, add a row to the list, post to the webhook URL. The panel shows, for example, "We are now listening for emails to be received by …".
3. Captured events are listed. Choose one with **Use as test event for Run Once**.

This works for **Email Received**, **LinkedIn Message Received**, Slack, **Record Created** / **Updated**, Google Calendar and **Custom Webhook**.

## Good to know

* **One trigger kind per workflow.** You can stack several **Event** triggers, but not several schedules, forms or lists.
* **Scheduled runs that overlap run at the same time.** If a run is still going when the next one is due, both run.
* **Maximum runs per day:** once reached, later scheduled runs that day are skipped, with no row in **Runs**. Starting a run by hand still works.
* **Running hours** in [Workflow settings](/automations/workflows/test-and-run#workflow-settings) can hold back event and webhook runs outside the hours you choose.
* **Credits** are checked before a workflow goes live, when a schedule is saved, and before each webhook run.
* **Who can change triggers:** anyone with edit access to the workflow.

## Troubleshooting

<AccordionGroup>
  <Accordion title="My scheduled workflow never runs">
    **Why:** It isn't live. Schedules only fire while the workflow is live.
    **Fix:** **Run** → **Set live**. The Automations page should then show **Active**.
  </Accordion>

  <Accordion title="My schedule runs at the wrong hour">
    **Why:** The schedule uses the trigger's **Timezone**, which defaults to the browser timezone of whoever set it up.
    **Fix:** Open the trigger card and set **Timezone** explicitly, then **Save**.
  </Accordion>

  <Accordion title="Minute schedule runs less often than I expect">
    **Why:** **Minimum Interval** is longer than the frequency, or **Maximum runs per day** has been reached.
    **Fix:** Lower **Minimum Interval** (0 means no extra wait) or raise **Maximum runs per day**.
  </Accordion>

  <Accordion title="The schedule stopped partway through the day">
    **Why:** **Maximum runs per day** was reached. Further runs that day are skipped and don't appear in Runs.
    **Fix:** Raise **Maximum runs per day**.
  </Accordion>

  <Accordion title="Record Created doesn't fire">
    **Why:** It only fires when a record is added to the list chosen in the trigger, and only while the workflow is live.
    **Fix:** Check the **List** in the trigger, add the record to that list, and make sure the workflow is live. Check your **Column Filters** too.
  </Accordion>

  <Accordion title="An import started hundreds of runs">
    **Why:** Each imported record fires its own Record Created run.
    **Fix:** Add **Column Filters** to the trigger, or set the workflow to draft while importing.
  </Accordion>

  <Accordion title="The workflow is live but stopped reacting after I reconnected an account">
    **Why:** Removing an account switches off triggers that used only that account, even though the workflow still shows Live.
    **Fix:** Open the trigger, select the account again and **Save**. Then pause the workflow and **Set live** again.
  </Accordion>

  <Accordion title="Calendly rejected the webhook subscription">
    **Why:** Calendly only allows this on paid Calendly plans (Standard or above).
    **Fix:** Upgrade the connected Calendly account, then set the workflow live again.
  </Accordion>

  <Accordion title="Slack trigger is silent in a private channel">
    **Why:** Connie's bot isn't in that channel.
    **Fix:** Invite the Connie bot to the channel in Slack.
  </Accordion>

  <Accordion title="No email accounts connected. Connect an account in the trigger configuration first.">
    **Why:** The trigger has no connected account to listen to.
    **Fix:** Pick an account in **Connected Account**, or click **+ Add account**. See [Connect accounts](/tools/connect-accounts).
  </Accordion>

  <Accordion title="This trigger is bound to a disconnected account">
    **Why:** The account the trigger uses was disconnected.
    **Fix:** Re-select the account on the trigger card, **Save**, and set the workflow live again.
  </Accordion>

  <Accordion title="Calendar listening expired. Please run the test again.">
    **Why:** The test listener timed out before an event arrived.
    **Fix:** Click **Run Test** again and trigger the calendar event straight away.
  </Accordion>

  <Accordion title="This schedule can't be edited here">
    **Why:** It was created from a custom timing the controls can't show. It keeps running as it is.
    **Fix:** Choose a frequency to replace it, then **Save**.
  </Accordion>
</AccordionGroup>

## Related

* [Webhooks](/automations/workflows/webhooks) — start a workflow from any outside app
* [Variables](/automations/workflows/variables) — use the trigger's data in later steps
* [Test and run](/automations/workflows/test-and-run) — run once, set live, workflow settings
* [Records lists](/records/lists-and-views) — the lists that list-based workflows and record events use
* [Connect accounts](/tools/connect-accounts) — connect Gmail, Slack, HubSpot and more


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.