Synergy Connect

Documentação

Listar as Jornadas ativas

GET/{version}/{id}/journeys

Devolve as Jornadas ativas da conta (id, name e trigger), lidas da cópia que a própria conta guarda: não consulta mais nada. Serve para conferir quais Jornadas de gatilho api podem ser iniciadas por POST …/journeys/{journey_id}/runs.

{id} é o phone_number_id (WhatsApp) ou o ig-user-id (Instagram): a rota descobre o canal pelo id, com a mesma regra do envio de mensagens.

Aceita uma chave de escopo messages ou read. Exige os recursos api, journeys e journeysPro no plano (e instagram, numa conta do Instagram).

Requer#

Escopo da chave
Enviar mensagens messagesComo os escopos funcionam
Recurso do plano
API e webhooks api e journeys journeys e journeysPro journeysProVer os planos que incluem
Formato
O da API de WhatsApp Cloud da Meta, na requisição e na resposta.

Parâmetros#

No caminho#

No caminho
NomeTipoObrigatórioDescrição
versionstringobrigatórioA versão da Graph API da Meta que a chamada usa (vN.N): repassada à Meta como veio.
idstringobrigatórioO phone_number_id de um número de WhatsApp ou o ig-user-id de uma conta do Instagram da organização. A rota descobre o canal pelo id (um id que ela não conhece pode responder 429 com Retry-After: 1 em vez de 404: repita).

Cabeçalhos#

Cabeçalhos
NomeTipoObrigatórioDescrição
AuthorizationstringobrigatórioSua chave de API, no formato Bearer <chave>. Veja Autenticação.

Respostas#

Respostas
StatusCódigoQuando acontece
200—Duas Jornadas
401190Sem Authorization: Bearer, chave malformada ou forjada, chave revogada, ou chave sem acesso a este número
403200A chave não tem o escopo messages
4031390004O plano da organização não inclui a API
4031390005Conta em modo leitura ou suspensa por falta de pagamento
404100O phone_number_id não é um número ativo desta organização (ou não tem de 5 a 20 dígitos)
429130429Mais de 2000 requisições em 10 s com esta chave neste número (Retry-After: 10)
429130429O número acabou de recusar por vazão, ou está sobrecarregado: o 429 se repete por 200 ms (Retry-After: 1)
429130429O id é novo para a rota e a chave já gastou as 30 tentativas do minuto: Retry-After: 1
5032Serviço temporariamente indisponível

Os erros no formato da Meta trazem o código em error.code. Ver todos os erros.

Corpo da resposta 200#

Campos da resposta 200
NomeTipoObrigatórioDescrição
dataobject[]obrigatório
data[].idstringobrigatórioO id da Jornada.
data[].namestringobrigatórioO nome dado no editor.
data[].triggerstringobrigatórioO tipo do gatilho (api, keyword, comment…). Só as de api se iniciam por POST …/runs.

Limites de taxa#

  • Borda: 2000 requisições a cada 10 s por chave × número (API_EDGE_LIMIT).

Notas#

  • A chave de escopo read também lista (o escopo documentado aqui, messages, é o do início de uma execução): o código aceita um dos dois.
  • Numa conta do Instagram a rota exige também o recurso instagram, e uma chave de assistente recebe 403 (código 200): conexões de assistente só atuam no WhatsApp.
  • Um id que a rota ainda não conhece pode responder 429 com Retry-After: 1 em vez de 404 (veja o parâmetro id): repita.
Requisição

curl

curl 'https://api.synergyconnect.com.br/v25.0/106540352242922/journeys' \
  -H "Authorization: Bearer $SYNERGY_API_KEY"

JavaScript

const res = await fetch('https://api.synergyconnect.com.br/v25.0/106540352242922/journeys', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${process.env.SYNERGY_API_KEY}`,
  },
});
console.log(res.status, await res.json());

Python

import os

import requests

res = requests.get(
    "https://api.synergyconnect.com.br/v25.0/106540352242922/journeys",
    headers={
        "Authorization": f"Bearer {os.environ['SYNERGY_API_KEY']}",
    },
)
print(res.status_code, res.json())
Resposta

200

{
  "data": [
    {
      "id": "jrn_mfrggzdfmztwq2lk",
      "name": "Boas-vindas",
      "trigger": "keyword"
    },
    {
      "id": "jrn_nbswy3dpeb3w64tm",
      "name": "Pedido a caminho",
      "trigger": "api"
    }
  ]
}

401

{
  "error": {
    "message": "(#190) Invalid OAuth access token.",
    "type": "OAuthException",
    "code": 190,
    "fbtrace_id": "syn-3f9a1c0b"
  }
}

403

{
  "error": {
    "message": "(#200) Permissions error: this key does not have access to this resource.",
    "type": "OAuthException",
    "code": 200,
    "fbtrace_id": "syn-3f9a1c0b"
  }
}

Há 3 casos com este status; veja a tabela de respostas.

404

{
  "error": {
    "message": "(#100) Unsupported request: object does not exist or this key cannot reach it.",
    "type": "OAuthException",
    "code": 100,
    "fbtrace_id": "syn-3f9a1c0b"
  }
}

429

{
  "error": {
    "message": "(#130429) Rate limit hit: the number's message throughput has been reached.",
    "type": "OAuthException",
    "code": 130429,
    "fbtrace_id": "syn-3f9a1c0b"
  }
}

Há 3 casos com este status; veja a tabela de respostas.

503

{
  "error": {
    "message": "(#2) Service temporarily unavailable.",
    "type": "OAuthException",
    "code": 2,
    "fbtrace_id": "syn-3f9a1c0b"
  }
}

Ficou com dúvida? Escreva para suporte@synergyconnect.com.br.