GS Engage — Resumo para LLMs (gerado em 2025-11-07T00:39:00.654Z) Objetivo: Este arquivo em texto plano detalha a API REST e os Webhooks do GS Engage para consumo por LLMs. Use método + caminho exatamente como documentado, inclua a apiKey quando necessário e siga parâmetros/request/responses. === API === GS Engage - API — v1.0.0 Base URL: https://api.gsengage.com Autenticação: apiKey via parâmetro em query "apiKey" (ex.: ?apiKey=SUA_CHAVE) Guia Rápido de Uso: - Autenticação via apiKey (query): acrescente ?apiKey=SUA_CHAVE na URL. - Paginação: use limit e page quando disponíveis. - Ordenação: use orderBy e orderDirection quando disponíveis. Endpoints: [GET] /api/v1/webhooks — Listar Webhooks descrição: Retorna uma lista de webhooks cadastrados tags: Webhooks operationId: listWebhooks segurança: requer apiKey (query: apiKey) responses: - 200 — OK • application/json type=array items: title=Webhook | type=object propriedades: - id: type=string descr="ID do webhook" - secret: type=string descr="Segredo do webhook para validação de chamadas recebidas (apenas na resposta da criação)" - name: type=string descr="Nome do webhook" - url: type=string descr="URL do webhook" - events: type=array descr="Lista de eventos que o webhook irá escutar" type=array | descr="Lista de eventos que o webhook irá escutar" | exemplos=[["prospection.won","prospection.lost"]] items: type=string | enum=[prospection.won, prospection.lost] - enabled: type=boolean descr="Indica se o webhook está habilitado" - consecutiveFailures: type=integer descr="Número de falhas consecutivas" - isFailing: type=boolean descr="Indica se o webhook está em estado de falha" - updatedAt: type=string format=date-time descr="Data de atualização do webhook" - createdAt: type=string format=date-time descr="Data de criação do webhook" - deletedAt: type=string,null format=date-time descr="Data de exclusão do webhook, se aplicável" - 401 — Unauthorized • application/json descr="Unauthorized" [POST] /api/v1/webhooks — Criar Webhook descrição: Cria um novo webhook tags: Webhooks operationId: createWebhook segurança: requer apiKey (query: apiKey) requestBody: application/json - application/json type=object propriedades: - name: type=string descr="Nome do webhook" - url: type=string format=uri descr="URL do webhook" - events: type=array descr="Lista de eventos que o webhook irá escutar" type=array | descr="Lista de eventos que o webhook irá escutar" | exemplos=[["prospection.won","prospection.lost"]] items: type=string | enum=[prospection.won, prospection.lost] responses: - 201 — Created • application/json title=Webhook | type=object propriedades: - id: type=string descr="ID do webhook" - secret: type=string descr="Segredo do webhook para validação de chamadas recebidas (apenas na resposta da criação)" - name: type=string descr="Nome do webhook" - url: type=string descr="URL do webhook" - events: type=array descr="Lista de eventos que o webhook irá escutar" type=array | descr="Lista de eventos que o webhook irá escutar" | exemplos=[["prospection.won","prospection.lost"]] items: type=string | enum=[prospection.won, prospection.lost] - enabled: type=boolean descr="Indica se o webhook está habilitado" - consecutiveFailures: type=integer descr="Número de falhas consecutivas" - isFailing: type=boolean descr="Indica se o webhook está em estado de falha" - updatedAt: type=string format=date-time descr="Data de atualização do webhook" - createdAt: type=string format=date-time descr="Data de criação do webhook" - deletedAt: type=string,null format=date-time descr="Data de exclusão do webhook, se aplicável" - 400 — Bad Request • application/json descr="Bad Request" - 401 — Unauthorized • application/json descr="Unauthorized" [DELETE] /api/v1/webhooks/{webhookId} — Remover Webhook descrição: Remove um webhook pelo ID tags: Webhooks operationId: deleteWebhook segurança: requer apiKey (query: apiKey) parâmetros: - webhookId (path, required, type=string) responses: - 204 — No Content - 400 — Bad Request • application/json descr="Bad Request" - 401 — Unauthorized • application/json descr="Unauthorized" - 404 — NotFound • application/json descr="NotFound" [GET] /api/v1/routines — Listar Cadências descrição: Retorna uma lista de cadências tags: Cadências operationId: listRoutines segurança: requer apiKey (query: apiKey) parâmetros: - limit (query, optional, type=integer) — O número de itens a serem retornados - page (query, optional, type=integer) — O número da página a ser retornada - status (query, optional, type=string) — Lista dos status, separados por vírgula (por exemplo, "ACTIVE,FROZEN"). - priorities (query, optional, type=string) — Lista de nível de prioridade que você deseja filtrar, separados por vírgula (por exemplo, "LOW,MEDIUM,HIGH"). - acquisitionTypes (query, optional, type=string) — Lista de canais de aquisição que você deseja filtrar, separados por vírgula (por exemplo, "OUTBOUND,REFERRAL,REACTIVATION"). - orderBy (query, optional, type=string) enum=[name, createdAt, updatedAt, deletedAt] — Campo para ordenação das cadências - orderDirection (query, optional, type=string) enum=[asc, desc] — Direção da ordenação responses: - 200 — OK • application/json propriedades: - data: type=array type=array items: title=Cadência | type=object propriedades: - id: type=string descr="ID da cadência" - name: type=string descr="Nome da cadência" - description: type=string,null descr="Descrição da cadência" - executionMode: type=string enum=[MANUAL, AI_DRIVEN] descr="Modo de execução da cadência: - MANUAL: Manual - AI_DRIVEN: Gerenciado por IA" - acquisitionType: type=string enum=[OUTBOUND, PASSIVE_INBOUND, ACTIVE_INBOUND, REFERRAL, REACTIVATION, EVENT_NETWORKING, OTHER] descr="Tipo do canal de aquisição da cadência: - OUTBOUND: Outbound - PASSIVE_INBOUND: Fishing - ACTIVE_INBOUND: Levantada de mão - REFERRAL: Indicação - REACTIVATION: Resgate - EVENT_NETWORKING: Networking em eventos - OTHER: Outro" - priority: type=string enum=[HIGH, MEDIUM, LOW] descr="Prioridade da cadência: - HIGH: Alta - MEDIUM: Média - LOW: Baixa" - scheduleSettings: type=object type=object - status: type=string enum=[ACTIVE, FROZEN] descr="Status da cadência: - ACTIVE: Ativa - FROZEN: Congelada" - deletedAt: type=string,null format=date-time descr="Data de exclusão da cadência, se aplicável" - createdAt: type=string format=date-time descr="Data de criação da cadência" - meta: type=object title=Metadados de Paginação | type=object propriedades: - limit: type=integer format=int64 descr="Número máximo de itens por página" - count: type=integer format=int64 descr="Número total de itens vindos da consulta" - total: type=integer format=int64 descr="Número total de itens disponíveis" - page: type=integer format=int64 descr="Número da página atual" - totalPages: type=integer format=int64 descr="Número total de páginas disponíveis" - 400 — Bad Request • application/json descr="Bad Request" - 401 — Unauthorized • application/json descr="Unauthorized" [POST] /api/v1/routines/{routineId}/lead — Adicionar/Iniciar Lead na Cadência descrição: Adiciona um lead a uma cadência, respeitando as regras de distribuição automática da cadência. Caso a distribuição automática esteja ativada, uma prospecção será criada automaticamente para o lead, sendo ele distribuído automaticamente para um usuário disponível. Caso contrário, o lead será adicionado somente com seu vinculo à cadência, sem o início de uma prospecção. tags: Cadências operationId: addLeadToRoutine segurança: requer apiKey (query: apiKey) parâmetros: - routineId (path, required, type=string) requestBody: application/json - application/json descr="*Pelo menos um dos campos de contato (`emails`, `phones` ou `mobiles`) é obrigatório" propriedades: - firstName: type=string descr="Primeiro nome" - lastName: type=string descr="Sobrenome" - fullName: type=string descr="Nome completo" - state: type=string descr="Estado ou UF" - city: type=string descr="Cidade" - jobTitle: type=string descr="Cargo" - department: type=string descr="Departamento" - emails: type=array descr="Lista de e-mails de contato" type=array | descr="Lista de e-mails de contato" items: type=object | exemplos=[{"value":"john.doe@example.com","label":"Work"}] propriedades: - value: type=string format=email descr="E-mail de contato" - label: type=string descr="Rótulo do e-mail" - phones: type=array descr="Lista de telefones de contato" type=array | descr="Lista de telefones de contato" items: type=object | exemplos=[{"value":"(21) 9999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone" - mobiles: type=array descr="Lista de celulares de contato" type=array | descr="Lista de celulares de contato" items: type=object | exemplos=[{"value":"(21) 99999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone" - linkedinURL: type=string descr="Perfil do LinkedIn do lead" - companyName: type=string descr="Nome da empresa" - companySize: type=string descr="Porte da empresa" - companyIndustry: type=string descr="Segmento da empresa" - companyWebsite: type=string format=uri descr="Site da empresa" - companyLinkedinURL: type=string format=uri descr="Perfil da empresa no LinkedIn" - observation: type=string descr="Observações sobre o lead" - customFields: type=object descr="Campos personalizados do lead" responses: - 201 — Created • application/json title=Lead | type=object propriedades: - id: type=string descr="ID do lead" - firstName: type=string descr="Primeiro nome" - lastName: type=string descr="Sobrenome" - fullName: type=string descr="Nome completo" - state: type=string descr="Estado ou UF" - city: type=string descr="Cidade" - jobTitle: type=string descr="Cargo" - department: type=string descr="Departamento" - emails: type=array descr="Lista de e-mails de contato" type=array | descr="Lista de e-mails de contato" items: type=object | exemplos=[{"value":"john.doe@example.com","label":"Work"}] propriedades: - value: type=string format=email descr="E-mail de contato" - label: type=string descr="Rótulo do e-mail" - phones: type=array descr="Lista de telefones de contato" type=array | descr="Lista de telefones de contato" items: type=object | exemplos=[{"value":"(21) 9999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone" - mobiles: type=array descr="Lista de celulares de contato" type=array | descr="Lista de celulares de contato" items: type=object | exemplos=[{"value":"(21) 99999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone" - linkedinURL: type=string descr="Perfil do LinkedIn do lead" - companyName: type=string descr="Nome da empresa" - companySize: type=string descr="Porte da empresa" - companyIndustry: type=string descr="Segmento da empresa" - companyWebsite: type=string format=uri descr="Site da empresa" - companyLinkedinURL: type=string format=uri descr="Perfil da empresa no LinkedIn" - observation: type=string descr="Observações sobre o lead" - responsible: type=object title=Usuário | type=object propriedades: - id: type=string descr="ID do usuário" - firstName: type=string descr="Primeiro nome do usuário" - lastName: type=string descr="Sobrenome do usuário" - email: type=string descr="E-mail do usuário" - customFields: type=object descr="Campos personalizados do lead" - sourceType: type=string enum=[FILE, RD_MARKETING, API] descr="Tipo de origem do lead: - FILE: Importado de uma lista de leads - RD_MARKETING: Capturado do RD Station Marketing - API: Inserido via API" - sourceFileName: type=string descr="Nome do arquivo de origem" - currentRoutineId: type=string,null descr="ID da Cadência vinculada ao lead, se houver" - deletedAt: type=string,null format=date-time descr="Data de exclusão do lead, se aplicável" - createdAt: type=string format=date-time descr="Data de criação do lead" - 400 — Bad Request • application/json descr="Bad Request" - 401 — Unauthorized • application/json descr="Unauthorized" - 404 — NotFound • application/json descr="NotFound" [GET] /api/v1/leads — Listar Leads descrição: Retorna uma lista de leads tags: Leads operationId: listLeads segurança: requer apiKey (query: apiKey) parâmetros: - limit (query, optional, type=integer) — O número de itens a serem retornados - page (query, optional, type=integer) — O número da página a ser retornada - status (query, optional, type=string) — Lista dos status, separados por vírgula (por exemplo, "IN_PROGRESS,WON,LOST,FROZEN"). - sourceIds (query, optional, type=string) — Lista de IDs que representam a origem dos leads, separados por vírgula (por exemplo, "id1,id2,id3"). - routineIds (query, optional, type=string) — Lista de IDs que representam as cadências, separados por vírgula (por exemplo, "id1,id2,id3"). - createdByIds (query, optional, type=string) — Lista de IDs que representam os usuários responsáveis pela criação do modelo, separados por vírgula (por exemplo, "id1,id2,id3"). - orderBy (query, optional, type=string) enum=[createdAt, updatedAt, firstName, lastName, fullName, deletedAt] — Campo para ordenação dos leads - orderDirection (query, optional, type=string) enum=[asc, desc] — Direção da ordenação responses: - 200 — OK • application/json propriedades: - data: type=array type=array items: title=Lead | type=object propriedades: - id: type=string descr="ID do lead" - firstName: type=string descr="Primeiro nome" - lastName: type=string descr="Sobrenome" - fullName: type=string descr="Nome completo" - state: type=string descr="Estado ou UF" - city: type=string descr="Cidade" - jobTitle: type=string descr="Cargo" - department: type=string descr="Departamento" - emails: type=array descr="Lista de e-mails de contato" type=array | descr="Lista de e-mails de contato" - phones: type=array descr="Lista de telefones de contato" type=array | descr="Lista de telefones de contato" - mobiles: type=array descr="Lista de celulares de contato" type=array | descr="Lista de celulares de contato" - linkedinURL: type=string descr="Perfil do LinkedIn do lead" - companyName: type=string descr="Nome da empresa" - companySize: type=string descr="Porte da empresa" - companyIndustry: type=string descr="Segmento da empresa" - companyWebsite: type=string format=uri descr="Site da empresa" - companyLinkedinURL: type=string format=uri descr="Perfil da empresa no LinkedIn" - observation: type=string descr="Observações sobre o lead" - responsible: type=object title=Usuário | type=object - customFields: type=object descr="Campos personalizados do lead" - sourceType: type=string enum=[FILE, RD_MARKETING, API] descr="Tipo de origem do lead: - FILE: Importado de uma lista de leads - RD_MARKETING: Capturado do RD Station Marketing - API: Inserido via API" - sourceFileName: type=string descr="Nome do arquivo de origem" - currentRoutineId: type=string,null descr="ID da Cadência vinculada ao lead, se houver" - deletedAt: type=string,null format=date-time descr="Data de exclusão do lead, se aplicável" - createdAt: type=string format=date-time descr="Data de criação do lead" - meta: type=object title=Metadados de Paginação | type=object propriedades: - limit: type=integer format=int64 descr="Número máximo de itens por página" - count: type=integer format=int64 descr="Número total de itens vindos da consulta" - total: type=integer format=int64 descr="Número total de itens disponíveis" - page: type=integer format=int64 descr="Número da página atual" - totalPages: type=integer format=int64 descr="Número total de páginas disponíveis" - 400 — Bad Request • application/json descr="Bad Request" - 401 — Unauthorized • application/json descr="Unauthorized" [POST] /api/v1/leads — Criar Lead descrição: Cria um novo lead tags: Leads operationId: createLead segurança: requer apiKey (query: apiKey) requestBody: application/json - application/json descr="*Pelo menos um dos campos de contato (`emails`, `phones` ou `mobiles`) é obrigatório" propriedades: - firstName: type=string descr="Primeiro nome" - lastName: type=string descr="Sobrenome" - fullName: type=string descr="Nome completo" - state: type=string descr="Estado ou UF" - city: type=string descr="Cidade" - jobTitle: type=string descr="Cargo" - department: type=string descr="Departamento" - emails: type=array descr="Lista de e-mails de contato" type=array | descr="Lista de e-mails de contato" items: type=object | exemplos=[{"value":"john.doe@example.com","label":"Work"}] propriedades: - value: type=string format=email descr="E-mail de contato" - label: type=string descr="Rótulo do e-mail" - phones: type=array descr="Lista de telefones de contato" type=array | descr="Lista de telefones de contato" items: type=object | exemplos=[{"value":"(21) 9999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone" - mobiles: type=array descr="Lista de celulares de contato" type=array | descr="Lista de celulares de contato" items: type=object | exemplos=[{"value":"(21) 99999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone" - linkedinURL: type=string descr="Perfil do LinkedIn do lead" - companyName: type=string descr="Nome da empresa" - companySize: type=string descr="Porte da empresa" - companyIndustry: type=string descr="Segmento da empresa" - companyWebsite: type=string format=uri descr="Site da empresa" - companyLinkedinURL: type=string format=uri descr="Perfil da empresa no LinkedIn" - observation: type=string descr="Observações sobre o lead" - customFields: type=object descr="Campos personalizados do lead" responses: - 201 — Created • application/json title=Lead | type=object propriedades: - id: type=string descr="ID do lead" - firstName: type=string descr="Primeiro nome" - lastName: type=string descr="Sobrenome" - fullName: type=string descr="Nome completo" - state: type=string descr="Estado ou UF" - city: type=string descr="Cidade" - jobTitle: type=string descr="Cargo" - department: type=string descr="Departamento" - emails: type=array descr="Lista de e-mails de contato" type=array | descr="Lista de e-mails de contato" items: type=object | exemplos=[{"value":"john.doe@example.com","label":"Work"}] propriedades: - value: type=string format=email descr="E-mail de contato" - label: type=string descr="Rótulo do e-mail" - phones: type=array descr="Lista de telefones de contato" type=array | descr="Lista de telefones de contato" items: type=object | exemplos=[{"value":"(21) 9999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone" - mobiles: type=array descr="Lista de celulares de contato" type=array | descr="Lista de celulares de contato" items: type=object | exemplos=[{"value":"(21) 99999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone" - linkedinURL: type=string descr="Perfil do LinkedIn do lead" - companyName: type=string descr="Nome da empresa" - companySize: type=string descr="Porte da empresa" - companyIndustry: type=string descr="Segmento da empresa" - companyWebsite: type=string format=uri descr="Site da empresa" - companyLinkedinURL: type=string format=uri descr="Perfil da empresa no LinkedIn" - observation: type=string descr="Observações sobre o lead" - responsible: type=object title=Usuário | type=object propriedades: - id: type=string descr="ID do usuário" - firstName: type=string descr="Primeiro nome do usuário" - lastName: type=string descr="Sobrenome do usuário" - email: type=string descr="E-mail do usuário" - customFields: type=object descr="Campos personalizados do lead" - sourceType: type=string enum=[FILE, RD_MARKETING, API] descr="Tipo de origem do lead: - FILE: Importado de uma lista de leads - RD_MARKETING: Capturado do RD Station Marketing - API: Inserido via API" - sourceFileName: type=string descr="Nome do arquivo de origem" - currentRoutineId: type=string,null descr="ID da Cadência vinculada ao lead, se houver" - deletedAt: type=string,null format=date-time descr="Data de exclusão do lead, se aplicável" - createdAt: type=string format=date-time descr="Data de criação do lead" - 400 — Bad Request • application/json descr="Bad Request" - 401 — Unauthorized • application/json descr="Unauthorized" [GET] /api/v1/prospections — Listar Prospecções descrição: Retorna uma lista de prospecções tags: Prospecção operationId: listProspections segurança: requer apiKey (query: apiKey) parâmetros: - limit (query, optional, type=integer) — O número de itens a serem retornados - page (query, optional, type=integer) — O número da página a ser retornada - status (query, optional, type=string) — Lista dos status, separados por vírgula (por exemplo, "IN_PROGRESS,WON,LOST,FROZEN"). - routineIds (query, optional, type=string) — Lista de IDs que representam as cadências, separados por vírgula (por exemplo, "id1,id2,id3"). - orderBy (query, optional, type=string) enum=[startDate, endDate] — Campo para ordenação das prospecções - orderDirection (query, optional, type=string) enum=[asc, desc] — Direção da ordenação responses: - 200 — OK • application/json propriedades: - data: type=array type=array items: title=Prospecção | type=object propriedades: - id: type=string descr="ID da prospecção" - lead: type=object title=Lead | type=object - executionMode: type=string enum=[MANUAL, AI_DRIVEN] descr="Modo de execução da prospecção: - MANUAL: Manual - AI_DRIVEN: Gerenciado por IA" - routine: type=object title=Cadência | type=object - responsible: type=object title=Usuário | type=object - agent: type=object title=Agente de IA | type=object - status: type=string enum=[WON, LOST, IN_PROGRESS, FROZEN, EXHAUSTED, DISCARDED] descr="Status da prospecção: - WON: Lead agendado - LOST: Lead perdido - IN_PROGRESS: Prospecção em andamento - FROZEN: Prospecção congelada - EXHAUSTED: Fim de Prospecção (sem mais atividades para executar) - DISCARDED: Prospecção descartada" - lostReason: type=string,null descr="Motivo da perda do lead, só é preenchido quando o status é LOST" - isAutomaticLoss: type=boolean descr="Indica se a prospecção foi perdida automaticamente" - startDate: type=string format=date-time descr="Data de início da prospecção" - endDate: type=string,null format=date-time descr="Data de término da prospecção, só é preenchido quando o status é WON ou LOST" - meta: type=object title=Metadados de Paginação | type=object propriedades: - limit: type=integer format=int64 descr="Número máximo de itens por página" - count: type=integer format=int64 descr="Número total de itens vindos da consulta" - total: type=integer format=int64 descr="Número total de itens disponíveis" - page: type=integer format=int64 descr="Número da página atual" - totalPages: type=integer format=int64 descr="Número total de páginas disponíveis" - 400 — Bad Request • application/json descr="Bad Request" - 401 — Unauthorized • application/json descr="Unauthorized" [GET] /api/v1/prospections/{prospectionId}/activities — Listar Atividades da Prospecção descrição: Retorna uma lista de atividades vinculadas a uma prospecção tags: Prospecção operationId: listProspectionActivities segurança: requer apiKey (query: apiKey) parâmetros: - limit (query, optional, type=integer) — O número de itens a serem retornados - page (query, optional, type=integer) — O número da página a ser retornada - prospectionId (path, required, type=string) - status (query, optional, type=string) — Lista dos status, separados por vírgula (por exemplo, "SCHEDULED,FINISHED,IGNORED,FROZEN"). - types (query, optional, type=string) — Lista dos tipos, separados por vírgula (por exemplo, "SEARCH,EMAIL,CALL,LINKEDIN_MESSAGE,WHATSAPP_MESSAGE"). - orderBy (query, optional, type=string) enum=[scheduledTo, finishedAt] — Campo para ordenação das atividades de prospecção - orderDirection (query, optional, type=string) enum=[asc, desc] — Direção da ordenação responses: - 200 — OK • application/json propriedades: - data: type=array type=array items: title=Atividade de Prospecção | type=object propriedades: - id: type=string descr="ID da atividade de prospecção" - prospection: type=string descr="ID da prospecção em que a atividade está vinculada" - task: type=object title=Modelo de Atividade | type=object - responsible: type=object title=Usuário | type=object - type: type=string enum=[SEARCH, EMAIL, CALL, LINKEDIN_MESSAGE, WHATSAPP_MESSAGE, SCHEDULE_MEETING] descr="Tipo da atividade: - SEARCH: Pesquisa - EMAIL: E-mail - CALL: Ligação - LINKEDIN_MESSAGE: Mensagem no LinkedIn - WHATSAPP_MESSAGE: Mensagem no WhatsApp - SCHEDULE_MEETING: Agendamento de reunião" - status: type=string enum=[SCHEDULED, FINISHED, IGNORED, FROZEN] descr="Status da atividade de prospecção: - SCHEDULED: Agendada - FINISHED: Concluída - IGNORED: Ignorada - FROZEN: Congelada" - isExtraTask: type=boolean descr="Indica se é uma atividade extra" - email: type=object title=E-mail | type=object - calls: type=array descr="Lista de ligações realizadas, só é preenchido quando o tipo é CALL" type=array | descr="Lista de ligações realizadas, só é preenchido quando o tipo é CALL" - socialMessageBody: type=string,null descr="Texto da mensagem enviada, só é preenchido quando o tipo é LINKEDIN_MESSAGE ou WHATSAPP_MESSAGE e o status é FINISHED" - meeting: type=object,null descr="Informações da reunião agendada, só é preenchido quando existe uma reunião associada" type=object,null | descr="Informações da reunião agendada, só é preenchido quando existe uma reunião associada" | exemplos=[{"title":"Reunião de apresentação","provider":"Google Meet","eventUrl":"https://calendar.google.com/event/123","conferenceUrl":"https://meet.google.com/abc-defg-hij","participants":["joao@exemplo.com","maria@exemplo.com"],"startTime":"2021-10-01T14:00:00Z","endTime":"2021-10-01T15:00:00Z"},null] - observations: type=string,null descr="Observações sobre a realização da atividade" - notes: type=string,null descr="Notas sobre a atividade" - scheduledTo: type=string format=date-time descr="Data de agendamento da atividade de prospecção" - dueDate: type=string,null format=date-time descr="Data de limite para conclusão da atividade de prospecção" - finishedAt: type=string,null format=date-time descr="Data de conclusão da atividade, só é preenchido quando o status é FINISHED ou IGNORED" - meta: type=object title=Metadados de Paginação | type=object propriedades: - limit: type=integer format=int64 descr="Número máximo de itens por página" - count: type=integer format=int64 descr="Número total de itens vindos da consulta" - total: type=integer format=int64 descr="Número total de itens disponíveis" - page: type=integer format=int64 descr="Número da página atual" - totalPages: type=integer format=int64 descr="Número total de páginas disponíveis" - 400 — Bad Request • application/json descr="Bad Request" - 401 — Unauthorized • application/json descr="Unauthorized" - 404 — Not Found • application/json descr="NotFound" [GET] /api/v1/custom-fields — Listar Campos Personalizados descrição: Retorna uma lista de campos personalizados tags: Campos Personalizados operationId: listCustomFields segurança: requer apiKey (query: apiKey) parâmetros: - orderBy (query, optional, type=string) enum=[name, type, createdAt] — Campo para ordenação dos campos personalizados - orderDirection (query, optional, type=string) enum=[asc, desc] — Direção da ordenação responses: - 200 — OK • application/json type=array items: title=Campo Personalizado | type=object propriedades: - id: type=string descr="ID do campo personalizado" - type: type=string enum=[TEXT, DATE, NUMBER, BOOLEAN, SELECT] descr="Tipo do campo personalizado: - TEXT: Texto - DATE: Data - NUMBER: Número - BOOLEAN: Verdadeiro/Falso - SELECT: Lista de opções" - options: type=array descr="Opções disponíveis para campos do tipo SELECT" type=array | descr="Opções disponíveis para campos do tipo SELECT" items: type=object | exemplos=[{"value":"B2B","category":"ACCEPTABLE"},{"value":"B2C","category":"RED_FLAG"}] - archived: type=boolean descr="Indica se o campo personalizado está arquivado" - requiredUponWin: type=boolean descr="Indica se o campo personalizado é obrigatório para o lead ser agendado" - deletedAt: type=string format=date-time descr="Data de exclusão do campo personalizado, se aplicável" - createdAt: type=string format=date-time descr="Data de criação do campo personalizado" - 400 — Bad Request • application/json descr="Bad Request" - 401 — Unauthorized • application/json descr="Unauthorized" [GET] /api/v1/leads/{leadId} — Obter detalhes do Lead descrição: Retorna os detalhes completos de um lead específico. tags: Leads operationId: getLead segurança: requer apiKey (query: apiKey) parâmetros: - leadId (path, required, type=string) — ObjectId do lead responses: - 200 — OK • application/json type=object propriedades: - data: type=object descr="Estrutura de lead retornada pela Public API; inclui campos padrão, customFields mapeados por nome e metadados de origem e timestamps." title=Public API Lead | descr="Estrutura de lead retornada pela Public API; inclui campos padrão, customFields mapeados por nome e metadados de origem e timestamps." composição: allOf - 400 — Bad Request • application/json descr="Bad Request" - 401 — Unauthorized • application/json descr="Unauthorized" - 404 — NotFound • application/json descr="NotFound" [PATCH] /api/v1/leads/{leadId} — Atualizar Lead descrição: Atualiza um lead existente tags: Leads operationId: updateLead segurança: requer apiKey (query: apiKey) parâmetros: - leadId (path, required, type=string) requestBody: application/json - application/json propriedades: - firstName: type=string descr="Primeiro nome" - lastName: type=string descr="Sobrenome" - fullName: type=string descr="Nome completo" - state: type=string descr="Estado ou UF" - city: type=string descr="Cidade" - jobTitle: type=string descr="Cargo" - department: type=string descr="Departamento" - emails: type=array descr="Lista de e-mails de contato" type=array | descr="Lista de e-mails de contato" items: type=object | exemplos=[{"value":"john.doe@example.com","label":"Work"}] propriedades: - value: type=string format=email descr="E-mail de contato" - label: type=string descr="Rótulo do e-mail" - phones: type=array descr="Lista de telefones de contato" type=array | descr="Lista de telefones de contato" items: type=object | exemplos=[{"value":"(21) 9999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone" - mobiles: type=array descr="Lista de celulares de contato" type=array | descr="Lista de celulares de contato" items: type=object | exemplos=[{"value":"(21) 99999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone" - linkedinURL: type=string descr="Perfil do LinkedIn do lead" - companyName: type=string descr="Nome da empresa" - companySize: type=string descr="Porte da empresa" - companyIndustry: type=string descr="Segmento da empresa" - companyWebsite: type=string format=uri descr="Site da empresa" - companyLinkedinURL: type=string format=uri descr="Perfil da empresa no LinkedIn" - observation: type=string descr="Observações sobre o lead" - customFields: type=object descr="Campos personalizados do lead" responses: - 200 — OK • application/json title=Lead | type=object propriedades: - id: type=string descr="ID do lead" - firstName: type=string descr="Primeiro nome" - lastName: type=string descr="Sobrenome" - fullName: type=string descr="Nome completo" - state: type=string descr="Estado ou UF" - city: type=string descr="Cidade" - jobTitle: type=string descr="Cargo" - department: type=string descr="Departamento" - emails: type=array descr="Lista de e-mails de contato" type=array | descr="Lista de e-mails de contato" items: type=object | exemplos=[{"value":"john.doe@example.com","label":"Work"}] propriedades: - value: type=string format=email descr="E-mail de contato" - label: type=string descr="Rótulo do e-mail" - phones: type=array descr="Lista de telefones de contato" type=array | descr="Lista de telefones de contato" items: type=object | exemplos=[{"value":"(21) 9999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone" - mobiles: type=array descr="Lista de celulares de contato" type=array | descr="Lista de celulares de contato" items: type=object | exemplos=[{"value":"(21) 99999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone" - linkedinURL: type=string descr="Perfil do LinkedIn do lead" - companyName: type=string descr="Nome da empresa" - companySize: type=string descr="Porte da empresa" - companyIndustry: type=string descr="Segmento da empresa" - companyWebsite: type=string format=uri descr="Site da empresa" - companyLinkedinURL: type=string format=uri descr="Perfil da empresa no LinkedIn" - observation: type=string descr="Observações sobre o lead" - responsible: type=object title=Usuário | type=object propriedades: - id: type=string descr="ID do usuário" - firstName: type=string descr="Primeiro nome do usuário" - lastName: type=string descr="Sobrenome do usuário" - email: type=string descr="E-mail do usuário" - customFields: type=object descr="Campos personalizados do lead" - sourceType: type=string enum=[FILE, RD_MARKETING, API] descr="Tipo de origem do lead: - FILE: Importado de uma lista de leads - RD_MARKETING: Capturado do RD Station Marketing - API: Inserido via API" - sourceFileName: type=string descr="Nome do arquivo de origem" - currentRoutineId: type=string,null descr="ID da Cadência vinculada ao lead, se houver" - deletedAt: type=string,null format=date-time descr="Data de exclusão do lead, se aplicável" - createdAt: type=string format=date-time descr="Data de criação do lead" - 400 — Bad Request • application/json descr="Bad Request" - 401 — Unauthorized • application/json descr="Unauthorized" - 404 — NotFound • application/json descr="NotFound" [GET] /api/v1/conversations/threads — Listar conversas descrição: Retorna uma lista de threads de conversas do projeto autenticado tags: Conversas operationId: listConversationThreads segurança: requer apiKey (query: apiKey) parâmetros: - limit (query, optional, type=integer) — O número de itens a serem retornados - page (query, optional, type=integer) — O número da página a ser retornada - lead (query, optional, type=string) — ID do lead vinculado à thread - search (query, optional, type=string) — Texto livre para busca em assunto, e-mail ou dados do lead (nome/empresa/telefone) - hasUnreadMessages (query, optional, type=boolean) — Filtra por threads com ou sem mensagens não lidas responses: - 200 — OK • application/json type=object propriedades: - data: type=array type=array items: title=Thread de Conversa | type=object propriedades: - id: type=string descr="ID da thread de conversa" - channel: type=string enum=[WHATSAPP, EMAIL] descr="Canal da mensagem" - subject: type=string,null descr="Assunto da conversa (quando aplicável)" - phoneNumber: type=string descr="Número de telefone (apenas para threads de WhatsApp)" - email: type=string descr="E-mail (apenas para threads de e-mail)" - lead: type=string,null descr="ID do lead vinculado à thread, quando houver" - lastMessageAt: type=string,null format=date-time descr="Data/hora da última mensagem na thread" - lastIncomingMessageAt: type=string,null format=date-time descr="Data/hora da última mensagem recebida" - lastSeenAt: type=string,null format=date-time descr="Data/hora de última visualização da thread" - hasUnreadMessages: type=boolean descr="Indica se existem mensagens não lidas na thread" - createdAt: type=string format=date-time descr="Data de criação da thread" - updatedAt: type=string,null format=date-time descr="Data de atualização da thread" - meta: type=object title=Metadados de Paginação | type=object propriedades: - limit: type=integer format=int64 descr="Número máximo de itens por página" - count: type=integer format=int64 descr="Número total de itens vindos da consulta" - total: type=integer format=int64 descr="Número total de itens disponíveis" - page: type=integer format=int64 descr="Número da página atual" - totalPages: type=integer format=int64 descr="Número total de páginas disponíveis" - 400 — Bad Request • application/json descr="Bad Request" - 401 — Unauthorized • application/json descr="Unauthorized" [GET] /api/v1/conversations/threads/{threadId}/messages — Listar mensagens da conversa descrição: Retorna as mensagens pertencentes a uma thread específica tags: Conversas operationId: listThreadMessages segurança: requer apiKey (query: apiKey) parâmetros: - threadId (path, required, type=string) — ObjectId da thread - limit (query, optional, type=integer) — O número de itens a serem retornados - page (query, optional, type=integer) — O número da página a ser retornada - gteCreatedAt (query, optional, type=string) — Retornar mensagens criadas a partir desta data - lteCreatedAt (query, optional, type=string) — Retornar mensagens criadas até esta data - orderBy (query, optional, type=string) enum=[createdAt] — Campo para ordenação das mensagens - orderDirection (query, optional, type=string) enum=[asc, desc] — Direção da ordenação responses: - 200 — OK • application/json type=object propriedades: - data: type=array type=array items: title=Mensagem de Conversa | type=object | descr="Estrutura de mensagem de conversa; alguns campos são específicos por canal (WhatsApp/Email/LinkedIn)" propriedades: - id: type=string descr="ID da mensagem" - channel: type=string enum=[WHATSAPP, EMAIL] descr="Canal da mensagem" - direction: type=string enum=[OUTGOING, INCOMING] descr="Direção da mensagem" - status: type=string enum=[SENT, DELIVERED, READ, FAILED, PENDING] descr="Status de envio/entrega/leitura" - threadId: type=string descr="ID da thread à qual a mensagem pertence" - text: type=string,null descr="Corpo textual da mensagem (quando aplicável)" - mediaUrl: type=string,null descr="URL do arquivo de mídia (WhatsApp), quando disponível" - mimeType: type=string,null descr="MimeType do arquivo de mídia (WhatsApp)" - filename: type=string,null descr="Nome do arquivo de mídia (WhatsApp)" - templateId: type=string,null descr="ID do template (WhatsApp)" - templateName: type=string,null descr="Nome do template (WhatsApp)" - templateType: type=string,null descr="Tipo do template (WhatsApp)" - caption: type=string,null descr="Legenda da mídia (WhatsApp)" - latitude: type=number,null descr="Latitude de localização (WhatsApp)" - longitude: type=number,null descr="Longitude de localização (WhatsApp)" - locationName: type=string,null descr="Nome do local (WhatsApp)" - locationAddress: type=string,null descr="Endereço do local (WhatsApp)" - subject: type=string,null descr="Assunto (Email)" - body: type=string,null descr="Corpo do e-mail (Email)" - from: type=string,null descr="Remetente (Email)" - to: type=array,null descr="Destinatários (Email)" type=array,null | descr="Destinatários (Email)" - bouncedAt: type=string,null format=date-time descr="Data de bounce (Email)" - openedAt: type=string,null format=date-time descr="Data de abertura (Email)" - clickedAt: type=string,null format=date-time descr="Data do primeiro clique (Email)" - repliedAt: type=string,null format=date-time descr="Data da primeira resposta (Email)" - sentAt: type=string,null format=date-time descr="Data/hora de envio" - deliveredAt: type=string,null format=date-time descr="Data/hora de entrega" - readAt: type=string,null format=date-time descr="Data/hora de leitura" - failedAt: type=string,null format=date-time descr="Data/hora de falha" - createdAt: type=string format=date-time descr="Data de criação da mensagem" - updatedAt: type=string format=date-time descr="Data de atualização da mensagem" - meta: type=object title=Metadados de Paginação | type=object propriedades: - limit: type=integer format=int64 descr="Número máximo de itens por página" - count: type=integer format=int64 descr="Número total de itens vindos da consulta" - total: type=integer format=int64 descr="Número total de itens disponíveis" - page: type=integer format=int64 descr="Número da página atual" - totalPages: type=integer format=int64 descr="Número total de páginas disponíveis" - 400 — Bad Request • application/json descr="Bad Request" - 401 — Unauthorized • application/json descr="Unauthorized" - 404 — Not Found • application/json descr="NotFound" Esquemas Principais (components/schemas): - Lead title=Lead | type=object propriedades: - id: type=string descr="ID do lead" - firstName: type=string descr="Primeiro nome" - lastName: type=string descr="Sobrenome" - fullName: type=string descr="Nome completo" - state: type=string descr="Estado ou UF" - city: type=string descr="Cidade" - jobTitle: type=string descr="Cargo" - department: type=string descr="Departamento" - emails: type=array descr="Lista de e-mails de contato" type=array | descr="Lista de e-mails de contato" items: type=object | exemplos=[{"value":"john.doe@example.com","label":"Work"}] propriedades: - value: type=string format=email descr="E-mail de contato" - label: type=string descr="Rótulo do e-mail" - phones: type=array descr="Lista de telefones de contato" type=array | descr="Lista de telefones de contato" items: type=object | exemplos=[{"value":"(21) 9999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone" - mobiles: type=array descr="Lista de celulares de contato" type=array | descr="Lista de celulares de contato" items: type=object | exemplos=[{"value":"(21) 99999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone" - linkedinURL: type=string descr="Perfil do LinkedIn do lead" - companyName: type=string descr="Nome da empresa" - companySize: type=string descr="Porte da empresa" - companyIndustry: type=string descr="Segmento da empresa" - companyWebsite: type=string format=uri descr="Site da empresa" - companyLinkedinURL: type=string format=uri descr="Perfil da empresa no LinkedIn" - observation: type=string descr="Observações sobre o lead" - responsible: type=object title=Usuário | type=object propriedades: - id: type=string descr="ID do usuário" - firstName: type=string descr="Primeiro nome do usuário" - lastName: type=string descr="Sobrenome do usuário" - email: type=string descr="E-mail do usuário" - customFields: type=object descr="Campos personalizados do lead" - sourceType: type=string enum=[FILE, RD_MARKETING, API] descr="Tipo de origem do lead: - FILE: Importado de uma lista de leads - RD_MARKETING: Capturado do RD Station Marketing - API: Inserido via API" - sourceFileName: type=string descr="Nome do arquivo de origem" - currentRoutineId: type=string,null descr="ID da Cadência vinculada ao lead, se houver" - deletedAt: type=string,null format=date-time descr="Data de exclusão do lead, se aplicável" - createdAt: type=string format=date-time descr="Data de criação do lead" - Routine title=Cadência | type=object propriedades: - id: type=string descr="ID da cadência" - name: type=string descr="Nome da cadência" - description: type=string,null descr="Descrição da cadência" - executionMode: type=string enum=[MANUAL, AI_DRIVEN] descr="Modo de execução da cadência: - MANUAL: Manual - AI_DRIVEN: Gerenciado por IA" - acquisitionType: type=string enum=[OUTBOUND, PASSIVE_INBOUND, ACTIVE_INBOUND, REFERRAL, REACTIVATION, EVENT_NETWORKING, OTHER] descr="Tipo do canal de aquisição da cadência: - OUTBOUND: Outbound - PASSIVE_INBOUND: Fishing - ACTIVE_INBOUND: Levantada de mão - REFERRAL: Indicação - REACTIVATION: Resgate - EVENT_NETWORKING: Networking em eventos - OTHER: Outro" - priority: type=string enum=[HIGH, MEDIUM, LOW] descr="Prioridade da cadência: - HIGH: Alta - MEDIUM: Média - LOW: Baixa" - scheduleSettings: type=object type=object propriedades: - daysOfWeek: type=array type=array | exemplos=[[1,2,3,4,5]] items: type=integer | enum=[0, 1, 2, 3, 4, 5, 6] - status: type=string enum=[ACTIVE, FROZEN] descr="Status da cadência: - ACTIVE: Ativa - FROZEN: Congelada" - deletedAt: type=string,null format=date-time descr="Data de exclusão da cadência, se aplicável" - createdAt: type=string format=date-time descr="Data de criação da cadência" - Prospection title=Prospecção | type=object propriedades: - id: type=string descr="ID da prospecção" - lead: type=object title=Lead | type=object propriedades: - id: type=string descr="ID do lead" - firstName: type=string descr="Primeiro nome" - lastName: type=string descr="Sobrenome" - fullName: type=string descr="Nome completo" - state: type=string descr="Estado ou UF" - city: type=string descr="Cidade" - jobTitle: type=string descr="Cargo" - department: type=string descr="Departamento" - emails: type=array descr="Lista de e-mails de contato" type=array | descr="Lista de e-mails de contato" items: type=object | exemplos=[{"value":"john.doe@example.com","label":"Work"}] - phones: type=array descr="Lista de telefones de contato" type=array | descr="Lista de telefones de contato" items: type=object | exemplos=[{"value":"(21) 9999-9999","label":"Trabalho"}] - mobiles: type=array descr="Lista de celulares de contato" type=array | descr="Lista de celulares de contato" items: type=object | exemplos=[{"value":"(21) 99999-9999","label":"Trabalho"}] - linkedinURL: type=string descr="Perfil do LinkedIn do lead" - companyName: type=string descr="Nome da empresa" - companySize: type=string descr="Porte da empresa" - companyIndustry: type=string descr="Segmento da empresa" - companyWebsite: type=string format=uri descr="Site da empresa" - companyLinkedinURL: type=string format=uri descr="Perfil da empresa no LinkedIn" - observation: type=string descr="Observações sobre o lead" - responsible: type=object title=Usuário | type=object propriedades: - id: type=string descr="ID do usuário" - firstName: type=string descr="Primeiro nome do usuário" - lastName: type=string descr="Sobrenome do usuário" - email: type=string descr="E-mail do usuário" - customFields: type=object descr="Campos personalizados do lead" - sourceType: type=string enum=[FILE, RD_MARKETING, API] descr="Tipo de origem do lead: - FILE: Importado de uma lista de leads - RD_MARKETING: Capturado do RD Station Marketing - API: Inserido via API" - sourceFileName: type=string descr="Nome do arquivo de origem" - currentRoutineId: type=string,null descr="ID da Cadência vinculada ao lead, se houver" - deletedAt: type=string,null format=date-time descr="Data de exclusão do lead, se aplicável" - createdAt: type=string format=date-time descr="Data de criação do lead" - executionMode: type=string enum=[MANUAL, AI_DRIVEN] descr="Modo de execução da prospecção: - MANUAL: Manual - AI_DRIVEN: Gerenciado por IA" - routine: type=object title=Cadência | type=object propriedades: - id: type=string descr="ID da cadência" - name: type=string descr="Nome da cadência" - description: type=string,null descr="Descrição da cadência" - executionMode: type=string enum=[MANUAL, AI_DRIVEN] descr="Modo de execução da cadência: - MANUAL: Manual - AI_DRIVEN: Gerenciado por IA" - acquisitionType: type=string enum=[OUTBOUND, PASSIVE_INBOUND, ACTIVE_INBOUND, REFERRAL, REACTIVATION, EVENT_NETWORKING, OTHER] descr="Tipo do canal de aquisição da cadência: - OUTBOUND: Outbound - PASSIVE_INBOUND: Fishing - ACTIVE_INBOUND: Levantada de mão - REFERRAL: Indicação - REACTIVATION: Resgate - EVENT_NETWORKING: Networking em eventos - OTHER: Outro" - priority: type=string enum=[HIGH, MEDIUM, LOW] descr="Prioridade da cadência: - HIGH: Alta - MEDIUM: Média - LOW: Baixa" - scheduleSettings: type=object type=object propriedades: - daysOfWeek: type=array type=array | exemplos=[[1,2,3,4,5]] - status: type=string enum=[ACTIVE, FROZEN] descr="Status da cadência: - ACTIVE: Ativa - FROZEN: Congelada" - deletedAt: type=string,null format=date-time descr="Data de exclusão da cadência, se aplicável" - createdAt: type=string format=date-time descr="Data de criação da cadência" - responsible: type=object title=Usuário | type=object propriedades: - id: type=string descr="ID do usuário" - firstName: type=string descr="Primeiro nome do usuário" - lastName: type=string descr="Sobrenome do usuário" - email: type=string descr="E-mail do usuário" - agent: type=object title=Agente de IA | type=object propriedades: - id: type=string descr="ID do Agente" - name: type=string descr="Nome do Agente" - status: type=string enum=[WON, LOST, IN_PROGRESS, FROZEN, EXHAUSTED, DISCARDED] descr="Status da prospecção: - WON: Lead agendado - LOST: Lead perdido - IN_PROGRESS: Prospecção em andamento - FROZEN: Prospecção congelada - EXHAUSTED: Fim de Prospecção (sem mais atividades para executar) - DISCARDED: Prospecção descartada" - lostReason: type=string,null descr="Motivo da perda do lead, só é preenchido quando o status é LOST" - isAutomaticLoss: type=boolean descr="Indica se a prospecção foi perdida automaticamente" - startDate: type=string format=date-time descr="Data de início da prospecção" - endDate: type=string,null format=date-time descr="Data de término da prospecção, só é preenchido quando o status é WON ou LOST" - Task title=Modelo de Atividade | type=object propriedades: - id: type=string descr="ID do modelo de atividade" - title: type=string descr="Título do modelo de atividade" - description: type=string,null descr="Descrição do modelo de atividade" - type: type=string enum=[SEARCH, EMAIL, CALL, LINKEDIN_MESSAGE, WHATSAPP_MESSAGE] descr="Tipo do modelo de atividade: - SEARCH: Pesquisa - EMAIL: E-mail - CALL: Ligação - LINKEDIN_MESSAGE: Mensagem no LinkedIn - WHATSAPP_MESSAGE: Mensagem no WhatsApp" - emailSubject: type=string,null descr="Assunto do e-mail, só é preenchido quando o tipo é EMAIL" - emailBody: type=string,null descr="Corpo do e-mail, só é preenchido quando o tipo é EMAIL" - socialMessageBody: type=string,null descr="Texto da mensagem, só é preenchido quando o tipo é LINKEDIN_MESSAGE ou WHATSAPP_MESSAGE" - Email title=E-mail | type=object propriedades: - id: type=string descr="ID do e-mail" - from: type=string descr="E-mail do remetente" - to: type=string descr="E-mail do destinatário" - subject: type=string descr="Assunto do e-mail" - body: type=string descr="Corpo do e-mail" - sentAt: type=string format=date-time descr="Data de envio do e-mail" - bounceType: type=string enum=[HARD_BOUNCE, SOFT_BOUNCE] descr="Tipo de bounceType: - HARD_BOUNCE: E-mail não entregue por erro permanente - SOFT_BOUNCE: E-mail não entregue por erro temporário" - bouncedAt: type=string,null format=date-time descr="Data de bounce do e-mail, só é preenchido quando o e-mail é um bounce" - openedAt: type=string,null format=date-time descr="Data de abertura do e-mail, só é preenchido quando o e-mail é aberto" - clickedAt: type=string,null format=date-time descr="Data de clique no e-mail, só é preenchido quando o e-mail tem um link clicado" - repliedAt: type=string,null format=date-time descr="Data de resposta ao e-mail, só é preenchido quando o e-mail é respondido" - Call title=Ligação | type=object propriedades: - id: type=string descr="ID da ligação" - to: type=string descr="Número do destinatário" - source: type=string enum=[PROSPECTION, EXTERNAL] descr="Origem da ligação: - PROSPECTION: Ligação feita durante uma prospecção - EXTERNAL: Ligação feita fora de uma prospecção" - outcome: type=string enum=[MEANINGFUL, NOT_MEANINGFUL, GATEKEEPER, UNAVAILABLE_PERSONA, WRONG_NUMBER, NO_CONTACT] descr="Classificação do resultado da ligação: - MEANINGFUL: Com avanço significativo - NOT_MEANINGFUL: Sem avanço significativo - GATEKEEPER: Parado no Gatekeeper - UNAVAILABLE_PERSONA: Persona indisponível - WRONG_NUMBER: Telefone incorreto - NO_CONTACT: Sem conexão" - startedAt: type=string format=date-time descr="Data de início da ligação" - endedAt: type=string,null format=date-time descr="Data de término da ligação, só é preenchido quando a ligação é finalizada" - durationInSeconds: type=integer format=int64 descr="Duração da ligação em segundos" - notes: type=string,null descr="Notas sobre a ligação" - recordingURL: type=string,null descr="URL da gravação da ligação, só é preenchido quando a ligação é gravada" - transcription: type=object descr="Dados da transcrição da ligação, só é preenchido quando a ligação possui transcrição" type=object | descr="Dados da transcrição da ligação, só é preenchido quando a ligação possui transcrição" propriedades: - id: type=string descr="ID da transcrição" - segments: type=array descr="Segmentos da transcrição com texto e tempo" type=array | descr="Segmentos da transcrição com texto e tempo" items: type=object - text: type=string descr="Texto completo da transcrição" - createdAt: type=string,null format=date-time descr="Data de criação da transcrição" - summary: type=string,null descr="Resumo da ligação, só é preenchido quando a ligação é finalizada" - TaskExecution title=Atividade de Prospecção | type=object propriedades: - id: type=string descr="ID da atividade de prospecção" - prospection: type=string descr="ID da prospecção em que a atividade está vinculada" - task: type=object title=Modelo de Atividade | type=object propriedades: - id: type=string descr="ID do modelo de atividade" - title: type=string descr="Título do modelo de atividade" - description: type=string,null descr="Descrição do modelo de atividade" - type: type=string enum=[SEARCH, EMAIL, CALL, LINKEDIN_MESSAGE, WHATSAPP_MESSAGE] descr="Tipo do modelo de atividade: - SEARCH: Pesquisa - EMAIL: E-mail - CALL: Ligação - LINKEDIN_MESSAGE: Mensagem no LinkedIn - WHATSAPP_MESSAGE: Mensagem no WhatsApp" - emailSubject: type=string,null descr="Assunto do e-mail, só é preenchido quando o tipo é EMAIL" - emailBody: type=string,null descr="Corpo do e-mail, só é preenchido quando o tipo é EMAIL" - socialMessageBody: type=string,null descr="Texto da mensagem, só é preenchido quando o tipo é LINKEDIN_MESSAGE ou WHATSAPP_MESSAGE" - responsible: type=object title=Usuário | type=object propriedades: - id: type=string descr="ID do usuário" - firstName: type=string descr="Primeiro nome do usuário" - lastName: type=string descr="Sobrenome do usuário" - email: type=string descr="E-mail do usuário" - type: type=string enum=[SEARCH, EMAIL, CALL, LINKEDIN_MESSAGE, WHATSAPP_MESSAGE, SCHEDULE_MEETING] descr="Tipo da atividade: - SEARCH: Pesquisa - EMAIL: E-mail - CALL: Ligação - LINKEDIN_MESSAGE: Mensagem no LinkedIn - WHATSAPP_MESSAGE: Mensagem no WhatsApp - SCHEDULE_MEETING: Agendamento de reunião" - status: type=string enum=[SCHEDULED, FINISHED, IGNORED, FROZEN] descr="Status da atividade de prospecção: - SCHEDULED: Agendada - FINISHED: Concluída - IGNORED: Ignorada - FROZEN: Congelada" - isExtraTask: type=boolean descr="Indica se é uma atividade extra" - email: type=object title=E-mail | type=object propriedades: - id: type=string descr="ID do e-mail" - from: type=string descr="E-mail do remetente" - to: type=string descr="E-mail do destinatário" - subject: type=string descr="Assunto do e-mail" - body: type=string descr="Corpo do e-mail" - sentAt: type=string format=date-time descr="Data de envio do e-mail" - bounceType: type=string enum=[HARD_BOUNCE, SOFT_BOUNCE] descr="Tipo de bounceType: - HARD_BOUNCE: E-mail não entregue por erro permanente - SOFT_BOUNCE: E-mail não entregue por erro temporário" - bouncedAt: type=string,null format=date-time descr="Data de bounce do e-mail, só é preenchido quando o e-mail é um bounce" - openedAt: type=string,null format=date-time descr="Data de abertura do e-mail, só é preenchido quando o e-mail é aberto" - clickedAt: type=string,null format=date-time descr="Data de clique no e-mail, só é preenchido quando o e-mail tem um link clicado" - repliedAt: type=string,null format=date-time descr="Data de resposta ao e-mail, só é preenchido quando o e-mail é respondido" - calls: type=array descr="Lista de ligações realizadas, só é preenchido quando o tipo é CALL" type=array | descr="Lista de ligações realizadas, só é preenchido quando o tipo é CALL" items: title=Ligação | type=object propriedades: - id: type=string descr="ID da ligação" - to: type=string descr="Número do destinatário" - source: type=string enum=[PROSPECTION, EXTERNAL] descr="Origem da ligação: - PROSPECTION: Ligação feita durante uma prospecção - EXTERNAL: Ligação feita fora de uma prospecção" - outcome: type=string enum=[MEANINGFUL, NOT_MEANINGFUL, GATEKEEPER, UNAVAILABLE_PERSONA, WRONG_NUMBER, NO_CONTACT] descr="Classificação do resultado da ligação: - MEANINGFUL: Com avanço significativo - NOT_MEANINGFUL: Sem avanço significativo - GATEKEEPER: Parado no Gatekeeper - UNAVAILABLE_PERSONA: Persona indisponível - WRONG_NUMBER: Telefone incorreto - NO_CONTACT: Sem conexão" - startedAt: type=string format=date-time descr="Data de início da ligação" - endedAt: type=string,null format=date-time descr="Data de término da ligação, só é preenchido quando a ligação é finalizada" - durationInSeconds: type=integer format=int64 descr="Duração da ligação em segundos" - notes: type=string,null descr="Notas sobre a ligação" - recordingURL: type=string,null descr="URL da gravação da ligação, só é preenchido quando a ligação é gravada" - transcription: type=object descr="Dados da transcrição da ligação, só é preenchido quando a ligação possui transcrição" type=object | descr="Dados da transcrição da ligação, só é preenchido quando a ligação possui transcrição" - summary: type=string,null descr="Resumo da ligação, só é preenchido quando a ligação é finalizada" - socialMessageBody: type=string,null descr="Texto da mensagem enviada, só é preenchido quando o tipo é LINKEDIN_MESSAGE ou WHATSAPP_MESSAGE e o status é FINISHED" - meeting: type=object,null descr="Informações da reunião agendada, só é preenchido quando existe uma reunião associada" type=object,null | descr="Informações da reunião agendada, só é preenchido quando existe uma reunião associada" | exemplos=[{"title":"Reunião de apresentação","provider":"Google Meet","eventUrl":"https://calendar.google.com/event/123","conferenceUrl":"https://meet.google.com/abc-defg-hij","participants":["joao@exemplo.com","maria@exemplo.com"],"startTime":"2021-10-01T14:00:00Z","endTime":"2021-10-01T15:00:00Z"},null] propriedades: - title: type=string descr="Título da reunião" - provider: type=string descr="Provedor da reunião (ex: Google Meet, Zoom, Teams)" - eventUrl: type=string descr="URL do evento da reunião" - conferenceUrl: type=string descr="URL da conferência/chamada" - participants: type=array descr="Lista de participantes da reunião" type=array | descr="Lista de participantes da reunião" | exemplos=[["joao@exemplo.com","maria@exemplo.com"]] items: type=string - startTime: type=string format=date-time descr="Data e hora de início da reunião" - endTime: type=string format=date-time descr="Data e hora de término da reunião" - observations: type=string,null descr="Observações sobre a realização da atividade" - notes: type=string,null descr="Notas sobre a atividade" - scheduledTo: type=string format=date-time descr="Data de agendamento da atividade de prospecção" - dueDate: type=string,null format=date-time descr="Data de limite para conclusão da atividade de prospecção" - finishedAt: type=string,null format=date-time descr="Data de conclusão da atividade, só é preenchido quando o status é FINISHED ou IGNORED" - CustomField title=Campo Personalizado | type=object propriedades: - id: type=string descr="ID do campo personalizado" - type: type=string enum=[TEXT, DATE, NUMBER, BOOLEAN, SELECT] descr="Tipo do campo personalizado: - TEXT: Texto - DATE: Data - NUMBER: Número - BOOLEAN: Verdadeiro/Falso - SELECT: Lista de opções" - options: type=array descr="Opções disponíveis para campos do tipo SELECT" type=array | descr="Opções disponíveis para campos do tipo SELECT" items: type=object | exemplos=[{"value":"B2B","category":"ACCEPTABLE"},{"value":"B2C","category":"RED_FLAG"}] propriedades: - value: type=string descr="Valor da opção" - category: type=string descr="Categoria da opção: - RED_FLAG: Sinal vermelho - ACCEPTABLE: Aceitável - DESIRABLE: Desejável" - archived: type=boolean descr="Indica se o campo personalizado está arquivado" - requiredUponWin: type=boolean descr="Indica se o campo personalizado é obrigatório para o lead ser agendado" - deletedAt: type=string format=date-time descr="Data de exclusão do campo personalizado, se aplicável" - createdAt: type=string format=date-time descr="Data de criação do campo personalizado" - PaginatedResource title=Metadados de Paginação | type=object propriedades: - limit: type=integer format=int64 descr="Número máximo de itens por página" - count: type=integer format=int64 descr="Número total de itens vindos da consulta" - total: type=integer format=int64 descr="Número total de itens disponíveis" - page: type=integer format=int64 descr="Número da página atual" - totalPages: type=integer format=int64 descr="Número total de páginas disponíveis" - Error type=object propriedades: - message: type=string descr="Nome do erro" - errors: type=array descr="Detalhes dos erros" type=array | descr="Detalhes dos erros" items: type=object propriedades: - field: type=string descr="Nome do campo com erro" - message: type=string descr="Mensagem de erro" - User title=Usuário | type=object propriedades: - id: type=string descr="ID do usuário" - firstName: type=string descr="Primeiro nome do usuário" - lastName: type=string descr="Sobrenome do usuário" - email: type=string descr="E-mail do usuário" - Agent title=Agente de IA | type=object propriedades: - id: type=string descr="ID do Agente" - name: type=string descr="Nome do Agente" - Webhook title=Webhook | type=object propriedades: - id: type=string descr="ID do webhook" - secret: type=string descr="Segredo do webhook para validação de chamadas recebidas (apenas na resposta da criação)" - name: type=string descr="Nome do webhook" - url: type=string descr="URL do webhook" - events: type=array descr="Lista de eventos que o webhook irá escutar" type=array | descr="Lista de eventos que o webhook irá escutar" | exemplos=[["prospection.won","prospection.lost"]] items: type=string | enum=[prospection.won, prospection.lost] - enabled: type=boolean descr="Indica se o webhook está habilitado" - consecutiveFailures: type=integer descr="Número de falhas consecutivas" - isFailing: type=boolean descr="Indica se o webhook está em estado de falha" - updatedAt: type=string format=date-time descr="Data de atualização do webhook" - createdAt: type=string format=date-time descr="Data de criação do webhook" - deletedAt: type=string,null format=date-time descr="Data de exclusão do webhook, se aplicável" === Webhooks === GS Engage - Webhooks — v1.0.0 Base URL: https://api.gsengage.com/api/v1 Eventos: - prospection.won — Prospecção ganha — Evento enviado quando uma prospecção é dada como ganha. payload: • application/json title=Evento de Prospecção | type=object propriedades: - id: type=string descr="ID do Evento" - event: type=string descr="Nome do evento" - data: type=object title=Prospecção | type=object propriedades: - id: type=string descr="ID da prospecção" - lead: type=object title=Lead | type=object propriedades: - id: type=string descr="ID do lead" - firstName: type=string descr="Primeiro nome, limitado a 255 caracteres" - lastName: type=string descr="Sobrenome, limitado a 255 caracteres" - fullName: type=string descr="Nome completo, limitado a 255 caracteres" - state: type=string descr="Estado ou UF, limitado a 255 caracteres" - city: type=string descr="Cidade, limitado a 255 caracteres" - jobTitle: type=string descr="Cargo, limitado a 255 caracteres" - department: type=string descr="Departamento, limitado a 255 caracteres" - emails: type=array descr="Lista de e-mails de contato" type=array | descr="Lista de e-mails de contato" - phones: type=array descr="Lista de telefones de contato" type=array | descr="Lista de telefones de contato" - mobiles: type=array descr="Lista de celulares de contato" type=array | descr="Lista de celulares de contato" - linkedinURL: type=string descr="Perfil do LinkedIn do lead, limitado a 2 mil caracteres" - companyName: type=string descr="Nome da empresa, limitado a 255 caracteres" - companySize: type=string descr="Porte da empresa, limitado a 255 caracteres" - companyIndustry: type=string descr="Segmento da empresa, limitado a 255 caracteres" - companyWebsite: type=string descr="Site da empresa, limitado a 2 mil caracteres" - companyLinkedinURL: type=string descr="Perfil da empresa no LinkedIn, limitado a 2 mil caracteres" - observation: type=string descr="Observações sobre o lead, limitado a 10 mil caracteres" - customFields: type=object descr="Campos personalizados do lead" - sourceType: type=string enum=[FILE, RD_MARKETING, API] descr="Tipo de origem do lead: - FILE: Importado de uma lista de leads - RD_MARKETING: Capturado do RD Station Marketing - API: Inserido via API" - sourceFileName: type=string descr="Nome do arquivo de origem" - currentRoutineId: type=string,null descr="ID da Cadência vinculada ao lead, se houver" - deletedAt: type=string,null format=date-time descr="Data de exclusão do lead, se aplicável" - createdAt: type=string format=date-time descr="Data de criação do lead" - routine: type=object title=Cadência | type=object propriedades: - id: type=string descr="ID da cadência" - name: type=string descr="Nome da cadência" - description: type=string,null descr="Descrição da cadência" - acquisitionType: type=string enum=[OUTBOUND, PASSIVE_INBOUND, ACTIVE_INBOUND, REFERRAL, REACTIVATION, EVENT_NETWORKING, OTHER] descr="Tipo do canal de aquisição da cadência: - OUTBOUND: Outbound - PASSIVE_INBOUND: Fishing - ACTIVE_INBOUND: Levantada de mão - REFERRAL: Indicação - REACTIVATION: Resgate - EVENT_NETWORKING: Networking em eventos - OTHER: Outro" - priority: type=string enum=[HIGH, MEDIUM, LOW] descr="Prioridade da cadência: - HIGH: Alta - MEDIUM: Média - LOW: Baixa" - status: type=string enum=[ACTIVE, FROZEN] descr="Status da cadência: - ACTIVE: Ativa - FROZEN: Congelada" - scheduleSettings: type=object type=object - deletedAt: type=string,null format=date-time descr="Data de exclusão da cadência, se aplicável" - createdAt: type=string format=date-time descr="Data de criação da cadência" - responsible: type=object title=Usuário | type=object propriedades: - id: type=string descr="ID do usuário" - firstName: type=string descr="Primeiro nome do usuário" - lastName: type=string descr="Sobrenome do usuário" - email: type=string descr="E-mail do usuário" - status: type=string enum=[IN_PROGRESS, WON, LOST, FROZEN] descr="Status da prospecção: - IN_PROGRESS: Prospecção em andamento - WON: Lead agendado - LOST: Lead perdido - FROZEN: Prospecção congelada" - lostReason: type=string,null descr="Motivo da perda do lead, só é preenchido quando o status é LOST" - isAutomaticLoss: type=boolean descr="Indica se a prospecção foi perdida automaticamente" - startDate: type=string format=date-time descr="Data de início da prospecção" - endDate: type=string,null format=date-time descr="Data de término da prospecção, só é preenchido quando o status é WON ou LOST" - retries: type=integer descr="Número de tentativas de envio do evento" - createdAt: type=string format=date-time descr="Data de criação do evento" - prospection.lost — Prospecção perdida — Evento enviado quando uma prospecção é dada como perdida. payload: • application/json title=Evento de Prospecção | type=object propriedades: - id: type=string descr="ID do Evento" - event: type=string descr="Nome do evento" - data: type=object title=Prospecção | type=object propriedades: - id: type=string descr="ID da prospecção" - lead: type=object title=Lead | type=object propriedades: - id: type=string descr="ID do lead" - firstName: type=string descr="Primeiro nome, limitado a 255 caracteres" - lastName: type=string descr="Sobrenome, limitado a 255 caracteres" - fullName: type=string descr="Nome completo, limitado a 255 caracteres" - state: type=string descr="Estado ou UF, limitado a 255 caracteres" - city: type=string descr="Cidade, limitado a 255 caracteres" - jobTitle: type=string descr="Cargo, limitado a 255 caracteres" - department: type=string descr="Departamento, limitado a 255 caracteres" - emails: type=array descr="Lista de e-mails de contato" type=array | descr="Lista de e-mails de contato" - phones: type=array descr="Lista de telefones de contato" type=array | descr="Lista de telefones de contato" - mobiles: type=array descr="Lista de celulares de contato" type=array | descr="Lista de celulares de contato" - linkedinURL: type=string descr="Perfil do LinkedIn do lead, limitado a 2 mil caracteres" - companyName: type=string descr="Nome da empresa, limitado a 255 caracteres" - companySize: type=string descr="Porte da empresa, limitado a 255 caracteres" - companyIndustry: type=string descr="Segmento da empresa, limitado a 255 caracteres" - companyWebsite: type=string descr="Site da empresa, limitado a 2 mil caracteres" - companyLinkedinURL: type=string descr="Perfil da empresa no LinkedIn, limitado a 2 mil caracteres" - observation: type=string descr="Observações sobre o lead, limitado a 10 mil caracteres" - customFields: type=object descr="Campos personalizados do lead" - sourceType: type=string enum=[FILE, RD_MARKETING, API] descr="Tipo de origem do lead: - FILE: Importado de uma lista de leads - RD_MARKETING: Capturado do RD Station Marketing - API: Inserido via API" - sourceFileName: type=string descr="Nome do arquivo de origem" - currentRoutineId: type=string,null descr="ID da Cadência vinculada ao lead, se houver" - deletedAt: type=string,null format=date-time descr="Data de exclusão do lead, se aplicável" - createdAt: type=string format=date-time descr="Data de criação do lead" - routine: type=object title=Cadência | type=object propriedades: - id: type=string descr="ID da cadência" - name: type=string descr="Nome da cadência" - description: type=string,null descr="Descrição da cadência" - acquisitionType: type=string enum=[OUTBOUND, PASSIVE_INBOUND, ACTIVE_INBOUND, REFERRAL, REACTIVATION, EVENT_NETWORKING, OTHER] descr="Tipo do canal de aquisição da cadência: - OUTBOUND: Outbound - PASSIVE_INBOUND: Fishing - ACTIVE_INBOUND: Levantada de mão - REFERRAL: Indicação - REACTIVATION: Resgate - EVENT_NETWORKING: Networking em eventos - OTHER: Outro" - priority: type=string enum=[HIGH, MEDIUM, LOW] descr="Prioridade da cadência: - HIGH: Alta - MEDIUM: Média - LOW: Baixa" - status: type=string enum=[ACTIVE, FROZEN] descr="Status da cadência: - ACTIVE: Ativa - FROZEN: Congelada" - scheduleSettings: type=object type=object - deletedAt: type=string,null format=date-time descr="Data de exclusão da cadência, se aplicável" - createdAt: type=string format=date-time descr="Data de criação da cadência" - responsible: type=object title=Usuário | type=object propriedades: - id: type=string descr="ID do usuário" - firstName: type=string descr="Primeiro nome do usuário" - lastName: type=string descr="Sobrenome do usuário" - email: type=string descr="E-mail do usuário" - status: type=string enum=[IN_PROGRESS, WON, LOST, FROZEN] descr="Status da prospecção: - IN_PROGRESS: Prospecção em andamento - WON: Lead agendado - LOST: Lead perdido - FROZEN: Prospecção congelada" - lostReason: type=string,null descr="Motivo da perda do lead, só é preenchido quando o status é LOST" - isAutomaticLoss: type=boolean descr="Indica se a prospecção foi perdida automaticamente" - startDate: type=string format=date-time descr="Data de início da prospecção" - endDate: type=string,null format=date-time descr="Data de término da prospecção, só é preenchido quando o status é WON ou LOST" - retries: type=integer descr="Número de tentativas de envio do evento" - createdAt: type=string format=date-time descr="Data de criação do evento" - prospection.started — Prospecção iniciada — Evento enviado quando uma prospecção é iniciada. payload: • application/json title=Evento de Prospecção | type=object propriedades: - id: type=string descr="ID do Evento" - event: type=string descr="Nome do evento" - data: type=object title=Prospecção | type=object propriedades: - id: type=string descr="ID da prospecção" - lead: type=object title=Lead | type=object propriedades: - id: type=string descr="ID do lead" - firstName: type=string descr="Primeiro nome, limitado a 255 caracteres" - lastName: type=string descr="Sobrenome, limitado a 255 caracteres" - fullName: type=string descr="Nome completo, limitado a 255 caracteres" - state: type=string descr="Estado ou UF, limitado a 255 caracteres" - city: type=string descr="Cidade, limitado a 255 caracteres" - jobTitle: type=string descr="Cargo, limitado a 255 caracteres" - department: type=string descr="Departamento, limitado a 255 caracteres" - emails: type=array descr="Lista de e-mails de contato" type=array | descr="Lista de e-mails de contato" - phones: type=array descr="Lista de telefones de contato" type=array | descr="Lista de telefones de contato" - mobiles: type=array descr="Lista de celulares de contato" type=array | descr="Lista de celulares de contato" - linkedinURL: type=string descr="Perfil do LinkedIn do lead, limitado a 2 mil caracteres" - companyName: type=string descr="Nome da empresa, limitado a 255 caracteres" - companySize: type=string descr="Porte da empresa, limitado a 255 caracteres" - companyIndustry: type=string descr="Segmento da empresa, limitado a 255 caracteres" - companyWebsite: type=string descr="Site da empresa, limitado a 2 mil caracteres" - companyLinkedinURL: type=string descr="Perfil da empresa no LinkedIn, limitado a 2 mil caracteres" - observation: type=string descr="Observações sobre o lead, limitado a 10 mil caracteres" - customFields: type=object descr="Campos personalizados do lead" - sourceType: type=string enum=[FILE, RD_MARKETING, API] descr="Tipo de origem do lead: - FILE: Importado de uma lista de leads - RD_MARKETING: Capturado do RD Station Marketing - API: Inserido via API" - sourceFileName: type=string descr="Nome do arquivo de origem" - currentRoutineId: type=string,null descr="ID da Cadência vinculada ao lead, se houver" - deletedAt: type=string,null format=date-time descr="Data de exclusão do lead, se aplicável" - createdAt: type=string format=date-time descr="Data de criação do lead" - routine: type=object title=Cadência | type=object propriedades: - id: type=string descr="ID da cadência" - name: type=string descr="Nome da cadência" - description: type=string,null descr="Descrição da cadência" - acquisitionType: type=string enum=[OUTBOUND, PASSIVE_INBOUND, ACTIVE_INBOUND, REFERRAL, REACTIVATION, EVENT_NETWORKING, OTHER] descr="Tipo do canal de aquisição da cadência: - OUTBOUND: Outbound - PASSIVE_INBOUND: Fishing - ACTIVE_INBOUND: Levantada de mão - REFERRAL: Indicação - REACTIVATION: Resgate - EVENT_NETWORKING: Networking em eventos - OTHER: Outro" - priority: type=string enum=[HIGH, MEDIUM, LOW] descr="Prioridade da cadência: - HIGH: Alta - MEDIUM: Média - LOW: Baixa" - status: type=string enum=[ACTIVE, FROZEN] descr="Status da cadência: - ACTIVE: Ativa - FROZEN: Congelada" - scheduleSettings: type=object type=object - deletedAt: type=string,null format=date-time descr="Data de exclusão da cadência, se aplicável" - createdAt: type=string format=date-time descr="Data de criação da cadência" - responsible: type=object title=Usuário | type=object propriedades: - id: type=string descr="ID do usuário" - firstName: type=string descr="Primeiro nome do usuário" - lastName: type=string descr="Sobrenome do usuário" - email: type=string descr="E-mail do usuário" - status: type=string enum=[IN_PROGRESS, WON, LOST, FROZEN] descr="Status da prospecção: - IN_PROGRESS: Prospecção em andamento - WON: Lead agendado - LOST: Lead perdido - FROZEN: Prospecção congelada" - lostReason: type=string,null descr="Motivo da perda do lead, só é preenchido quando o status é LOST" - isAutomaticLoss: type=boolean descr="Indica se a prospecção foi perdida automaticamente" - startDate: type=string format=date-time descr="Data de início da prospecção" - endDate: type=string,null format=date-time descr="Data de término da prospecção, só é preenchido quando o status é WON ou LOST" - retries: type=integer descr="Número de tentativas de envio do evento" - createdAt: type=string format=date-time descr="Data de criação do evento" Esquemas (payloads relevantes): - Lead title=Lead | type=object propriedades: - id: type=string descr="ID do lead" - firstName: type=string descr="Primeiro nome, limitado a 255 caracteres" - lastName: type=string descr="Sobrenome, limitado a 255 caracteres" - fullName: type=string descr="Nome completo, limitado a 255 caracteres" - state: type=string descr="Estado ou UF, limitado a 255 caracteres" - city: type=string descr="Cidade, limitado a 255 caracteres" - jobTitle: type=string descr="Cargo, limitado a 255 caracteres" - department: type=string descr="Departamento, limitado a 255 caracteres" - emails: type=array descr="Lista de e-mails de contato" type=array | descr="Lista de e-mails de contato" items: type=object | exemplos=[{"value":"john.doe@example.com","label":"Work"}] propriedades: - value: type=string descr="E-mail de contato, limitado a 255 caracteres" - label: type=string descr="Rótulo do e-mail, limitado a 255 caracteres" - phones: type=array descr="Lista de telefones de contato" type=array | descr="Lista de telefones de contato" items: type=object | exemplos=[{"value":"(21) 9999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone, limitado a 255 caracteres" - mobiles: type=array descr="Lista de celulares de contato" type=array | descr="Lista de celulares de contato" items: type=object | exemplos=[{"value":"(21) 99999-9999","label":"Trabalho"}] propriedades: - value: type=string descr="Número de telefone de contato, deve ser um número de telefone válido" - label: type=string descr="Rótulo do telefone, limitado a 255 caracteres" - linkedinURL: type=string descr="Perfil do LinkedIn do lead, limitado a 2 mil caracteres" - companyName: type=string descr="Nome da empresa, limitado a 255 caracteres" - companySize: type=string descr="Porte da empresa, limitado a 255 caracteres" - companyIndustry: type=string descr="Segmento da empresa, limitado a 255 caracteres" - companyWebsite: type=string descr="Site da empresa, limitado a 2 mil caracteres" - companyLinkedinURL: type=string descr="Perfil da empresa no LinkedIn, limitado a 2 mil caracteres" - observation: type=string descr="Observações sobre o lead, limitado a 10 mil caracteres" - customFields: type=object descr="Campos personalizados do lead" - sourceType: type=string enum=[FILE, RD_MARKETING, API] descr="Tipo de origem do lead: - FILE: Importado de uma lista de leads - RD_MARKETING: Capturado do RD Station Marketing - API: Inserido via API" - sourceFileName: type=string descr="Nome do arquivo de origem" - currentRoutineId: type=string,null descr="ID da Cadência vinculada ao lead, se houver" - deletedAt: type=string,null format=date-time descr="Data de exclusão do lead, se aplicável" - createdAt: type=string format=date-time descr="Data de criação do lead" - Routine title=Cadência | type=object propriedades: - id: type=string descr="ID da cadência" - name: type=string descr="Nome da cadência" - description: type=string,null descr="Descrição da cadência" - acquisitionType: type=string enum=[OUTBOUND, PASSIVE_INBOUND, ACTIVE_INBOUND, REFERRAL, REACTIVATION, EVENT_NETWORKING, OTHER] descr="Tipo do canal de aquisição da cadência: - OUTBOUND: Outbound - PASSIVE_INBOUND: Fishing - ACTIVE_INBOUND: Levantada de mão - REFERRAL: Indicação - REACTIVATION: Resgate - EVENT_NETWORKING: Networking em eventos - OTHER: Outro" - priority: type=string enum=[HIGH, MEDIUM, LOW] descr="Prioridade da cadência: - HIGH: Alta - MEDIUM: Média - LOW: Baixa" - status: type=string enum=[ACTIVE, FROZEN] descr="Status da cadência: - ACTIVE: Ativa - FROZEN: Congelada" - scheduleSettings: type=object type=object propriedades: - daysOfWeek: type=array type=array | exemplos=[[1,2,3,4,5]] items: type=integer | enum=[0, 1, 2, 3, 4, 5, 6] - deletedAt: type=string,null format=date-time descr="Data de exclusão da cadência, se aplicável" - createdAt: type=string format=date-time descr="Data de criação da cadência" - Prospection title=Prospecção | type=object propriedades: - id: type=string descr="ID da prospecção" - lead: type=object title=Lead | type=object propriedades: - id: type=string descr="ID do lead" - firstName: type=string descr="Primeiro nome, limitado a 255 caracteres" - lastName: type=string descr="Sobrenome, limitado a 255 caracteres" - fullName: type=string descr="Nome completo, limitado a 255 caracteres" - state: type=string descr="Estado ou UF, limitado a 255 caracteres" - city: type=string descr="Cidade, limitado a 255 caracteres" - jobTitle: type=string descr="Cargo, limitado a 255 caracteres" - department: type=string descr="Departamento, limitado a 255 caracteres" - emails: type=array descr="Lista de e-mails de contato" type=array | descr="Lista de e-mails de contato" items: type=object | exemplos=[{"value":"john.doe@example.com","label":"Work"}] - phones: type=array descr="Lista de telefones de contato" type=array | descr="Lista de telefones de contato" items: type=object | exemplos=[{"value":"(21) 9999-9999","label":"Trabalho"}] - mobiles: type=array descr="Lista de celulares de contato" type=array | descr="Lista de celulares de contato" items: type=object | exemplos=[{"value":"(21) 99999-9999","label":"Trabalho"}] - linkedinURL: type=string descr="Perfil do LinkedIn do lead, limitado a 2 mil caracteres" - companyName: type=string descr="Nome da empresa, limitado a 255 caracteres" - companySize: type=string descr="Porte da empresa, limitado a 255 caracteres" - companyIndustry: type=string descr="Segmento da empresa, limitado a 255 caracteres" - companyWebsite: type=string descr="Site da empresa, limitado a 2 mil caracteres" - companyLinkedinURL: type=string descr="Perfil da empresa no LinkedIn, limitado a 2 mil caracteres" - observation: type=string descr="Observações sobre o lead, limitado a 10 mil caracteres" - customFields: type=object descr="Campos personalizados do lead" - sourceType: type=string enum=[FILE, RD_MARKETING, API] descr="Tipo de origem do lead: - FILE: Importado de uma lista de leads - RD_MARKETING: Capturado do RD Station Marketing - API: Inserido via API" - sourceFileName: type=string descr="Nome do arquivo de origem" - currentRoutineId: type=string,null descr="ID da Cadência vinculada ao lead, se houver" - deletedAt: type=string,null format=date-time descr="Data de exclusão do lead, se aplicável" - createdAt: type=string format=date-time descr="Data de criação do lead" - routine: type=object title=Cadência | type=object propriedades: - id: type=string descr="ID da cadência" - name: type=string descr="Nome da cadência" - description: type=string,null descr="Descrição da cadência" - acquisitionType: type=string enum=[OUTBOUND, PASSIVE_INBOUND, ACTIVE_INBOUND, REFERRAL, REACTIVATION, EVENT_NETWORKING, OTHER] descr="Tipo do canal de aquisição da cadência: - OUTBOUND: Outbound - PASSIVE_INBOUND: Fishing - ACTIVE_INBOUND: Levantada de mão - REFERRAL: Indicação - REACTIVATION: Resgate - EVENT_NETWORKING: Networking em eventos - OTHER: Outro" - priority: type=string enum=[HIGH, MEDIUM, LOW] descr="Prioridade da cadência: - HIGH: Alta - MEDIUM: Média - LOW: Baixa" - status: type=string enum=[ACTIVE, FROZEN] descr="Status da cadência: - ACTIVE: Ativa - FROZEN: Congelada" - scheduleSettings: type=object type=object propriedades: - daysOfWeek: type=array type=array | exemplos=[[1,2,3,4,5]] - deletedAt: type=string,null format=date-time descr="Data de exclusão da cadência, se aplicável" - createdAt: type=string format=date-time descr="Data de criação da cadência" - responsible: type=object title=Usuário | type=object propriedades: - id: type=string descr="ID do usuário" - firstName: type=string descr="Primeiro nome do usuário" - lastName: type=string descr="Sobrenome do usuário" - email: type=string descr="E-mail do usuário" - status: type=string enum=[IN_PROGRESS, WON, LOST, FROZEN] descr="Status da prospecção: - IN_PROGRESS: Prospecção em andamento - WON: Lead agendado - LOST: Lead perdido - FROZEN: Prospecção congelada" - lostReason: type=string,null descr="Motivo da perda do lead, só é preenchido quando o status é LOST" - isAutomaticLoss: type=boolean descr="Indica se a prospecção foi perdida automaticamente" - startDate: type=string format=date-time descr="Data de início da prospecção" - endDate: type=string,null format=date-time descr="Data de término da prospecção, só é preenchido quando o status é WON ou LOST" - User title=Usuário | type=object propriedades: - id: type=string descr="ID do usuário" - firstName: type=string descr="Primeiro nome do usuário" - lastName: type=string descr="Sobrenome do usuário" - email: type=string descr="E-mail do usuário" - ProspectionEvent title=Evento de Prospecção | type=object propriedades: - id: type=string descr="ID do Evento" - event: type=string descr="Nome do evento" - data: type=object title=Prospecção | type=object propriedades: - id: type=string descr="ID da prospecção" - lead: type=object title=Lead | type=object propriedades: - id: type=string descr="ID do lead" - firstName: type=string descr="Primeiro nome, limitado a 255 caracteres" - lastName: type=string descr="Sobrenome, limitado a 255 caracteres" - fullName: type=string descr="Nome completo, limitado a 255 caracteres" - state: type=string descr="Estado ou UF, limitado a 255 caracteres" - city: type=string descr="Cidade, limitado a 255 caracteres" - jobTitle: type=string descr="Cargo, limitado a 255 caracteres" - department: type=string descr="Departamento, limitado a 255 caracteres" - emails: type=array descr="Lista de e-mails de contato" type=array | descr="Lista de e-mails de contato" - phones: type=array descr="Lista de telefones de contato" type=array | descr="Lista de telefones de contato" - mobiles: type=array descr="Lista de celulares de contato" type=array | descr="Lista de celulares de contato" - linkedinURL: type=string descr="Perfil do LinkedIn do lead, limitado a 2 mil caracteres" - companyName: type=string descr="Nome da empresa, limitado a 255 caracteres" - companySize: type=string descr="Porte da empresa, limitado a 255 caracteres" - companyIndustry: type=string descr="Segmento da empresa, limitado a 255 caracteres" - companyWebsite: type=string descr="Site da empresa, limitado a 2 mil caracteres" - companyLinkedinURL: type=string descr="Perfil da empresa no LinkedIn, limitado a 2 mil caracteres" - observation: type=string descr="Observações sobre o lead, limitado a 10 mil caracteres" - customFields: type=object descr="Campos personalizados do lead" - sourceType: type=string enum=[FILE, RD_MARKETING, API] descr="Tipo de origem do lead: - FILE: Importado de uma lista de leads - RD_MARKETING: Capturado do RD Station Marketing - API: Inserido via API" - sourceFileName: type=string descr="Nome do arquivo de origem" - currentRoutineId: type=string,null descr="ID da Cadência vinculada ao lead, se houver" - deletedAt: type=string,null format=date-time descr="Data de exclusão do lead, se aplicável" - createdAt: type=string format=date-time descr="Data de criação do lead" - routine: type=object title=Cadência | type=object propriedades: - id: type=string descr="ID da cadência" - name: type=string descr="Nome da cadência" - description: type=string,null descr="Descrição da cadência" - acquisitionType: type=string enum=[OUTBOUND, PASSIVE_INBOUND, ACTIVE_INBOUND, REFERRAL, REACTIVATION, EVENT_NETWORKING, OTHER] descr="Tipo do canal de aquisição da cadência: - OUTBOUND: Outbound - PASSIVE_INBOUND: Fishing - ACTIVE_INBOUND: Levantada de mão - REFERRAL: Indicação - REACTIVATION: Resgate - EVENT_NETWORKING: Networking em eventos - OTHER: Outro" - priority: type=string enum=[HIGH, MEDIUM, LOW] descr="Prioridade da cadência: - HIGH: Alta - MEDIUM: Média - LOW: Baixa" - status: type=string enum=[ACTIVE, FROZEN] descr="Status da cadência: - ACTIVE: Ativa - FROZEN: Congelada" - scheduleSettings: type=object type=object - deletedAt: type=string,null format=date-time descr="Data de exclusão da cadência, se aplicável" - createdAt: type=string format=date-time descr="Data de criação da cadência" - responsible: type=object title=Usuário | type=object propriedades: - id: type=string descr="ID do usuário" - firstName: type=string descr="Primeiro nome do usuário" - lastName: type=string descr="Sobrenome do usuário" - email: type=string descr="E-mail do usuário" - status: type=string enum=[IN_PROGRESS, WON, LOST, FROZEN] descr="Status da prospecção: - IN_PROGRESS: Prospecção em andamento - WON: Lead agendado - LOST: Lead perdido - FROZEN: Prospecção congelada" - lostReason: type=string,null descr="Motivo da perda do lead, só é preenchido quando o status é LOST" - isAutomaticLoss: type=boolean descr="Indica se a prospecção foi perdida automaticamente" - startDate: type=string format=date-time descr="Data de início da prospecção" - endDate: type=string,null format=date-time descr="Data de término da prospecção, só é preenchido quando o status é WON ou LOST" - retries: type=integer descr="Número de tentativas de envio do evento" - createdAt: type=string format=date-time descr="Data de criação do evento" Entrega de Webhooks: - Desafio de verificação: responda 200 a uma chamada GET em até 20s. - Assinatura do evento: compare o cabeçalho x-gs-engage-signature com um HMAC do corpo JSON bruto usando o segredo do webhook (veja documentação; o exemplo mostra SHA-256). - Tentativas de reenvio: até 4; desativação automática após 20 falhas consecutivas.