Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://developers.flowestate.app/llms.txt

Use this file to discover all available pages before exploring further.

Esta página cubre el API de gestión de suscripciones a webhooks. Para el formato de las entregas entrantes (headers, firmas, política de reintentos) ver la guía de Webhooks.

Listar tipos de eventos

GET /webhooks/events
Scope: webhooks:manage. Devuelve la lista completa de tipos de eventos a los que puedes suscribirte, más una agrupación de UI.

Response 200

{
  "events": [
    "lead.created", "lead.updated", "lead.stage_changed",
    "lead.assigned", "lead.unassigned",
    "lead.won", "lead.lost", "lead.deleted",
    "lead.note_added", "lead.communication_logged",
    "project.created", "project.updated", "project.deleted",
    "unit.created", "unit.updated", "unit.status_changed"
  ],
  "groups": {
    "Leads": ["lead.created", "lead.updated", "lead.stage_changed", "lead.assigned", "lead.unassigned", "lead.won", "lead.lost", "lead.deleted", "lead.note_added", "lead.communication_logged"],
    "Projects": ["project.created", "project.updated", "project.deleted"],
    "Units": ["unit.created", "unit.updated", "unit.status_changed"]
  }
}
Usa el objeto groups para construir un dropdown ordenado en tu UI de integración. El array events es la lista plana para validación.

Listar suscripciones

GET /webhooks/subscriptions
Scope: webhooks:manage. Lista las suscripciones gestionadas por el cliente que llama (solo integraciones Zapier / Make / API — las suscripciones gestionadas desde el panel quedan exclusivamente bajo el panel).

Response 200

{
  "data": [
    {
      "id": "wh_...",
      "target_url": "https://hook.example.com/incoming",
      "events": ["lead.created"],
      "external_id": "make-scenario-42",
      "managed_by": "make",
      "is_active": true,
      "created_at": "2026-04-29T18:04:15.000Z"
    }
  ]
}

Crear una suscripción

POST /webhooks/subscriptions
Scope: webhooks:manage.

Request body

{
  "target_url": "https://hook.example.com/incoming",
  "event": "lead.created",
  "external_id": "make-scenario-42",
  "name": "Make: leads nuevos"
}
CampoRequeridoNotas
target_urlURL HTTPS para recibir los eventos.
eventUn solo tipo de evento por suscripción.
external_idnoMuy recomendado. Ver nota de idempotencia abajo.
namenoEtiqueta humana, ≤ 255 caracteres.
Pasa siempre external_id cuando puedas — típicamente es el ID del scenario / zap / flow de tu lado. Si la suscripción ya existe para ese external_id, la llamada es idempotente y devuelve 200 con el registro existente en lugar de 409. Esto es lo que hace seguros los reintentos de Make / Zapier ante replays.

Response 201 (suscripción nueva)

{
  "id": "wh_...",
  "target_url": "https://hook.example.com/incoming",
  "event": "lead.created",
  "external_id": "make-scenario-42",
  "managed_by": "make",
  "secret": "<secret hex>",
  "supported_events": ["lead.created", "..."]
}
El secret se devuelve solo al momento de la creación. Guárdalo — lo necesitas para verificar las firmas de los webhooks (ver Verificar la firma). Si lo pierdes, elimina la suscripción y crea una nueva.

Response 200 (replay idempotente)

Cuando el external_id ya existe para este cliente, recibes la suscripción existente con el mismo body pero sin secret. Tu secret guardado de la creación original sigue siendo válido.

Errores

  • 403 FORBIDDEN — falta el scope webhooks:manage, o se alcanzó el límite del plan para webhook endpoints.

Obtener una suscripción

GET /webhooks/subscriptions/{id}
Scope: webhooks:manage. Suscripción individual.

Eliminar una suscripción

DELETE /webhooks/subscriptions/{id}
Scope: webhooks:manage. Borrado duro de las suscripciones de plataformas externas.
Las suscripciones gestionadas desde el panel solo se pueden borrar desde la UI de FlowEstate — el API devuelve 403 para esos casos. Esto protege a los usuarios de que conectores de terceros eliminen accidentalmente suscripciones que no crearon.

Response 200

{ "id": "wh_...", "deleted": true }