Saltar al contenido

Agenda o envio (uma vez ou recorrente)

POST/api/campaigns/{id}/schedule

Auth
Requiere token
Quién puede:
owner
admin
moderator
finance
X-CommunityId
X-CommunityId Envía el X-CommunityId de la comunidad en la que ocurre la operación.
Las descripciones de los endpoints vienen de la especificación de la API y, por ahora, están en portugués. La interfaz alrededor está traducida.

**Só owner e admin** (moderador e financeiro recebem 403). **Vai mandar e-mail em volume nos horários marcados.** `scheduleKind` `ONCE` (padrão) usa `sendAt`, a data e a hora no **fuso da comunidade** (`2026-10-20T09:00`; qualquer `Z` ou deslocamento é ignorado: o texto é horário local; passado ou inválido é 422 em `sendAt`). `DAILY` usa `timeOfDay` (`09:00`, hora local). `WEEKLY` usa `weekdays` (0 = domingo a 6 = sábado) e `timeOfDay`. A criação padrão de uma campanha é de envio único; a recorrência é escolha explícita. Aceita rascunho, campanha já agendada (reagenda) ou pausada, e exige `consent: true` na primeira vez. Nada entra na fila agora: o job de campanhas (a cada 5 minutos) dispara na hora, relê o público e o conteúdo (blocos dinâmicos mostram só o que é novo desde o disparo anterior), confere a cota (consumida no disparo, não aqui) e envia uma só vez. Disparo recorrente sem nada novo é **pulado** e registrado (`SKIPPED`, `noNewContent`); sem cota, pulado e o owner recebe um aviso por e-mail (uma vez por disparo); envio único com mais de 12 horas de atraso também é pulado. Pausar preserva a próxima data. Campanha automática (`kind: AUTOMATIC`) não usa esta rota (409): veja `/api/campaigns/automatic`.

Parámetros

NombreDóndeTipoDescripción
idobligatoriopathstring (uuid)

Headers

NombreTipoDescripción
X-CommunityIdopcionalstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Cuerpo de la solicitud application/json

NombreTipoDescripción
scheduleKindopcionalONCE | DAILY | WEEKLY
sendAtopcionalstringSó em ONCE.
timeOfDayopcionalstringEm DAILY e WEEKLY, hora local.
weekdaysopcionalinteger[]Só em WEEKLY (0 = domingo).
consentopcionalboolean

Respuestas

CódigoDescripción
200Campanha agendada (status SCHEDULED, com `nextRunAt` em UTC).
401Token ausente, inválido ou expirado.
403Autenticado, mas sem permissão para esta operação.
404Recurso não encontrado.
409Conflito com o estado atual do recurso.
422Data inválida ou no passado; consentimento, assunto ou público ausentes.
500Erro interno do servidor.

Ejemplo con curl

curl -X POST "https://api.memberfy.net/api/campaigns/<id>/schedule" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{}'