Receba novidades do Hedhog no seu e-mail
Novos lançamentos, receitas e breaking changes — sem spam.
Submódulo Campaign
recipients
CRUD direto sobre registros individuais de campaign_recipient em todas as listas.
Caminho de origem: libraries/campaign/src/services/campaign-recipient.service.ts
Arquivo do módulo: campaign.module.ts
Introdução
O submódulo Recipients expõe um CRUD plano e agnóstico à lista sobre as linhas `campaign_recipient` através do CampaignRecipientService — uma contraparte mais leve dos endpoints de gerenciamento de destinatários aninhados sob Recipient Lists. Enquanto o submódulo recipient-lists gerencia destinatários no contexto de uma lista específica (importação em massa, sincronização com o CRM, cadastro público, recálculo dos contadores da lista), este submódulo serve para acesso direto e por registro único: consultar, editar ou remover um destinatário pelo seu próprio ID, independentemente de a qual lista ele pertence.
Criar um destinatário aqui ainda requer um `list_id` e faz upsert por e-mail dentro dessa lista, espelhando a mesma regra de unicidade imposta em outros lugares (uma linha de destinatário por e-mail por lista). As atualizações permitem alterar o status — incluindo os status terminais/bloqueadores `unsubscribed`, `suppressed`, `bounced` e `invalid` que o CampaignDispatchService e o CampaignEmailWorkerService verificam antes de incluir um destinatário em um envio. Os valores de e-mail são normalizados para minúsculas tanto na criação quanto na atualização, de modo que as buscas e a deduplicação permaneçam insensíveis a maiúsculas/minúsculas em todo o módulo.
Ao contrário dos endpoints de destinatário do submódulo recipient-lists, este submódulo não chama `recalculateCounters()` na lista proprietária após criar/atualizar/excluir — os chamadores que precisam que as contagens consolidadas da lista reflitam uma mudança feita através deste submódulo devem esperar uma leve defasagem até que a próxima mutação de destinatário no nível da lista dispare um recálculo.
Endpoints HTTP
6 endpoints
Lista paginada de todos os destinatários em todas as listas.
- Query
- page, pageSize, search, status
Cria um destinatário e o atribui a uma lista. Faz upsert por e-mail dentro da lista.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| string | yes | Valid email address; normalized to lowercase | |
| list_id | number | yes | Target recipient list |
| name | string | no | — |
| first_name | string | no | — |
| last_name | string | no | — |
| company | string | no | — |
| phone | string | no | — |
| status | "active" | "inactive" | "unsubscribed" | "suppressed" | "bounced" | "invalid" | no | Default: "active" |
| source | "manual" | "import" | "crm" | "mixed" | no | Default: "manual" |
| person_id | number | no | CRM person reference |
| metadata | object | no | — |
Exclusão em massa de destinatários.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| ids | number[] | yes | IDs to delete |
Obtém um destinatário por ID.
- Params
- id (int)
Atualiza um destinatário. Apenas os campos fornecidos são alterados.
- Params
- id (int)
Body
| Field | Type | Required | Notes |
|---|---|---|---|
| string | no | Normalized to lowercase | |
| name | string | no | — |
| status | "active" | "inactive" | "unsubscribed" | "suppressed" | "bounced" | "invalid" | no | — |
| source | "manual" | "import" | "crm" | "mixed" | no | — |
| person_id | number | no | — |
Exclui um único destinatário.
- Params
- id (int)