Pular para o conteúdo

Changelog

Toda mudança da API pública v1, da mais recente para a mais antiga. Enquanto a versão for v1, todas as entradas aqui são retrocompatíveis — ver Versionamento para o que entra sem aviso e o que exigiria um /v2.

Cada entrada é datada (AAAA-MM-DD) e classificada:

  • Adicionado — endpoint, campo, parâmetro ou valor de enum novo.
  • Alterado — comportamento retrocompatível ajustado.
  • Corrigido — correção de bug sem mudança de contrato.

Adicionado

  • Webhooks do CRM por funil — configurados no painel (aba “Webhooks” em Configurar funil), disparam POST assinado (HMAC-SHA256, header X-Maestron-Signature) em 9 eventos do ciclo de vida do negócio (lead.created, lead.updated, lead.stage_changed, lead.won, lead.lost, lead.deleted, lead.comment_added, lead.activity_created, lead.activity_completed). Recurso de plano (integrations.webhooks).
  • GET /crm/events — feed de polling da mesma fonte de eventos, paginado por cursor, escopo crm.view. Ver Webhooks do CRM.

Adicionado

  • /crm/companies e /crm/contacts — CRUD do cadastro de clientes. company é uma pessoa física ou organização; contact é uma pessoa dentro de uma company organização. GET com customers.view; POST/PATCH/DELETE com customers.manage (escopos novos). Ver Companies e Contacts.

Adicionado

  • /crm/catalog-items — CRUD dos itens de catálogo do CRM (produtos e serviços comerciais). GET com crm.view; POST/PATCH/DELETE com crm.catalog.manage. price em centavos. Um item pode vincular um produto do estoque via product_id — nome/tipo/preço ausentes são copiados do produto na criação. Ver Catálogo do CRM.

Adicionado

  • custom_fields no recurso de negócio (GET/POST/PATCH /crm/deals) — objeto { "<chave>": <valor> } com os campos customizados que o pipeline define no painel Maestron. Tipos: text, textarea, number, money (centavos), boolean, date, select, multiselect, url, phone. Valor incompatível ou opção inválida → 422 em custom_fields.<chave>; chave sem definição é ignorada; no PATCH, custom_fields substitui o objeto inteiro. As definições são geridas só no painel (crm.fields.manage), não pela API. Ver Negócios → Campos customizados.
  • A captação de leads passa a aceitar custom:<chave> como alvo no mapa de campos do formulário — o valor entra estruturado em custom_fields em vez de ir para as observações.

Adicionado

  • Captação de leads por formulário — endpoint público POST /crm/intake/{token} que cria negócios a partir de um formulário de site, autenticado por um token publicável (mcf_...) na URL, não por API Key. Acompanha GET /crm/intake/{token}/config e a tag GET /crm/intake/{version}/intake.js (versão 1.0). Configuração por funil no painel Maestron. Ver Captação de Leads.
  • Mapa de campos configurável (alvos: contact_name, client_email, client_phone, company_name, notes, expected_close_date); campos não mapeados são anexados às observações do negócio.
  • Deduplicação por e-mail, honeypot, allowlist de origem (com bloqueio de domínios conhecidos) e rate limit próprio (20/min por token, 10/min por IP).
  • Página de formulário hospedada (GET /crm/intake/{token}/form, sem marca) — link direto ou <iframe>, sem precisar construir HTML.
  • maestron('submit', payload) — API que devolve Promise para SPA (React/Vue). O redirect_url passa a aceitar só http(s).
  • Resposta automática ao lead — e-mail de confirmação sem marca Maestron quando auto_reply está ligado; Reply-To cai no time do cliente.
  • Atribuição de campanha — o negócio criado carrega attribution (UTM, gclid/fbclid, landing_page, referrer); aparece no GET /crm/deals/{id} e no webhook.
  • Webhook de saída por formulário — POST JSON assinado com HMAC-SHA256 (X-Maestron-Signature) a cada lead, com retry exponencial e teste de ping.
  • Pausa automática por rajada e alerta de formulário sem envios; métricas e log de envios no painel.

Primeira versão pública, cobrindo o módulo CRM.

Adicionado

  • Chaves de API com escopo geradas no painel Maestron, autenticação por Authorization: Bearer maestron_pk_... — ver Autenticação e Gerando sua API Key.
  • Ambientes live e test — uma chave test roda toda a lógica em uma transação sempre desfeita, sem persistir nada. Ver Sandbox & Idempotência.
  • Idempotência via idempotency_key opcional no corpo dos endpoints de criação e das ações de fechamento de negócio.
  • CRM — leitura: GET de /crm/pipelines, /crm/pipelines/{id}, /crm/pipelines/{id}/stages, /crm/deals, /crm/deals/{id}, /crm/deals/{id}/activities, /crm/activities, /crm/activities/{id}.
  • CRM — escrita: POST/PATCH/DELETE de /crm/pipelines, /crm/deals e /crm/activities.
  • CRM — ações de negócio: PATCH /crm/deals/{id}/stage, POST /crm/deals/{id}/win, /lose, /reopen.
  • CRM — ações de atividade: POST /crm/activities/{id}/complete e /reopen.
  • Rate limiting de 120 requisições/minuto por chave, com headers X-RateLimit-Limit e X-RateLimit-Remaining. Ver Rate limiting.
  • Collection Postman sincronizada com os endpoints reais — ver Postman & Ferramentas.

Referência completa em Todos os Endpoints.