Forecast
Base do forecast
GET
A base mensal de onde o forecast parte, montada com as mesmas leituras dos dashboards: o funil de aquisição, o investimento em mídia e os cards de rentabilidade dos últimos 30 dias (horário de São Paulo), e os cards dos últimos 365 dias para o faturamento de 12 meses.
status: "ready"traz a base.noFunnel: sem funil configurado, nada medido no topo ou nenhuma etapa do lado do cliente.noRevenue: há funil, mas não há receita nem ticket para ancorar a projeção.error: a leitura do funil falhou.- Uma falha na leitura de receita, investimento ou 12 meses degrada em vez de falhar: o investimento cai para o dos cards e depois para 0 (sem alavanca de mídia); o faturamento de 12 meses cai para os últimos 30 dias × 365/30, com
annualized: true. averageTicketé o ticket dos cards; sem ele, a receita dos 30 dias ÷ os pedidos da última etapa da cadeia.businessModelvem do cadastro da organização no v4mos-marketing (oAuthorizationde quem chama é repassado, como o diagnóstico lê), com a configuração do bowtie de retaguarda;vendas_online→online_sales,inside_sales→inside_sales,pdv→pos. Desconhecido →nulle todofloorénull.- Cache de 30 minutos que não depende de quem chama: as leituras por organização e dia de São Paulo, e o modelo do cadastro da organização por organização, só depois de lido com sucesso do cadastro. Quem chama sem
Authorization(cliente de API) recebe esse modelo em cache ou, sem ele, o da configuração do bowtie; os pisos são montados a cada chamada.
ClientIdAuthClientSecretAuthheader
x-client-id<token>Client ID
header
x-client-secret<token>Client secret
organizationId*stringIdentificador da organização (obrigatório). Um valor ausente ou que não seja string resulta em 400.
Base do forecast
application/json- response
Discriminado por status. Só ready traz a base.
status*stringbaseline*curl -X GET "https://example.com/v1/forecast/baseline?organizationId=c0ad4763-173e-4a05-9cff-5208c8ea5f6a"{ "status": "ready", "baseline": { "windowStart": "2026-10-01", "funnelKind": "ecommerce", "businessModel": "online_sales", "monthlyInvestment": 25000, "stages": [ { "stageId": "ATTENTION", "scale": "media", "role": "sessions", "count": 100000, "rate": null, "sourceLabel": "GA4 · Sessões", "floor": null }, { "stageId": "INTEREST", "scale": "customer", "role": "cart", "count": 8000, "rate": 0.08, "sourceLabel": "Shopify · Add to cart", "floor": 0.06 }, { "stageId": "QUALIFICATION", "scale": "customer", "role": "checkout", "count": 4000, "rate": 0.5, "sourceLabel": "Shopify · Initiate checkout", "floor": 0.37 }, { "stageId": "DECISION", "scale": "customer", "role": "purchase", "count": 2000, "rate": 0.5, "sourceLabel": "Shopify · Pedido pago", "floor": 0.5525 }, { "stageId": "RETENTION", "scale": "customer", "role": "retention", "count": 300, "rate": 0.15, "sourceLabel": "Shopify · Recompra", "floor": null } ], "averageTicket": 180, "monthlyRevenue": 342000, "trailingRevenue": { "value": 3900000, "annualized": false }, "revenueSource": "transactional" }}