# Trigger

> Starts the flow.

Every flow has exactly one. By default it starts when a HubSpot form is submitted; it can also start from a webhook, a contact change or a meeting outcome.

| | |
|---|---|
| Type | `trigger` |
| Group | Triggers |

## Exits

| Exit | Name |
|---|---|
| `next` | Next |

## Settings

| Key | Label | Takes | Default | Notes |
|---|---|---|---|---|
| `kind` | The flow starts when | `form` A HubSpot form is submitted, `webhook` Another system posts to this flow's address, `record` A HubSpot contact is created or changed, `meeting` A meeting Signalbox booked has an outcome | `form` | A flow that does not start from a form runs with nobody on the page: a step that shows the visitor something is passed over. |
| `change` | For a contact: when it is | `created` Created, `property` Changed: a property | `created` |  |
| `property` | For a changed contact: the property | A string. |  | The property's name in HubSpot, such as lifecyclestage. |
| `value` | For a changed contact: changes to | A string. |  | Blank: any change. |
| `outcomes` | For a meeting: when it is | `COMPLETED` Held, `NO_SHOW` A no-show, `CANCELED` Cancelled, `RESCHEDULED` Rescheduled |  | None ticked: any of them. |

## Fields it adds

| Field | What |
|---|---|
| `trigger.kind` | What started the flow (form, webhook, record or meeting) |
| `trigger.property` | The contact property that changed |
| `trigger.value` | What the property changed to |
| `trigger.outcome` | The meeting's outcome (COMPLETED, NO_SHOW, CANCELED or RESCHEDULED) |

## In a flow document

```json
{
  "id": "t",
  "type": "trigger",
  "settings": {
    "kind": "form",
    "change": "created"
  }
}
```
