O vocabulário fechado das etapas do funil
const url = 'https://dash.owiew.com/v1/t/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/plano/vocabulario';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://dash.owiew.com/v1/t/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/plano/vocabulario \ --header 'Authorization: Bearer <token>'Os códigos de verbo, objetivo e métrica que uma etapa pode declarar.
São códigos, não rótulos. A frase que aparece na tela é da interface, porque ela existe em mais de um idioma — um rótulo em português servido daqui apareceria em português numa tela aberta em inglês, e nada reprovaria.
Mesma resposta para todo cliente; não muda com a janela de datas.
Exige a permissão plano.read.
Authorizations
Seção intitulada “Authorizations”Parameters
Seção intitulada “Parameters”Path Parameters
Seção intitulada “Path Parameters”O cliente. Vem SEMPRE do caminho — nunca de cabeçalho, nunca de cookie. Ele é conferido contra o token: um identificador que não bata com o do token devolve 403, e não uma resposta vazia.
Responses
Seção intitulada “Responses”OK
As sugestões de preenchimento do quadro de ações, e a lista dos campos que de fato são FECHADOS.
Leia fechados antes de validar qualquer coisa. Só o que está nele é enum; todo o resto é texto livre com sugestão, e recusar um valor fora da sugestão recusaria a primeira frase de todo cliente novo.
Não muda com a janela de datas. Muda quando o cliente declara algo novo.
object
Verbos de etapa já declarados por este cliente («Atrair tutores»). SUGESTÃO, em texto livre — não é enum.
Objetivos de etapa já declarados. SUGESTÃO, texto livre.
Métricas de etapa já declaradas. SUGESTÃO, texto livre. Atenção: é a métrica que o cliente DECLARA perseguir, e ela pode não existir na coleta. Não a case com um campo de analytics sem conferir.
Os estados possíveis de uma ação — ideia, aprovado, rodando. Este SIM é fechado (ver fechados), e vem como CÓDIGO: a frase é da interface, que precisa existir em mais de um idioma.
O catálogo de canais de execução oferecido como sugestão (Instagram, WhatsApp, Kommo Salesbot, n8n + WhatsApp, Omnibees…).
Não confunda com o canal de plano.marcacao, que é um enum de sete redes de anúncio e serve para conciliar gasto. Metade destes não é rede de mídia e não concilia nada.
Os canais que ESTE cliente já escreveu, fora do catálogo. Somam-se a canais na sugestão.
As unidades de negócio já declaradas por este cliente. SUGESTÃO — uma unidade nova é aceita, e é assim que a primeira delas nasce.
Os nomes dos campos que são LISTA FECHADA. Hoje, ["status"].
Ele existe para que a interface (e a sua integração) não crave a decisão: o dia em que canal fechar, ou status abrir, quem lê este campo acompanha sem mudar uma linha.
Example generated
{ "verbos": [ "example" ], "objetivos": [ "example" ], "metricas": [ "example" ], "status": [ "example" ], "canais": [ "example" ], "canais_declarados": [ "example" ], "unidades_de_negocio": [ "example" ], "fechados": [ "example" ]}Token ausente, malformado ou vencido.
object
object
Código estável, seguro para comparar.
Texto para pessoa. Pode mudar entre versões — não decida nada a partir dele.
Identificador da ocorrência. Cite-o ao pedir suporte.
Example generated
{ "error": { "code": "example", "message": "example", "trace_id": "example" }}O token é válido, e o escopo não. Ou ele foi emitido para outro cliente, ou o papel não inclui a permissão da rota. NÃO é 404 de propósito: esconder um erro de escopo atrás de ‘não encontrado’ faz quem integra procurar o problema no lugar errado.
object
object
Código estável, seguro para comparar.
Texto para pessoa. Pode mudar entre versões — não decida nada a partir dele.
Identificador da ocorrência. Cite-o ao pedir suporte.
Example generated
{ "error": { "code": "example", "message": "example", "trace_id": "example" }}