---
title: "Ingest end user data from a CRM webhook"
method: POST
path: "/api/ingestion/crm/{crm_integration_heron_id}"
---

# Ingest end user data from a CRM webhook

`POST /api/ingestion/crm/{crm_integration_heron_id}`

## Request

- Base URL: `https://app.herondata.io`
- URL: `https://app.herondata.io/api/ingestion/crm/{crm_integration_heron_id}`
- Auth: API key in header `x-api-key`

Receives a webhook payload from a CRM integration and syncs the end user via the ingestion pipeline. Per-CRM payload shapes are parsed by the matching CRM client; only the generic ingestion controls documented below are read directly here.

## Path parameters

- `crm_integration_heron_id` string, required

## Request body

- object
  - `start_workflow` boolean: When true, entity data nudges the policy workflow only if no files are saved. Saved files start the workflow through their classification pipeline. Broker callers omit it because their submission trigger owns workflow progress.

## Response `200`

End user successfully ingested

- object
  - `end_user_heron_id` string

## Other responses

- `400`: Invalid payload or unsupported CRM provider
- `404`: CRM integration not found

## Changes

- **2026-11-03** `bd8008e49534`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/herondata/apis/heron-data-api/changes/api/ingestion/crm/:crm_integration_heron_id/post.md)

---

[API](https://skmtc.dev/herondata/apis/heron-data-api.md) - [All operations](https://skmtc.dev/herondata/apis/heron-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/herondata/apis/heron-data-api/revisions/1ec936e17fef?raw)
