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

# Create and list iBlueprint blueprint triggers

> Manage iBlueprint trigger configurations: list existing triggers and create scheduled, webhook, email, Slack, or API triggers to automate blueprint runs.

Triggers define how and when a blueprint runs automatically. Each trigger is attached to a specific blueprint and has a `triggerType` that determines the activation source — from a recurring schedule to an incoming Slack message. iBlueprint evaluates active triggers continuously and fires the associated blueprint when a trigger's conditions are met. You can attach multiple triggers to a single blueprint.

## Trigger types

| Type        | Description                                                                                                           |
| ----------- | --------------------------------------------------------------------------------------------------------------------- |
| `manual`    | Fired explicitly via the `blueprintTriggers.fire` procedure or the iBlueprint UI.                                     |
| `scheduled` | Fires on a cron schedule. Supply a cron expression in `config.cron`.                                                  |
| `webhook`   | Fires when an external HTTP request hits the generated webhook URL. See [Webhooks](/api-reference/triggers/webhooks). |
| `email`     | Fires when an email arrives at the blueprint's inbox address.                                                         |
| `slack`     | Fires when a specific Slack event occurs (e.g. a message in a channel).                                               |
| `event`     | Fires in response to an internal iBlueprint platform event.                                                           |
| `api`       | Fires when called programmatically via the `blueprintTriggers.fire` mutation.                                         |

***

## List triggers — `blueprintTriggers.list`

Returns all triggers configured for a blueprint.

**Procedure type:** query (HTTP `GET`)

**Endpoint:**

```
GET https://api.iblueprint.ai/api/trpc/blueprintTriggers.list
```

### Parameters

<ParamField query="json.blueprintId" type="string" required>
  UUID of the blueprint whose triggers you want to list.
</ParamField>

### Response

An array of trigger objects.

<ResponseField name="id" type="string">UUID of the trigger.</ResponseField>
<ResponseField name="blueprint_id" type="string">Blueprint this trigger is attached to.</ResponseField>
<ResponseField name="trigger_type" type="string">One of the trigger types listed above.</ResponseField>
<ResponseField name="config" type="object">Trigger-specific configuration. For `scheduled` triggers, contains `cron`. For `webhook` triggers, may contain a `secret` for signature verification.</ResponseField>
<ResponseField name="is_active" type="boolean">`true` if the trigger is currently enabled.</ResponseField>
<ResponseField name="created_by" type="string">UUID of the user who created the trigger.</ResponseField>

### Example

```bash theme={null}
curl -G "https://api.iblueprint.ai/api/trpc/blueprintTriggers.list" \
  --data-urlencode 'input={"json":{"blueprintId":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}}' \
  -H "Authorization: Bearer YOUR_API_KEY"
```

***

## Create a trigger — `blueprintTriggers.create`

Adds a new trigger to a blueprint.

**Procedure type:** mutation (HTTP `POST`)

**Endpoint:**

```
POST https://api.iblueprint.ai/api/trpc/blueprintTriggers.create
Content-Type: application/json
```

### Parameters

<ParamField body="json.blueprintId" type="string" required>
  UUID of the blueprint to attach the trigger to.
</ParamField>

<ParamField body="json.triggerType" type="string" required>
  The type of trigger. Accepted values: `manual`, `scheduled`, `webhook`, `email`, `slack`, `event`, `api`.
</ParamField>

<ParamField body="json.config" type="object">
  Trigger-specific configuration object. Defaults to `{}`.

  For a `scheduled` trigger, provide a cron expression:

  ```json theme={null}
  { "cron": "0 9 * * 1-5" }
  ```

  For a `webhook` trigger, you can optionally provide a secret for signature verification:

  ```json theme={null}
  { "secret": "your-webhook-secret" }
  ```
</ParamField>

### Examples

<CodeGroup>
  ```bash Scheduled trigger (curl) theme={null}
  curl -X POST "https://api.iblueprint.ai/api/trpc/blueprintTriggers.create" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "json": {
        "blueprintId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "triggerType": "scheduled",
        "config": {
          "cron": "0 9 * * 1-5"
        }
      }
    }'
  ```

  ```bash Webhook trigger (curl) theme={null}
  curl -X POST "https://api.iblueprint.ai/api/trpc/blueprintTriggers.create" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "json": {
        "blueprintId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "triggerType": "webhook",
        "config": {
          "secret": "whsec_my-signing-secret"
        }
      }
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://api.iblueprint.ai/api/trpc/blueprintTriggers.create',
    {
      method: 'POST',
      headers: {
        Authorization: 'Bearer YOUR_API_KEY',
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        json: {
          blueprintId: '3fa85f64-5717-4562-b3fc-2c963f66afa6',
          triggerType: 'scheduled',
          config: { cron: '0 9 * * 1-5' },
        },
      }),
    }
  );

  const { result } = await response.json();
  const trigger = result.data.json;
  console.log('Created trigger:', trigger.id);
  ```
</CodeGroup>

### Sample response

```json theme={null}
{
  "result": {
    "data": {
      "json": {
        "id": "trigger-uuid",
        "blueprint_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "trigger_type": "scheduled",
        "config": { "cron": "0 9 * * 1-5" },
        "is_active": true,
        "created_by": "user-uuid"
      }
    }
  }
}
```
