# Lead Gen Initiatives

Lead generation results and the multi-step outreach initiatives that work them.

**Base URL:** `https://api.trustpager.com/functions/v1/api/v1`

## Endpoints

### POST /lead-gen/initiatives/:initiative_id/steps

Add a step to an initiative. Quick mode: pass action_type + action_config + delay. Bring-your-own mode: pass automation_id.

**Scopes:** `lead-gen:write` — [full detail](./lead-gen-initiatives/post-lead-gen-initiatives-initiative-id-steps.md)

### POST /lead-gen/initiatives

Create an outreach initiative (multi-step sequence) for lead-gen leads. Send-cadence fields are optional — sensible defaults apply (40 emails/day, 09:00-17:00 Mon-Fri Sydney, 90s minimum gap). Override only if the user needs a specific pace.

**Scopes:** `lead-gen:write` — [full detail](./lead-gen-initiatives/post-lead-gen-initiatives.md)

### POST /lead-gen/results

Manually insert a lead_gen_result (hand-curated lead, CSV import, smoke fixture).

**Scopes:** `lead-gen:write` — [full detail](./lead-gen-initiatives/post-lead-gen-results.md)

### DELETE /lead-gen/initiatives/:initiative_id

Delete an initiative and all its steps + underlying automations.

**Scopes:** `lead-gen:delete` — [full detail](./lead-gen-initiatives/delete-lead-gen-initiatives-initiative-id.md)

### DELETE /lead-gen/initiatives/:initiative_id/steps/:step_id

Delete a step from an initiative and its underlying automation.

**Scopes:** `lead-gen:delete` — [full detail](./lead-gen-initiatives/delete-lead-gen-initiatives-initiative-id-steps-step-id.md)

### POST /lead-gen/initiatives/:initiative_id/enrol

Enrol one or more lead_gen_results into an initiative. Schedules the first step task and tracks the rest as the dispatcher advances each enrolment.

**Scopes:** `lead-gen:write` — [full detail](./lead-gen-initiatives/post-lead-gen-initiatives-initiative-id-enrol.md)

### GET /lead-gen/initiatives/:initiative_id

Get an initiative with its steps and underlying automations.

**Scopes:** `lead-gen:read` — [full detail](./lead-gen-initiatives/get-lead-gen-initiatives-initiative-id.md)

### GET /lead-gen/initiatives/:initiative_id/enrolments

List enrolments for an initiative with their joined lead-gen result snapshots.

**Scopes:** `lead-gen:read` — [full detail](./lead-gen-initiatives/get-lead-gen-initiatives-initiative-id-enrolments.md)

### GET /lead-gen/initiatives

List outreach initiatives in this workspace.

**Scopes:** `lead-gen:read` — [full detail](./lead-gen-initiatives/get-lead-gen-initiatives.md)

### POST /lead-gen/initiatives/dispatcher/run

Run the initiative dispatcher synchronously for this workspace. Fires any pending step tasks whose scheduled_for has passed. Same code path as the cron tick.

**Scopes:** `lead-gen:write` — [full detail](./lead-gen-initiatives/post-lead-gen-initiatives-dispatcher-run.md)

### PATCH /lead-gen/initiatives/:initiative_id

Update an initiative — name, description, active state, or send-cadence (daily cap, send window, days, min-gap). Only present fields are written.

**Scopes:** `lead-gen:write` — [full detail](./lead-gen-initiatives/patch-lead-gen-initiatives-initiative-id.md)

### PATCH /lead-gen/initiatives/:initiative_id/steps/:step_id

Update an initiative step (delay, ordering, is_active).

**Scopes:** `lead-gen:write` — [full detail](./lead-gen-initiatives/patch-lead-gen-initiatives-initiative-id-steps-step-id.md)
