Campanhas

URL base da API
https://crm.vdgestaobranding.com/api/v1

A documentação fica em developers.vdgestaobranding.com, mas todas as chamadas vão para crm.vdgestaobranding.com/api/v1.

GET/campaigns
campaigns:read

Listar campanhas

  • status — rascunho, agendada, enviando, pausada, concluida, cancelada.
  • limit — Itens por página (1–100, padrão 25).
  • cursor — Valor de next_cursor da página anterior.
curl -X GET "https://crm.vdgestaobranding.com/api/v1/campaigns" \
  -H "Authorization: Bearer $VDCRM_API_KEY"
Resposta 200
{
  "data": [
    {
      "id": "7c3a…",
      "name": "Black Friday",
      "status": "rascunho",
      "waba_id": "1095419929937194",
      "totals": {
        "total": 1200,
        "sent": 0,
        "delivered": 0,
        "read": 0,
        "replied": 0,
        "failed": 0,
        "skipped": 0
      }
    }
  ],
  "next_cursor": null
}
POST/campaigns
campaigns:write
Idempotency-Key

Criar campanha

Uma campanha usa uma única WABA da operação e números dessa mesma WABA. start=false cria como rascunho; use /dispatch para disparar. Suporta A/B (variants, soma 100%), agendamento (scheduled_at) e janela de envio (send_window).

curl -X POST "https://crm.vdgestaobranding.com/api/v1/campaigns" \
  -H "Authorization: Bearer $VDCRM_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Black Friday",
  "waba_id": "1095419929937194",
  "phone_number_refs": [
    "a0b1…"
  ],
  "template": {
    "name": "promo_novembro",
    "language": "pt_BR",
    "variables": [
      {
        "source": "field",
        "field": "nome",
        "fallback": "cliente"
      },
      {
        "source": "text",
        "value": "20"
      }
    ]
  },
  "audience": {
    "include_lists": [
      "l1…"
    ],
    "include_tags": [],
    "exclude_lists": [],
    "exclude_tags": [
      "nao_enviar"
    ]
  },
  "scheduled_at": null,
  "rate_per_second": 10,
  "send_window": {
    "start": 9,
    "end": 20,
    "days": [
      1,
      2,
      3,
      4,
      5
    ]
  },
  "start": false
}'
Resposta 201
{
  "id": "7c3a…",
  "name": "Black Friday",
  "status": "rascunho",
  "waba_id": "1095419929937194",
  "totals": {
    "total": 1200,
    "sent": 0,
    "delivered": 0,
    "read": 0,
    "replied": 0,
    "failed": 0,
    "skipped": 0
  },
  "eligible_recipients": 1200
}
GET/campaigns/{id}
campaigns:read

Obter campanha

curl -X GET "https://crm.vdgestaobranding.com/api/v1/campaigns/{id}" \
  -H "Authorization: Bearer $VDCRM_API_KEY"
Resposta 200
{
  "id": "7c3a…",
  "name": "Black Friday",
  "status": "rascunho",
  "waba_id": "1095419929937194",
  "totals": {
    "total": 1200,
    "sent": 0,
    "delivered": 0,
    "read": 0,
    "replied": 0,
    "failed": 0,
    "skipped": 0
  }
}
POST/campaigns/{id}/dispatch
campaigns:write

Disparar agora

curl -X POST "https://crm.vdgestaobranding.com/api/v1/campaigns/{id}/dispatch" \
  -H "Authorization: Bearer $VDCRM_API_KEY"
Resposta 200
{
  "id": "7c3a…",
  "name": "Black Friday",
  "status": "rascunho",
  "waba_id": "1095419929937194",
  "totals": {
    "total": 1200,
    "sent": 0,
    "delivered": 0,
    "read": 0,
    "replied": 0,
    "failed": 0,
    "skipped": 0
  }
}
POST/campaigns/{id}/pause
campaigns:write

Pausar

curl -X POST "https://crm.vdgestaobranding.com/api/v1/campaigns/{id}/pause" \
  -H "Authorization: Bearer $VDCRM_API_KEY"
Resposta 200
{
  "id": "7c3a…",
  "name": "Black Friday",
  "status": "rascunho",
  "waba_id": "1095419929937194",
  "totals": {
    "total": 1200,
    "sent": 0,
    "delivered": 0,
    "read": 0,
    "replied": 0,
    "failed": 0,
    "skipped": 0
  }
}
POST/campaigns/{id}/resume
campaigns:write

Retomar

curl -X POST "https://crm.vdgestaobranding.com/api/v1/campaigns/{id}/resume" \
  -H "Authorization: Bearer $VDCRM_API_KEY"
Resposta 200
{
  "id": "7c3a…",
  "name": "Black Friday",
  "status": "rascunho",
  "waba_id": "1095419929937194",
  "totals": {
    "total": 1200,
    "sent": 0,
    "delivered": 0,
    "read": 0,
    "replied": 0,
    "failed": 0,
    "skipped": 0
  }
}
POST/campaigns/{id}/cancel
campaigns:write

Cancelar

curl -X POST "https://crm.vdgestaobranding.com/api/v1/campaigns/{id}/cancel" \
  -H "Authorization: Bearer $VDCRM_API_KEY"
Resposta 200
{
  "id": "7c3a…",
  "name": "Black Friday",
  "status": "rascunho",
  "waba_id": "1095419929937194",
  "totals": {
    "total": 1200,
    "sent": 0,
    "delivered": 0,
    "read": 0,
    "replied": 0,
    "failed": 0,
    "skipped": 0
  }
}
GET/campaigns/{id}/results
campaigns:read

Resultados

Funil, erros por motivo (com explicação) e contagem por variante.

curl -X GET "https://crm.vdgestaobranding.com/api/v1/campaigns/{id}/results" \
  -H "Authorization: Bearer $VDCRM_API_KEY"
Resposta 200
{
  "funnel": {
    "total": 1200,
    "sent": 1180,
    "delivered": 1150,
    "read": 900,
    "replied": 120,
    "failed": 20,
    "skipped": 0
  },
  "errors": [
    {
      "meta_code": "131049",
      "count": 12,
      "title": "Meta limitou mensagens de marketing",
      "explanation": "…",
      "action": "…"
    }
  ],
  "variants": [
    {
      "variant": 0,
      "template_name": "promo_novembro",
      "counts": {
        "lido": 900
      }
    }
  ]
}
GET/campaigns/{id}/recipients
campaigns:read

Destinatários

  • status — pendente, enviado, entregue, lido, falhou…
  • limit — 1–500.
  • cursor — Cursor.
curl -X GET "https://crm.vdgestaobranding.com/api/v1/campaigns/{id}/recipients" \
  -H "Authorization: Bearer $VDCRM_API_KEY"