Recebe a chamada de um sistema externo que inicia um workflow (webhook de entrada)
POST/api/workflow-hooks
- Auth
- Requires a token
- API key:
- No API key accepted
O endereço de um gatilho `webhook.received`, criado em `POST /api/workflows/{id}/triggers/{nodeId}/webhook`. Sem sessão e sem `X-CommunityId`: o token diz qual workflow. Mande o token no cabeçalho `X-Memberfy-Hook-Token` (recomendado: fica fora dos logs de roteador) ou no caminho (`/api/workflow-hooks/{token}`). Corpo: JSON (`Content-Type: application/json`, até 64 KB). O gatilho diz onde está a pessoa (`match.by`: `email` ou `memberId`, `match.path` com pontos) e quais valores viram variáveis (`{{gatilho_<key>}}`, texto, até 500 caracteres); o resto do corpo é descartado e nunca é gravado. **Assinatura HMAC** (obrigatória quando o caminho do gatilho manda e-mail, DM, comentário, reação ou Slack): `X-Memberfy-Signature: t=<unix>,v1=<hex>`, HMAC-SHA256 com o segredo do gatilho sobre `"<t>.<corpo cru>"`, com `t` em até 5 minutos, e `X-Memberfy-Delivery-Id` (até 64 letras, dígitos, `-` e `_`) único por chamada: repetido em 10 minutos, 409. A resposta é sempre **202** quando o token e a assinatura valem, achando ou não a pessoa: o resultado de cada chamada (`started`, `personNotFound`, `notActive`, `reentryBlocked`, `personDailyLimit`, `hmacRequired`, `loop`) aparece para a equipe em `GET /api/workflows/{id}/webhook-deliveries`. Uma chamada com `X-Memberfy-Run-Id` de uma execução do próprio workflow (um laço por um sistema de fora) é descartada calada. Cada pessoa recebe no máximo 5 execuções por dia vindas do webhook de um workflow. Limites: 60 por minuto e 5.000 por dia por endereço (429 com `Retry-After`).
Headers
| Name | Type | Description |
|---|---|---|
X-Memberfy-Hook-Tokenoptional | string | |
X-Memberfy-Signatureoptional | string | |
X-Memberfy-Delivery-Idoptional | string |
Request body application/json
The specification does not declare the fields of this body (a multipart upload, for example). See the topic guide.
Responses
| Status | Description |
|---|---|
202 | Aceito (a pessoa é procurada depois). |
401 | Assinatura ausente, errada ou fora do prazo (`workflows.webhookSignatureInvalid`). |
404 | Token desconhecido, revogado ou de workflow excluído (`workflows.webhookNotFound`). |
409 | `X-Memberfy-Delivery-Id` repetido (`workflows.webhookReplay`). |
413 | Corpo acima de 64 KB. |
415 | Corpo que não é JSON (`workflows.webhookJsonOnly`). |
422 | JSON inválido ou `X-Memberfy-Delivery-Id` inválido. |
429 | Limite por minuto ou por dia; `Retry-After`. |
503 | Verificação de repetição indisponível; tente de novo. |
curl example
curl -X POST "https://api.memberfy.net/api/workflow-hooks" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}'