@magnetcustomer/sdk 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -3
- package/dist/client.d.ts +6 -1
- package/dist/client.js +5 -0
- package/dist/generated/api/contacts-api.d.ts +24 -24
- package/dist/generated/api/contacts-api.js +24 -24
- package/dist/generated/api/custom-fields-api.d.ts +1 -43
- package/dist/generated/api/custom-fields-api.js +1 -67
- package/dist/generated/api/customers-api.d.ts +4 -4
- package/dist/generated/api/customers-api.js +4 -4
- package/dist/generated/api/deals-api.d.ts +27 -27
- package/dist/generated/api/deals-api.js +27 -27
- package/dist/generated/api/journeys-api.d.ts +232 -0
- package/dist/generated/api/journeys-api.js +315 -0
- package/dist/generated/api/leads-api.d.ts +4 -4
- package/dist/generated/api/leads-api.js +4 -4
- package/dist/generated/api/meetings-api.d.ts +123 -27
- package/dist/generated/api/meetings-api.js +169 -27
- package/dist/generated/api/observations-api.d.ts +8 -8
- package/dist/generated/api/observations-api.js +8 -8
- package/dist/generated/api/organizations-api.d.ts +24 -24
- package/dist/generated/api/organizations-api.js +24 -24
- package/dist/generated/api/pipelines-api.d.ts +49 -1
- package/dist/generated/api/pipelines-api.js +72 -1
- package/dist/generated/api/prospects-api.d.ts +4 -4
- package/dist/generated/api/prospects-api.js +4 -4
- package/dist/generated/api/staffs-api.d.ts +1 -1
- package/dist/generated/api/staffs-api.js +1 -1
- package/dist/generated/api/task-types-api.d.ts +5 -5
- package/dist/generated/api/task-types-api.js +5 -5
- package/dist/generated/api/tasks-api.d.ts +32 -32
- package/dist/generated/api/tasks-api.js +32 -32
- package/dist/generated/api/teams-api.d.ts +130 -0
- package/dist/generated/api/teams-api.js +199 -0
- package/dist/generated/api/tickets-api.d.ts +610 -0
- package/dist/generated/api/tickets-api.js +860 -0
- package/dist/generated/api/treatments-api.d.ts +379 -0
- package/dist/generated/api/treatments-api.js +539 -0
- package/dist/generated/api/webhooks-api.d.ts +63 -0
- package/dist/generated/api/webhooks-api.js +116 -0
- package/dist/generated/api.d.ts +6 -1
- package/dist/generated/api.js +6 -1
- package/dist/generated/base.d.ts +1 -1
- package/dist/generated/base.js +1 -1
- package/dist/generated/common.d.ts +1 -1
- package/dist/generated/common.js +1 -1
- package/dist/generated/configuration.d.ts +1 -1
- package/dist/generated/configuration.js +1 -1
- package/dist/generated/index.d.ts +1 -1
- package/dist/generated/index.js +1 -1
- package/dist/generated/models/close-deal-request.d.ts +2 -2
- package/dist/generated/models/close-deal-request.js +1 -1
- package/dist/generated/models/contact-input-phones-inner.d.ts +1 -1
- package/dist/generated/models/contact-input-phones-inner.js +1 -1
- package/dist/generated/models/contact-input.d.ts +1 -1
- package/dist/generated/models/contact-input.js +1 -1
- package/dist/generated/models/contact-summary.d.ts +1 -1
- package/dist/generated/models/contact-summary.js +1 -1
- package/dist/generated/models/contact.d.ts +1 -1
- package/dist/generated/models/contact.js +1 -1
- package/dist/generated/models/create-observation-request.d.ts +1 -1
- package/dist/generated/models/create-observation-request.js +1 -1
- package/dist/generated/models/create-task-type-request.d.ts +1 -1
- package/dist/generated/models/create-task-type-request.js +1 -1
- package/dist/generated/models/create-ticket-message-request.d.ts +29 -0
- package/dist/generated/models/create-ticket-message-request.js +19 -0
- package/dist/generated/models/custom-field-settings.d.ts +1 -1
- package/dist/generated/models/custom-field-settings.js +1 -1
- package/dist/generated/models/custom-field-value.d.ts +1 -1
- package/dist/generated/models/custom-field-value.js +1 -1
- package/dist/generated/models/custom-field.d.ts +1 -1
- package/dist/generated/models/custom-field.js +1 -1
- package/dist/generated/models/deal-create.d.ts +1 -1
- package/dist/generated/models/deal-create.js +1 -1
- package/dist/generated/models/deal-input.d.ts +1 -1
- package/dist/generated/models/deal-input.js +1 -1
- package/dist/generated/models/deal-labels-inner.d.ts +1 -1
- package/dist/generated/models/deal-labels-inner.js +1 -1
- package/dist/generated/models/deal-organization.d.ts +1 -1
- package/dist/generated/models/deal-organization.js +1 -1
- package/dist/generated/models/deal-pipeline-one-of.d.ts +1 -1
- package/dist/generated/models/deal-pipeline-one-of.js +1 -1
- package/dist/generated/models/deal-pipeline.d.ts +1 -1
- package/dist/generated/models/deal-pipeline.js +1 -1
- package/dist/generated/models/deal-stage.d.ts +1 -1
- package/dist/generated/models/deal-stage.js +1 -1
- package/dist/generated/models/deal.d.ts +1 -1
- package/dist/generated/models/deal.js +1 -1
- package/dist/generated/models/delete-meetings-request.d.ts +1 -1
- package/dist/generated/models/delete-meetings-request.js +1 -1
- package/dist/generated/models/delete-meetings200-response.d.ts +1 -1
- package/dist/generated/models/delete-meetings200-response.js +1 -1
- package/dist/generated/models/delete-observations-request.d.ts +1 -1
- package/dist/generated/models/delete-observations-request.js +1 -1
- package/dist/generated/models/error-errors-inner.d.ts +1 -1
- package/dist/generated/models/error-errors-inner.js +1 -1
- package/dist/generated/models/finish-meeting-request.d.ts +1 -1
- package/dist/generated/models/finish-meeting-request.js +1 -1
- package/dist/generated/models/finish-tasks-request.d.ts +1 -1
- package/dist/generated/models/finish-tasks-request.js +1 -1
- package/dist/generated/models/get-deal-stage-history200-response-history-inner-stage.d.ts +1 -1
- package/dist/generated/models/get-deal-stage-history200-response-history-inner-stage.js +1 -1
- package/dist/generated/models/get-deal-stage-history200-response-history-inner.d.ts +1 -1
- package/dist/generated/models/get-deal-stage-history200-response-history-inner.js +1 -1
- package/dist/generated/models/get-deal-stage-history200-response-totals.d.ts +1 -1
- package/dist/generated/models/get-deal-stage-history200-response-totals.js +1 -1
- package/dist/generated/models/get-deal-stage-history200-response.d.ts +1 -1
- package/dist/generated/models/get-deal-stage-history200-response.js +1 -1
- package/dist/generated/models/get-journey-health-score200-response.d.ts +34 -0
- package/dist/generated/models/get-journey-health-score200-response.js +20 -0
- package/dist/generated/models/index.d.ts +27 -0
- package/dist/generated/models/index.js +27 -0
- package/dist/generated/models/journey.d.ts +111 -0
- package/dist/generated/models/journey.js +32 -0
- package/dist/generated/models/list-contacts200-response.d.ts +1 -1
- package/dist/generated/models/list-contacts200-response.js +1 -1
- package/dist/generated/models/list-custom-fields200-response.d.ts +1 -1
- package/dist/generated/models/list-custom-fields200-response.js +1 -1
- package/dist/generated/models/list-deals200-response.d.ts +1 -1
- package/dist/generated/models/list-deals200-response.js +1 -1
- package/dist/generated/models/list-deals401-response.d.ts +1 -1
- package/dist/generated/models/list-deals401-response.js +1 -1
- package/dist/generated/models/list-deals403-response.d.ts +1 -1
- package/dist/generated/models/list-deals403-response.js +1 -1
- package/dist/generated/models/list-journeys200-response.d.ts +16 -0
- package/dist/generated/models/list-journeys200-response.js +15 -0
- package/dist/generated/models/list-lost-reasons200-response.d.ts +16 -0
- package/dist/generated/models/list-lost-reasons200-response.js +15 -0
- package/dist/generated/models/list-meeting-rooms200-response.d.ts +16 -0
- package/dist/generated/models/list-meeting-rooms200-response.js +15 -0
- package/dist/generated/models/list-meeting-types200-response.d.ts +16 -0
- package/dist/generated/models/list-meeting-types200-response.js +15 -0
- package/dist/generated/models/list-meetings200-response.d.ts +1 -1
- package/dist/generated/models/list-meetings200-response.js +1 -1
- package/dist/generated/models/list-observations200-response.d.ts +1 -1
- package/dist/generated/models/list-observations200-response.js +1 -1
- package/dist/generated/models/list-organizations200-response.d.ts +1 -1
- package/dist/generated/models/list-organizations200-response.js +1 -1
- package/dist/generated/models/list-pipelines200-response.d.ts +1 -1
- package/dist/generated/models/list-pipelines200-response.js +1 -1
- package/dist/generated/models/list-staffs200-response.d.ts +1 -1
- package/dist/generated/models/list-staffs200-response.js +1 -1
- package/dist/generated/models/list-task-types200-response-one-of.d.ts +1 -1
- package/dist/generated/models/list-task-types200-response-one-of.js +1 -1
- package/dist/generated/models/list-task-types200-response.d.ts +1 -1
- package/dist/generated/models/list-task-types200-response.js +1 -1
- package/dist/generated/models/list-tasks200-response.d.ts +1 -1
- package/dist/generated/models/list-tasks200-response.js +1 -1
- package/dist/generated/models/list-teams200-response.d.ts +16 -0
- package/dist/generated/models/list-teams200-response.js +15 -0
- package/dist/generated/models/list-ticket-statuses200-response.d.ts +16 -0
- package/dist/generated/models/list-ticket-statuses200-response.js +15 -0
- package/dist/generated/models/list-tickets200-response.d.ts +16 -0
- package/dist/generated/models/list-tickets200-response.js +15 -0
- package/dist/generated/models/list-treatment-types200-response.d.ts +16 -0
- package/dist/generated/models/list-treatment-types200-response.js +15 -0
- package/dist/generated/models/list-treatments200-response.d.ts +16 -0
- package/dist/generated/models/list-treatments200-response.js +15 -0
- package/dist/generated/models/list-workspaces200-response.d.ts +16 -0
- package/dist/generated/models/list-workspaces200-response.js +15 -0
- package/dist/generated/models/lost-reason.d.ts +32 -0
- package/dist/generated/models/lost-reason.js +15 -0
- package/dist/generated/models/meeting-create.d.ts +1 -1
- package/dist/generated/models/meeting-create.js +1 -1
- package/dist/generated/models/meeting-deal.d.ts +1 -1
- package/dist/generated/models/meeting-deal.js +1 -1
- package/dist/generated/models/meeting-input.d.ts +1 -1
- package/dist/generated/models/meeting-input.js +1 -1
- package/dist/generated/models/meeting-room.d.ts +1 -1
- package/dist/generated/models/meeting-room.js +1 -1
- package/dist/generated/models/meeting-type.d.ts +1 -1
- package/dist/generated/models/meeting-type.js +1 -1
- package/dist/generated/models/meeting.d.ts +1 -1
- package/dist/generated/models/meeting.js +1 -1
- package/dist/generated/models/model-error.d.ts +1 -1
- package/dist/generated/models/model-error.js +1 -1
- package/dist/generated/models/move-deal-stage-request.d.ts +1 -1
- package/dist/generated/models/move-deal-stage-request.js +1 -1
- package/dist/generated/models/move-deal-stage200-response.d.ts +1 -1
- package/dist/generated/models/move-deal-stage200-response.js +1 -1
- package/dist/generated/models/observation-deal.d.ts +1 -1
- package/dist/generated/models/observation-deal.js +1 -1
- package/dist/generated/models/observation-input.d.ts +1 -1
- package/dist/generated/models/observation-input.js +1 -1
- package/dist/generated/models/observation-organization.d.ts +1 -1
- package/dist/generated/models/observation-organization.js +1 -1
- package/dist/generated/models/observation.d.ts +1 -1
- package/dist/generated/models/observation.js +1 -1
- package/dist/generated/models/organization-input.d.ts +1 -1
- package/dist/generated/models/organization-input.js +1 -1
- package/dist/generated/models/organization.d.ts +1 -1
- package/dist/generated/models/organization.js +1 -1
- package/dist/generated/models/page.d.ts +1 -1
- package/dist/generated/models/page.js +1 -1
- package/dist/generated/models/pipeline.d.ts +1 -1
- package/dist/generated/models/pipeline.js +1 -1
- package/dist/generated/models/reopen-deal-request.d.ts +1 -1
- package/dist/generated/models/reopen-deal-request.js +1 -1
- package/dist/generated/models/staff-summary.d.ts +1 -1
- package/dist/generated/models/staff-summary.js +1 -1
- package/dist/generated/models/staff.d.ts +1 -1
- package/dist/generated/models/staff.js +1 -1
- package/dist/generated/models/stage.d.ts +1 -1
- package/dist/generated/models/stage.js +1 -1
- package/dist/generated/models/task-create.d.ts +1 -1
- package/dist/generated/models/task-create.js +1 -1
- package/dist/generated/models/task-deal.d.ts +1 -1
- package/dist/generated/models/task-deal.js +1 -1
- package/dist/generated/models/task-input.d.ts +1 -1
- package/dist/generated/models/task-input.js +1 -1
- package/dist/generated/models/task-type.d.ts +1 -1
- package/dist/generated/models/task-type.js +1 -1
- package/dist/generated/models/task.d.ts +1 -1
- package/dist/generated/models/task.js +1 -1
- package/dist/generated/models/team.d.ts +27 -0
- package/dist/generated/models/team.js +15 -0
- package/dist/generated/models/ticket-create.d.ts +16 -0
- package/dist/generated/models/ticket-create.js +15 -0
- package/dist/generated/models/ticket-input.d.ts +77 -0
- package/dist/generated/models/ticket-input.js +22 -0
- package/dist/generated/models/ticket-message.d.ts +33 -0
- package/dist/generated/models/ticket-message.js +15 -0
- package/dist/generated/models/ticket-status-workspace.d.ts +18 -0
- package/dist/generated/models/ticket-status-workspace.js +15 -0
- package/dist/generated/models/ticket-status.d.ts +37 -0
- package/dist/generated/models/ticket-status.js +15 -0
- package/dist/generated/models/ticket.d.ts +87 -0
- package/dist/generated/models/ticket.js +22 -0
- package/dist/generated/models/treatment-input.d.ts +58 -0
- package/dist/generated/models/treatment-input.js +15 -0
- package/dist/generated/models/treatment-type.d.ts +43 -0
- package/dist/generated/models/treatment-type.js +15 -0
- package/dist/generated/models/treatment.d.ts +64 -0
- package/dist/generated/models/treatment.js +15 -0
- package/dist/generated/models/update-task-type-request.d.ts +1 -1
- package/dist/generated/models/update-task-type-request.js +1 -1
- package/dist/generated/models/validate-deal200-response-required-actions-pending.d.ts +1 -1
- package/dist/generated/models/validate-deal200-response-required-actions-pending.js +1 -1
- package/dist/generated/models/validate-deal200-response-required-field-pending.d.ts +1 -1
- package/dist/generated/models/validate-deal200-response-required-field-pending.js +1 -1
- package/dist/generated/models/validate-deal200-response.d.ts +1 -1
- package/dist/generated/models/validate-deal200-response.js +1 -1
- package/dist/generated/models/webhook-trigger-group-triggers-inner.d.ts +29 -0
- package/dist/generated/models/webhook-trigger-group-triggers-inner.js +15 -0
- package/dist/generated/models/webhook-trigger-group.d.ts +22 -0
- package/dist/generated/models/webhook-trigger-group.js +15 -0
- package/dist/generated/models/workspace.d.ts +23 -0
- package/dist/generated/models/workspace.js +15 -0
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
/**
|
|
5
5
|
* API da Magnet Customer
|
|
6
|
-
* A API REST da Magnet Customer permite ler e gravar os registros do CRM a partir dos seus sistemas. # Comece aqui ## 1. Crie um Service Account No CRM, abra **Configurações › Service Accounts** (apenas administradores), clique em **Novo service account**, escolha a validade e as permissões, e copie o **Client ID** e o **Client Secret**. O secret aparece uma única vez. ## 2. Solicite um token ```bash curl -X POST https://magnetcustomer.net/realms/platform/protocol/openid-connect/token \\ -H \"Content-Type: application/x-www-form-urlencoded\" \\ -d \"grant_type=client_credentials\" \\ -d \"client_id=SEU_CLIENT_ID\" \\ -d \"client_secret=SEU_CLIENT_SECRET\" ``` ```json { \"access_token\": \"eyJhbGciOiJSUzI1NiIs...\", \"expires_in\": 900, \"token_type\": \"Bearer\" } ``` O token vale 15 minutos e este fluxo não tem refresh token: quando vencer, ou ao receber `401`, repita o pedido. ## 3. Chame a API Cada conta tem o seu endereço. Troque `sua-conta` pelo subdomínio que você usa para abrir o CRM: ```bash curl \"https://sua-conta.platform-api.magnetcustomer.com/api/deals?page=1&limit=15\" \\ -H \"Authorization: Bearer SEU_TOKEN\" ``` Requisições com corpo levam também `Content-Type: application/json`. # Convenções ## Paginação Envie sempre `page`. Com ele, toda listagem devolve o mesmo envelope: ```json { \"docs\": [], \"total\": 132, \"pages\": 9, \"page\": 1, \"limit\": 15 } ``` | Parâmetro | Padrão | Descrição | |---|---|---| | `page` | — | Página, a partir de 1. **Obrigatório na prática** | | `limit` | 15 | Registros por página. Máximo 100: acima disso a API usa 100 | | `sortBy` | varia por recurso | Campo de ordenação | | `sortType` | `desc` | `asc` ou `desc` | | `search` | — | Busca textual, quando o recurso aceita | Sem `page`,
|
|
6
|
+
* A API REST da Magnet Customer permite ler e gravar os registros do CRM a partir dos seus sistemas. # Comece aqui ## 1. Crie um Service Account No CRM, abra **Configurações › Service Accounts** (apenas administradores), clique em **Novo service account**, escolha a validade e as permissões, e copie o **Client ID** e o **Client Secret**. O secret aparece uma única vez. ## 2. Solicite um token ```bash curl -X POST https://magnetcustomer.net/realms/platform/protocol/openid-connect/token \\ -H \"Content-Type: application/x-www-form-urlencoded\" \\ -d \"grant_type=client_credentials\" \\ -d \"client_id=SEU_CLIENT_ID\" \\ -d \"client_secret=SEU_CLIENT_SECRET\" ``` ```json { \"access_token\": \"eyJhbGciOiJSUzI1NiIs...\", \"expires_in\": 900, \"token_type\": \"Bearer\" } ``` O token vale 15 minutos e este fluxo não tem refresh token: quando vencer, ou ao receber `401`, repita o pedido. ## 3. Chame a API Cada conta tem o seu endereço. Troque `sua-conta` pelo subdomínio que você usa para abrir o CRM: ```bash curl \"https://sua-conta.platform-api.magnetcustomer.com/api/deals?page=1&limit=15\" \\ -H \"Authorization: Bearer SEU_TOKEN\" ``` Requisições com corpo levam também `Content-Type: application/json`. # Convenções ## Paginação Envie sempre `page`. Com ele, toda listagem devolve o mesmo envelope: ```json { \"docs\": [], \"total\": 132, \"pages\": 9, \"page\": 1, \"limit\": 15 } ``` | Parâmetro | Padrão | Descrição | |---|---|---| | `page` | — | Página, a partir de 1. **Obrigatório na prática** | | `limit` | 15 | Registros por página. Máximo 100: acima disso a API usa 100 | | `sortBy` | varia por recurso | Campo de ordenação | | `sortType` | `desc` | `asc` ou `desc` | | `search` | — | Busca textual, quando o recurso aceita | Sem `page`, algumas listagens (Contatos, Pipelines, Campos personalizados e os cadastros de apoio, como tipos e situações) devolvem uma lista simples (`[...]`), sem o envelope, e ignoram `limit`. Para percorrer tudo, peça `page=1` e avance até `page` ser igual a `pages`. Uma página além do fim devolve `docs` vazio. O tamanho de página padrão é 15, com duas exceções: 25 em Leads, Prospects e Clientes, e 100 em Usuários. Um `limit` inválido cai no padrão. ## Identificadores e datas Todo ID é um texto de 24 caracteres hexadecimais, como `507f1f77bcf86cd799439011`. Ao gravar, envie a referência como **ID em texto** — nunca o objeto. Um ID fora desse formato hoje é respondido com `500`, não `400`: valide o formato antes de enviar. No corpo e nas respostas, datas são ISO 8601 em UTC, como `2026-05-15T10:00:00Z`. Nos filtros de data da URL (`minDate`, `createdAt_minDate`, `dateOfExpires_minDate`...), envie um **timestamp em milissegundos**, como `1798761600000`. ## Listas na URL Filtros que aceitam vários valores levam colchetes no nome, mesmo quando o valor é um só: ``` /api/contacts?page=1&staffs[]=507f191e810c19729de860eb&staffs[]=507f191e810c19729de860ec ``` Sem colchetes, um valor único é recusado com erro em parte das listagens. ## Campos ausentes Campo sem valor costuma vir **ausente** da resposta, não como `null`. Trate a falta da chave como vazio. ## Campos personalizados Os campos criados pelo administrador da conta vão na lista `customFields`: ```json { \"customFields\": [ { \"customField\": \"507f1f77bcf86cd799439014\", \"k\": \"segmento\", \"v\": \"Tecnologia\" } ] } ``` O valor vai em **`v`**. Um item com `value` é aceito sem erro, mas o campo fica vazio. Descubra os campos e os IDs com `GET /api/customfields?page=1&feature=deal` (troque `deal` por `meeting`, `task`, `contact`...). Com `&required=true` vêm só os obrigatórios da conta. ## Erros ```json { \"reason\": \"Missing required parameters\", \"message\": \"Missing required parameters\", \"code\": \"VALIDATION_ERROR\", \"errors\": [ { \"field\": \"title\", \"message\": \"must NOT have fewer than 1 characters\", \"keyword\": \"minLength\" } ] } ``` | Status | Quando | |---|---| | `400` | Corpo inválido: campo obrigatório ausente, tipo errado, valor fora da lista | | `401` | Token ausente, inválido ou vencido. Corpo: `{\"reason\": \"Access Denied\"}` | | `403` | O Service Account não tem a permissão da rota (`type: SA_PERMISSION_DENIED`, com `requiredPermission`) | | `404` | Registro não encontrado | | `409` | O registro não está no estado que a operação exige | | `429` | Limite de requisições excedido. Espere o tempo de `Retry-After` | ## Permissões Um Service Account só chama as rotas que as permissões dele liberam. Cada operação desta referência informa a permissão exigida, quando há uma: marque-a ao criar o Service Account. Uma chamada sem a permissão devolve `403` com o nome dela em `requiredPermission`. Rotas de administração da conta (usuários, perfis, criação de webhooks, configurações) exigem um usuário administrador e não estão disponíveis para Service Accounts; por isso não aparecem aqui. ## Limite de requisições Os limites são aplicados por conta. Ao receber `429`, espere os segundos indicados em `Retry-After` e tente de novo com intervalo crescente. ## Área de trabalho Em contas com áreas de trabalho, a API define a área do registro pela credencial ou pelo registro pai. Não envie `workspace`. # Webhooks Para ser avisado quando algo muda no CRM, em vez de consultar a API de tempos em tempos, use webhooks. Um administrador cria o webhook no CRM, em **Integrações › Webhooks**, informando a URL do seu sistema e os eventos. A lista de eventos está em `GET /api/webhooks/triggers`; o formato da entrega, a assinatura e os reenvios estão na seção Webhooks do portal. # Cobertura Esta referência cobre Contatos (leads, prospects e clientes), Empresas, Oportunidades, Pipelines, etapas e motivos de perda, Jornadas, Reuniões, Tarefas, Observações, Tickets, Atendimentos, Usuários, Equipes, Áreas de trabalho, Campos personalizados e os eventos de webhook.
|
|
7
7
|
*
|
|
8
8
|
* The version of the OpenAPI document: 2026-11
|
|
9
9
|
* Contact: suporte@magnetcustomer.com
|
|
@@ -29,7 +29,7 @@ const base_1 = require("../base");
|
|
|
29
29
|
const MeetingsApiAxiosParamCreator = function (configuration) {
|
|
30
30
|
return {
|
|
31
31
|
/**
|
|
32
|
-
* Obrigatórios por padrão: `title` e `start`. `staff` e `calendar` são preenchidos pela API quando omitidos. Os campos obrigatórios podem variar por conta: o administrador define quais campos de sistema são obrigatórios. `GET /api/customfields?feature=meeting&required=true` devolve os campos obrigatórios da conta. Quando falta um deles, a API responde `400` com `code: MISSING_REQUIRED` e a lista em `fields`. Referências (`staff`, `contact`, `deal`...) aceitam só o ID em texto. Enviar o objeto (`{\"_id\": \"...\"}`) devolve `400 VALIDATION_ERROR`.
|
|
32
|
+
* Obrigatórios por padrão: `title` e `start`. `staff` e `calendar` são preenchidos pela API quando omitidos. Os campos obrigatórios podem variar por conta: o administrador define quais campos de sistema são obrigatórios. `GET /api/customfields?feature=meeting&required=true` devolve os campos obrigatórios da conta. Quando falta um deles, a API responde `400` com `code: MISSING_REQUIRED` e a lista em `fields`. Referências (`staff`, `contact`, `deal`...) aceitam só o ID em texto. Enviar o objeto (`{\"_id\": \"...\"}`) devolve `400 VALIDATION_ERROR`. **Permissão do Service Account:** `meetings.create`
|
|
33
33
|
* @summary Criar reunião
|
|
34
34
|
* @param {MeetingCreate} meetingCreate
|
|
35
35
|
* @param {*} [options] Override http request option.
|
|
@@ -63,7 +63,7 @@ const MeetingsApiAxiosParamCreator = function (configuration) {
|
|
|
63
63
|
};
|
|
64
64
|
},
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
66
|
+
* **Permissão do Service Account:** `meetings.delete`
|
|
67
67
|
* @summary Excluir reunião
|
|
68
68
|
* @param {string} id ID do registro.
|
|
69
69
|
* @param {*} [options] Override http request option.
|
|
@@ -166,7 +166,7 @@ const MeetingsApiAxiosParamCreator = function (configuration) {
|
|
|
166
166
|
};
|
|
167
167
|
},
|
|
168
168
|
/**
|
|
169
|
-
*
|
|
169
|
+
* **Permissão do Service Account:** `meetings.read`
|
|
170
170
|
* @summary Obter reunião
|
|
171
171
|
* @param {string} id ID do registro.
|
|
172
172
|
* @param {*} [options] Override http request option.
|
|
@@ -199,14 +199,88 @@ const MeetingsApiAxiosParamCreator = function (configuration) {
|
|
|
199
199
|
};
|
|
200
200
|
},
|
|
201
201
|
/**
|
|
202
|
-
*
|
|
202
|
+
* Use para descobrir o `room` de uma reunião.
|
|
203
|
+
* @summary Listar salas de reunião
|
|
204
|
+
* @param {number} [page] Página, a partir de 1. **Envie sempre**: sem `page`, a resposta vem como lista simples, sem o envelope de paginação, e `limit` é ignorado.
|
|
205
|
+
* @param {number} [limit] Registros por página. Padrão: 15, salvo indicação na operação. Máximo: 100 — acima disso a API usa 100.
|
|
206
|
+
* @param {*} [options] Override http request option.
|
|
207
|
+
* @throws {RequiredError}
|
|
208
|
+
*/
|
|
209
|
+
listMeetingRooms: async (page, limit, options = {}) => {
|
|
210
|
+
const localVarPath = `/api/meetingrooms`;
|
|
211
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
212
|
+
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
213
|
+
let baseOptions;
|
|
214
|
+
if (configuration) {
|
|
215
|
+
baseOptions = configuration.baseOptions;
|
|
216
|
+
}
|
|
217
|
+
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
|
|
218
|
+
const localVarHeaderParameter = {};
|
|
219
|
+
const localVarQueryParameter = {};
|
|
220
|
+
// authentication ServiceAccount required
|
|
221
|
+
// oauth required
|
|
222
|
+
await (0, common_1.setOAuthToObject)(localVarHeaderParameter, "ServiceAccount", [], configuration);
|
|
223
|
+
if (page !== undefined) {
|
|
224
|
+
localVarQueryParameter['page'] = page;
|
|
225
|
+
}
|
|
226
|
+
if (limit !== undefined) {
|
|
227
|
+
localVarQueryParameter['limit'] = limit;
|
|
228
|
+
}
|
|
229
|
+
localVarHeaderParameter['Accept'] = 'application/json';
|
|
230
|
+
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
231
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
232
|
+
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
|
|
233
|
+
return {
|
|
234
|
+
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
235
|
+
options: localVarRequestOptions,
|
|
236
|
+
};
|
|
237
|
+
},
|
|
238
|
+
/**
|
|
239
|
+
* Use para descobrir o `type` de uma reunião.
|
|
240
|
+
* @summary Listar tipos de reunião
|
|
241
|
+
* @param {number} [page] Página, a partir de 1. **Envie sempre**: sem `page`, a resposta vem como lista simples, sem o envelope de paginação, e `limit` é ignorado.
|
|
242
|
+
* @param {number} [limit] Registros por página. Padrão: 15, salvo indicação na operação. Máximo: 100 — acima disso a API usa 100.
|
|
243
|
+
* @param {*} [options] Override http request option.
|
|
244
|
+
* @throws {RequiredError}
|
|
245
|
+
*/
|
|
246
|
+
listMeetingTypes: async (page, limit, options = {}) => {
|
|
247
|
+
const localVarPath = `/api/meetingtypes`;
|
|
248
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
249
|
+
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
250
|
+
let baseOptions;
|
|
251
|
+
if (configuration) {
|
|
252
|
+
baseOptions = configuration.baseOptions;
|
|
253
|
+
}
|
|
254
|
+
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
|
|
255
|
+
const localVarHeaderParameter = {};
|
|
256
|
+
const localVarQueryParameter = {};
|
|
257
|
+
// authentication ServiceAccount required
|
|
258
|
+
// oauth required
|
|
259
|
+
await (0, common_1.setOAuthToObject)(localVarHeaderParameter, "ServiceAccount", [], configuration);
|
|
260
|
+
if (page !== undefined) {
|
|
261
|
+
localVarQueryParameter['page'] = page;
|
|
262
|
+
}
|
|
263
|
+
if (limit !== undefined) {
|
|
264
|
+
localVarQueryParameter['limit'] = limit;
|
|
265
|
+
}
|
|
266
|
+
localVarHeaderParameter['Accept'] = 'application/json';
|
|
267
|
+
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
268
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
269
|
+
localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
|
|
270
|
+
return {
|
|
271
|
+
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
272
|
+
options: localVarRequestOptions,
|
|
273
|
+
};
|
|
274
|
+
},
|
|
275
|
+
/**
|
|
276
|
+
* Ordenação padrão: `start` decrescente. **Permissão do Service Account:** `meetings.list`
|
|
203
277
|
* @summary Listar reuniões
|
|
204
278
|
* @param {number} [page] Página, a partir de 1. **Envie sempre**: sem `page`, a resposta vem como lista simples, sem o envelope de paginação, e `limit` é ignorado.
|
|
205
279
|
* @param {number} [limit] Registros por página. Padrão: 15, salvo indicação na operação. Máximo: 100 — acima disso a API usa 100.
|
|
206
280
|
* @param {string} [sortBy] Campo de ordenação. O padrão varia por recurso.
|
|
207
281
|
* @param {ListMeetingsSortTypeEnum} [sortType] Direção da ordenação.
|
|
208
282
|
* @param {string} [staff] ID do organizador.
|
|
209
|
-
* @param {Array<string>} [staffs] Usuários: busca em organizador, participantes e observadores.
|
|
283
|
+
* @param {Array<string>} [staffs] Usuários: busca em organizador, participantes e observadores. Lista de IDs: envie com colchetes, mesmo para um só valor (`?staffs[]=id1&staffs[]=id2`).
|
|
210
284
|
* @param {string} [type] ID do tipo de reunião.
|
|
211
285
|
* @param {string} [room] ID da sala.
|
|
212
286
|
* @param {string} [contact] ID do contato.
|
|
@@ -214,7 +288,7 @@ const MeetingsApiAxiosParamCreator = function (configuration) {
|
|
|
214
288
|
* @param {string} [organization] ID da empresa.
|
|
215
289
|
* @param {ListMeetingsPriorityEnum} [priority] Prioridade.
|
|
216
290
|
* @param {ListMeetingsStatusEnum} [status] Situação.
|
|
217
|
-
* @param {Array<string>} [labels] Etiquetas.
|
|
291
|
+
* @param {Array<string>} [labels] Etiquetas. Lista de IDs: envie com colchetes, mesmo para um só valor (`?labels[]=id1&labels[]=id2`).
|
|
218
292
|
* @param {string} [startMinDate] Início a partir de (timestamp em ms ou data ISO).
|
|
219
293
|
* @param {string} [startMaxDate] Início até (timestamp em ms ou data ISO).
|
|
220
294
|
* @param {number} [createdAtMinDate] Criada a partir de (timestamp em milissegundos).
|
|
@@ -254,7 +328,7 @@ const MeetingsApiAxiosParamCreator = function (configuration) {
|
|
|
254
328
|
localVarQueryParameter['staff'] = staff;
|
|
255
329
|
}
|
|
256
330
|
if (staffs) {
|
|
257
|
-
localVarQueryParameter['staffs'] = staffs;
|
|
331
|
+
localVarQueryParameter['staffs[]'] = staffs;
|
|
258
332
|
}
|
|
259
333
|
if (type !== undefined) {
|
|
260
334
|
localVarQueryParameter['type'] = type;
|
|
@@ -278,7 +352,7 @@ const MeetingsApiAxiosParamCreator = function (configuration) {
|
|
|
278
352
|
localVarQueryParameter['status'] = status;
|
|
279
353
|
}
|
|
280
354
|
if (labels) {
|
|
281
|
-
localVarQueryParameter['labels'] = labels;
|
|
355
|
+
localVarQueryParameter['labels[]'] = labels;
|
|
282
356
|
}
|
|
283
357
|
if (startMinDate !== undefined) {
|
|
284
358
|
localVarQueryParameter['start_minDate'] = startMinDate;
|
|
@@ -308,7 +382,7 @@ const MeetingsApiAxiosParamCreator = function (configuration) {
|
|
|
308
382
|
};
|
|
309
383
|
},
|
|
310
384
|
/**
|
|
311
|
-
* Substitui o registro: reenvie o objeto completo. Para alterar só alguns campos, use `PATCH`.
|
|
385
|
+
* Substitui o registro: reenvie o objeto completo. Para alterar só alguns campos, use `PATCH`. **Permissão do Service Account:** `meetings.update`
|
|
312
386
|
* @summary Substituir reunião
|
|
313
387
|
* @param {string} id ID do registro.
|
|
314
388
|
* @param {MeetingCreate} meetingCreate
|
|
@@ -393,7 +467,7 @@ const MeetingsApiFp = function (configuration) {
|
|
|
393
467
|
const localVarAxiosParamCreator = (0, exports.MeetingsApiAxiosParamCreator)(configuration);
|
|
394
468
|
return {
|
|
395
469
|
/**
|
|
396
|
-
* Obrigatórios por padrão: `title` e `start`. `staff` e `calendar` são preenchidos pela API quando omitidos. Os campos obrigatórios podem variar por conta: o administrador define quais campos de sistema são obrigatórios. `GET /api/customfields?feature=meeting&required=true` devolve os campos obrigatórios da conta. Quando falta um deles, a API responde `400` com `code: MISSING_REQUIRED` e a lista em `fields`. Referências (`staff`, `contact`, `deal`...) aceitam só o ID em texto. Enviar o objeto (`{\"_id\": \"...\"}`) devolve `400 VALIDATION_ERROR`.
|
|
470
|
+
* Obrigatórios por padrão: `title` e `start`. `staff` e `calendar` são preenchidos pela API quando omitidos. Os campos obrigatórios podem variar por conta: o administrador define quais campos de sistema são obrigatórios. `GET /api/customfields?feature=meeting&required=true` devolve os campos obrigatórios da conta. Quando falta um deles, a API responde `400` com `code: MISSING_REQUIRED` e a lista em `fields`. Referências (`staff`, `contact`, `deal`...) aceitam só o ID em texto. Enviar o objeto (`{\"_id\": \"...\"}`) devolve `400 VALIDATION_ERROR`. **Permissão do Service Account:** `meetings.create`
|
|
397
471
|
* @summary Criar reunião
|
|
398
472
|
* @param {MeetingCreate} meetingCreate
|
|
399
473
|
* @param {*} [options] Override http request option.
|
|
@@ -406,7 +480,7 @@ const MeetingsApiFp = function (configuration) {
|
|
|
406
480
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
407
481
|
},
|
|
408
482
|
/**
|
|
409
|
-
*
|
|
483
|
+
* **Permissão do Service Account:** `meetings.delete`
|
|
410
484
|
* @summary Excluir reunião
|
|
411
485
|
* @param {string} id ID do registro.
|
|
412
486
|
* @param {*} [options] Override http request option.
|
|
@@ -446,7 +520,7 @@ const MeetingsApiFp = function (configuration) {
|
|
|
446
520
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
447
521
|
},
|
|
448
522
|
/**
|
|
449
|
-
*
|
|
523
|
+
* **Permissão do Service Account:** `meetings.read`
|
|
450
524
|
* @summary Obter reunião
|
|
451
525
|
* @param {string} id ID do registro.
|
|
452
526
|
* @param {*} [options] Override http request option.
|
|
@@ -459,14 +533,42 @@ const MeetingsApiFp = function (configuration) {
|
|
|
459
533
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
460
534
|
},
|
|
461
535
|
/**
|
|
462
|
-
*
|
|
536
|
+
* Use para descobrir o `room` de uma reunião.
|
|
537
|
+
* @summary Listar salas de reunião
|
|
538
|
+
* @param {number} [page] Página, a partir de 1. **Envie sempre**: sem `page`, a resposta vem como lista simples, sem o envelope de paginação, e `limit` é ignorado.
|
|
539
|
+
* @param {number} [limit] Registros por página. Padrão: 15, salvo indicação na operação. Máximo: 100 — acima disso a API usa 100.
|
|
540
|
+
* @param {*} [options] Override http request option.
|
|
541
|
+
* @throws {RequiredError}
|
|
542
|
+
*/
|
|
543
|
+
async listMeetingRooms(page, limit, options) {
|
|
544
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.listMeetingRooms(page, limit, options);
|
|
545
|
+
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
546
|
+
const localVarOperationServerBasePath = base_1.operationServerMap['MeetingsApi.listMeetingRooms']?.[localVarOperationServerIndex]?.url;
|
|
547
|
+
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
548
|
+
},
|
|
549
|
+
/**
|
|
550
|
+
* Use para descobrir o `type` de uma reunião.
|
|
551
|
+
* @summary Listar tipos de reunião
|
|
552
|
+
* @param {number} [page] Página, a partir de 1. **Envie sempre**: sem `page`, a resposta vem como lista simples, sem o envelope de paginação, e `limit` é ignorado.
|
|
553
|
+
* @param {number} [limit] Registros por página. Padrão: 15, salvo indicação na operação. Máximo: 100 — acima disso a API usa 100.
|
|
554
|
+
* @param {*} [options] Override http request option.
|
|
555
|
+
* @throws {RequiredError}
|
|
556
|
+
*/
|
|
557
|
+
async listMeetingTypes(page, limit, options) {
|
|
558
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.listMeetingTypes(page, limit, options);
|
|
559
|
+
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
560
|
+
const localVarOperationServerBasePath = base_1.operationServerMap['MeetingsApi.listMeetingTypes']?.[localVarOperationServerIndex]?.url;
|
|
561
|
+
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
562
|
+
},
|
|
563
|
+
/**
|
|
564
|
+
* Ordenação padrão: `start` decrescente. **Permissão do Service Account:** `meetings.list`
|
|
463
565
|
* @summary Listar reuniões
|
|
464
566
|
* @param {number} [page] Página, a partir de 1. **Envie sempre**: sem `page`, a resposta vem como lista simples, sem o envelope de paginação, e `limit` é ignorado.
|
|
465
567
|
* @param {number} [limit] Registros por página. Padrão: 15, salvo indicação na operação. Máximo: 100 — acima disso a API usa 100.
|
|
466
568
|
* @param {string} [sortBy] Campo de ordenação. O padrão varia por recurso.
|
|
467
569
|
* @param {ListMeetingsSortTypeEnum} [sortType] Direção da ordenação.
|
|
468
570
|
* @param {string} [staff] ID do organizador.
|
|
469
|
-
* @param {Array<string>} [staffs] Usuários: busca em organizador, participantes e observadores.
|
|
571
|
+
* @param {Array<string>} [staffs] Usuários: busca em organizador, participantes e observadores. Lista de IDs: envie com colchetes, mesmo para um só valor (`?staffs[]=id1&staffs[]=id2`).
|
|
470
572
|
* @param {string} [type] ID do tipo de reunião.
|
|
471
573
|
* @param {string} [room] ID da sala.
|
|
472
574
|
* @param {string} [contact] ID do contato.
|
|
@@ -474,7 +576,7 @@ const MeetingsApiFp = function (configuration) {
|
|
|
474
576
|
* @param {string} [organization] ID da empresa.
|
|
475
577
|
* @param {ListMeetingsPriorityEnum} [priority] Prioridade.
|
|
476
578
|
* @param {ListMeetingsStatusEnum} [status] Situação.
|
|
477
|
-
* @param {Array<string>} [labels] Etiquetas.
|
|
579
|
+
* @param {Array<string>} [labels] Etiquetas. Lista de IDs: envie com colchetes, mesmo para um só valor (`?labels[]=id1&labels[]=id2`).
|
|
478
580
|
* @param {string} [startMinDate] Início a partir de (timestamp em ms ou data ISO).
|
|
479
581
|
* @param {string} [startMaxDate] Início até (timestamp em ms ou data ISO).
|
|
480
582
|
* @param {number} [createdAtMinDate] Criada a partir de (timestamp em milissegundos).
|
|
@@ -491,7 +593,7 @@ const MeetingsApiFp = function (configuration) {
|
|
|
491
593
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
492
594
|
},
|
|
493
595
|
/**
|
|
494
|
-
* Substitui o registro: reenvie o objeto completo. Para alterar só alguns campos, use `PATCH`.
|
|
596
|
+
* Substitui o registro: reenvie o objeto completo. Para alterar só alguns campos, use `PATCH`. **Permissão do Service Account:** `meetings.update`
|
|
495
597
|
* @summary Substituir reunião
|
|
496
598
|
* @param {string} id ID do registro.
|
|
497
599
|
* @param {MeetingCreate} meetingCreate
|
|
@@ -528,7 +630,7 @@ const MeetingsApiFactory = function (configuration, basePath, axios) {
|
|
|
528
630
|
const localVarFp = (0, exports.MeetingsApiFp)(configuration);
|
|
529
631
|
return {
|
|
530
632
|
/**
|
|
531
|
-
* Obrigatórios por padrão: `title` e `start`. `staff` e `calendar` são preenchidos pela API quando omitidos. Os campos obrigatórios podem variar por conta: o administrador define quais campos de sistema são obrigatórios. `GET /api/customfields?feature=meeting&required=true` devolve os campos obrigatórios da conta. Quando falta um deles, a API responde `400` com `code: MISSING_REQUIRED` e a lista em `fields`. Referências (`staff`, `contact`, `deal`...) aceitam só o ID em texto. Enviar o objeto (`{\"_id\": \"...\"}`) devolve `400 VALIDATION_ERROR`.
|
|
633
|
+
* Obrigatórios por padrão: `title` e `start`. `staff` e `calendar` são preenchidos pela API quando omitidos. Os campos obrigatórios podem variar por conta: o administrador define quais campos de sistema são obrigatórios. `GET /api/customfields?feature=meeting&required=true` devolve os campos obrigatórios da conta. Quando falta um deles, a API responde `400` com `code: MISSING_REQUIRED` e a lista em `fields`. Referências (`staff`, `contact`, `deal`...) aceitam só o ID em texto. Enviar o objeto (`{\"_id\": \"...\"}`) devolve `400 VALIDATION_ERROR`. **Permissão do Service Account:** `meetings.create`
|
|
532
634
|
* @summary Criar reunião
|
|
533
635
|
* @param {MeetingsApiCreateMeetingRequest} requestParameters Request parameters.
|
|
534
636
|
* @param {*} [options] Override http request option.
|
|
@@ -538,7 +640,7 @@ const MeetingsApiFactory = function (configuration, basePath, axios) {
|
|
|
538
640
|
return localVarFp.createMeeting(requestParameters.meetingCreate, options).then((request) => request(axios, basePath));
|
|
539
641
|
},
|
|
540
642
|
/**
|
|
541
|
-
*
|
|
643
|
+
* **Permissão do Service Account:** `meetings.delete`
|
|
542
644
|
* @summary Excluir reunião
|
|
543
645
|
* @param {MeetingsApiDeleteMeetingRequest} requestParameters Request parameters.
|
|
544
646
|
* @param {*} [options] Override http request option.
|
|
@@ -568,7 +670,7 @@ const MeetingsApiFactory = function (configuration, basePath, axios) {
|
|
|
568
670
|
return localVarFp.finishMeeting(requestParameters.id, requestParameters.finishMeetingRequest, options).then((request) => request(axios, basePath));
|
|
569
671
|
},
|
|
570
672
|
/**
|
|
571
|
-
*
|
|
673
|
+
* **Permissão do Service Account:** `meetings.read`
|
|
572
674
|
* @summary Obter reunião
|
|
573
675
|
* @param {MeetingsApiGetMeetingRequest} requestParameters Request parameters.
|
|
574
676
|
* @param {*} [options] Override http request option.
|
|
@@ -578,7 +680,27 @@ const MeetingsApiFactory = function (configuration, basePath, axios) {
|
|
|
578
680
|
return localVarFp.getMeeting(requestParameters.id, options).then((request) => request(axios, basePath));
|
|
579
681
|
},
|
|
580
682
|
/**
|
|
581
|
-
*
|
|
683
|
+
* Use para descobrir o `room` de uma reunião.
|
|
684
|
+
* @summary Listar salas de reunião
|
|
685
|
+
* @param {MeetingsApiListMeetingRoomsRequest} requestParameters Request parameters.
|
|
686
|
+
* @param {*} [options] Override http request option.
|
|
687
|
+
* @throws {RequiredError}
|
|
688
|
+
*/
|
|
689
|
+
listMeetingRooms(requestParameters = {}, options) {
|
|
690
|
+
return localVarFp.listMeetingRooms(requestParameters.page, requestParameters.limit, options).then((request) => request(axios, basePath));
|
|
691
|
+
},
|
|
692
|
+
/**
|
|
693
|
+
* Use para descobrir o `type` de uma reunião.
|
|
694
|
+
* @summary Listar tipos de reunião
|
|
695
|
+
* @param {MeetingsApiListMeetingTypesRequest} requestParameters Request parameters.
|
|
696
|
+
* @param {*} [options] Override http request option.
|
|
697
|
+
* @throws {RequiredError}
|
|
698
|
+
*/
|
|
699
|
+
listMeetingTypes(requestParameters = {}, options) {
|
|
700
|
+
return localVarFp.listMeetingTypes(requestParameters.page, requestParameters.limit, options).then((request) => request(axios, basePath));
|
|
701
|
+
},
|
|
702
|
+
/**
|
|
703
|
+
* Ordenação padrão: `start` decrescente. **Permissão do Service Account:** `meetings.list`
|
|
582
704
|
* @summary Listar reuniões
|
|
583
705
|
* @param {MeetingsApiListMeetingsRequest} requestParameters Request parameters.
|
|
584
706
|
* @param {*} [options] Override http request option.
|
|
@@ -588,7 +710,7 @@ const MeetingsApiFactory = function (configuration, basePath, axios) {
|
|
|
588
710
|
return localVarFp.listMeetings(requestParameters.page, requestParameters.limit, requestParameters.sortBy, requestParameters.sortType, requestParameters.staff, requestParameters.staffs, requestParameters.type, requestParameters.room, requestParameters.contact, requestParameters.deal, requestParameters.organization, requestParameters.priority, requestParameters.status, requestParameters.labels, requestParameters.startMinDate, requestParameters.startMaxDate, requestParameters.createdAtMinDate, requestParameters.createdAtMaxDate, requestParameters.visualization, requestParameters.search, options).then((request) => request(axios, basePath));
|
|
589
711
|
},
|
|
590
712
|
/**
|
|
591
|
-
* Substitui o registro: reenvie o objeto completo. Para alterar só alguns campos, use `PATCH`.
|
|
713
|
+
* Substitui o registro: reenvie o objeto completo. Para alterar só alguns campos, use `PATCH`. **Permissão do Service Account:** `meetings.update`
|
|
592
714
|
* @summary Substituir reunião
|
|
593
715
|
* @param {MeetingsApiReplaceMeetingRequest} requestParameters Request parameters.
|
|
594
716
|
* @param {*} [options] Override http request option.
|
|
@@ -615,7 +737,7 @@ exports.MeetingsApiFactory = MeetingsApiFactory;
|
|
|
615
737
|
*/
|
|
616
738
|
class MeetingsApi extends base_1.BaseAPI {
|
|
617
739
|
/**
|
|
618
|
-
* Obrigatórios por padrão: `title` e `start`. `staff` e `calendar` são preenchidos pela API quando omitidos. Os campos obrigatórios podem variar por conta: o administrador define quais campos de sistema são obrigatórios. `GET /api/customfields?feature=meeting&required=true` devolve os campos obrigatórios da conta. Quando falta um deles, a API responde `400` com `code: MISSING_REQUIRED` e a lista em `fields`. Referências (`staff`, `contact`, `deal`...) aceitam só o ID em texto. Enviar o objeto (`{\"_id\": \"...\"}`) devolve `400 VALIDATION_ERROR`.
|
|
740
|
+
* Obrigatórios por padrão: `title` e `start`. `staff` e `calendar` são preenchidos pela API quando omitidos. Os campos obrigatórios podem variar por conta: o administrador define quais campos de sistema são obrigatórios. `GET /api/customfields?feature=meeting&required=true` devolve os campos obrigatórios da conta. Quando falta um deles, a API responde `400` com `code: MISSING_REQUIRED` e a lista em `fields`. Referências (`staff`, `contact`, `deal`...) aceitam só o ID em texto. Enviar o objeto (`{\"_id\": \"...\"}`) devolve `400 VALIDATION_ERROR`. **Permissão do Service Account:** `meetings.create`
|
|
619
741
|
* @summary Criar reunião
|
|
620
742
|
* @param {MeetingsApiCreateMeetingRequest} requestParameters Request parameters.
|
|
621
743
|
* @param {*} [options] Override http request option.
|
|
@@ -625,7 +747,7 @@ class MeetingsApi extends base_1.BaseAPI {
|
|
|
625
747
|
return (0, exports.MeetingsApiFp)(this.configuration).createMeeting(requestParameters.meetingCreate, options).then((request) => request(this.axios, this.basePath));
|
|
626
748
|
}
|
|
627
749
|
/**
|
|
628
|
-
*
|
|
750
|
+
* **Permissão do Service Account:** `meetings.delete`
|
|
629
751
|
* @summary Excluir reunião
|
|
630
752
|
* @param {MeetingsApiDeleteMeetingRequest} requestParameters Request parameters.
|
|
631
753
|
* @param {*} [options] Override http request option.
|
|
@@ -655,7 +777,7 @@ class MeetingsApi extends base_1.BaseAPI {
|
|
|
655
777
|
return (0, exports.MeetingsApiFp)(this.configuration).finishMeeting(requestParameters.id, requestParameters.finishMeetingRequest, options).then((request) => request(this.axios, this.basePath));
|
|
656
778
|
}
|
|
657
779
|
/**
|
|
658
|
-
*
|
|
780
|
+
* **Permissão do Service Account:** `meetings.read`
|
|
659
781
|
* @summary Obter reunião
|
|
660
782
|
* @param {MeetingsApiGetMeetingRequest} requestParameters Request parameters.
|
|
661
783
|
* @param {*} [options] Override http request option.
|
|
@@ -665,7 +787,27 @@ class MeetingsApi extends base_1.BaseAPI {
|
|
|
665
787
|
return (0, exports.MeetingsApiFp)(this.configuration).getMeeting(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
|
|
666
788
|
}
|
|
667
789
|
/**
|
|
668
|
-
*
|
|
790
|
+
* Use para descobrir o `room` de uma reunião.
|
|
791
|
+
* @summary Listar salas de reunião
|
|
792
|
+
* @param {MeetingsApiListMeetingRoomsRequest} requestParameters Request parameters.
|
|
793
|
+
* @param {*} [options] Override http request option.
|
|
794
|
+
* @throws {RequiredError}
|
|
795
|
+
*/
|
|
796
|
+
listMeetingRooms(requestParameters = {}, options) {
|
|
797
|
+
return (0, exports.MeetingsApiFp)(this.configuration).listMeetingRooms(requestParameters.page, requestParameters.limit, options).then((request) => request(this.axios, this.basePath));
|
|
798
|
+
}
|
|
799
|
+
/**
|
|
800
|
+
* Use para descobrir o `type` de uma reunião.
|
|
801
|
+
* @summary Listar tipos de reunião
|
|
802
|
+
* @param {MeetingsApiListMeetingTypesRequest} requestParameters Request parameters.
|
|
803
|
+
* @param {*} [options] Override http request option.
|
|
804
|
+
* @throws {RequiredError}
|
|
805
|
+
*/
|
|
806
|
+
listMeetingTypes(requestParameters = {}, options) {
|
|
807
|
+
return (0, exports.MeetingsApiFp)(this.configuration).listMeetingTypes(requestParameters.page, requestParameters.limit, options).then((request) => request(this.axios, this.basePath));
|
|
808
|
+
}
|
|
809
|
+
/**
|
|
810
|
+
* Ordenação padrão: `start` decrescente. **Permissão do Service Account:** `meetings.list`
|
|
669
811
|
* @summary Listar reuniões
|
|
670
812
|
* @param {MeetingsApiListMeetingsRequest} requestParameters Request parameters.
|
|
671
813
|
* @param {*} [options] Override http request option.
|
|
@@ -675,7 +817,7 @@ class MeetingsApi extends base_1.BaseAPI {
|
|
|
675
817
|
return (0, exports.MeetingsApiFp)(this.configuration).listMeetings(requestParameters.page, requestParameters.limit, requestParameters.sortBy, requestParameters.sortType, requestParameters.staff, requestParameters.staffs, requestParameters.type, requestParameters.room, requestParameters.contact, requestParameters.deal, requestParameters.organization, requestParameters.priority, requestParameters.status, requestParameters.labels, requestParameters.startMinDate, requestParameters.startMaxDate, requestParameters.createdAtMinDate, requestParameters.createdAtMaxDate, requestParameters.visualization, requestParameters.search, options).then((request) => request(this.axios, this.basePath));
|
|
676
818
|
}
|
|
677
819
|
/**
|
|
678
|
-
* Substitui o registro: reenvie o objeto completo. Para alterar só alguns campos, use `PATCH`.
|
|
820
|
+
* Substitui o registro: reenvie o objeto completo. Para alterar só alguns campos, use `PATCH`. **Permissão do Service Account:** `meetings.update`
|
|
679
821
|
* @summary Substituir reunião
|
|
680
822
|
* @param {MeetingsApiReplaceMeetingRequest} requestParameters Request parameters.
|
|
681
823
|
* @param {*} [options] Override http request option.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* API da Magnet Customer
|
|
3
|
-
* A API REST da Magnet Customer permite ler e gravar os registros do CRM a partir dos seus sistemas. # Comece aqui ## 1. Crie um Service Account No CRM, abra **Configurações › Service Accounts** (apenas administradores), clique em **Novo service account**, escolha a validade e as permissões, e copie o **Client ID** e o **Client Secret**. O secret aparece uma única vez. ## 2. Solicite um token ```bash curl -X POST https://magnetcustomer.net/realms/platform/protocol/openid-connect/token \\ -H \"Content-Type: application/x-www-form-urlencoded\" \\ -d \"grant_type=client_credentials\" \\ -d \"client_id=SEU_CLIENT_ID\" \\ -d \"client_secret=SEU_CLIENT_SECRET\" ``` ```json { \"access_token\": \"eyJhbGciOiJSUzI1NiIs...\", \"expires_in\": 900, \"token_type\": \"Bearer\" } ``` O token vale 15 minutos e este fluxo não tem refresh token: quando vencer, ou ao receber `401`, repita o pedido. ## 3. Chame a API Cada conta tem o seu endereço. Troque `sua-conta` pelo subdomínio que você usa para abrir o CRM: ```bash curl \"https://sua-conta.platform-api.magnetcustomer.com/api/deals?page=1&limit=15\" \\ -H \"Authorization: Bearer SEU_TOKEN\" ``` Requisições com corpo levam também `Content-Type: application/json`. # Convenções ## Paginação Envie sempre `page`. Com ele, toda listagem devolve o mesmo envelope: ```json { \"docs\": [], \"total\": 132, \"pages\": 9, \"page\": 1, \"limit\": 15 } ``` | Parâmetro | Padrão | Descrição | |---|---|---| | `page` | — | Página, a partir de 1. **Obrigatório na prática** | | `limit` | 15 | Registros por página. Máximo 100: acima disso a API usa 100 | | `sortBy` | varia por recurso | Campo de ordenação | | `sortType` | `desc` | `asc` ou `desc` | | `search` | — | Busca textual, quando o recurso aceita | Sem `page`,
|
|
3
|
+
* A API REST da Magnet Customer permite ler e gravar os registros do CRM a partir dos seus sistemas. # Comece aqui ## 1. Crie um Service Account No CRM, abra **Configurações › Service Accounts** (apenas administradores), clique em **Novo service account**, escolha a validade e as permissões, e copie o **Client ID** e o **Client Secret**. O secret aparece uma única vez. ## 2. Solicite um token ```bash curl -X POST https://magnetcustomer.net/realms/platform/protocol/openid-connect/token \\ -H \"Content-Type: application/x-www-form-urlencoded\" \\ -d \"grant_type=client_credentials\" \\ -d \"client_id=SEU_CLIENT_ID\" \\ -d \"client_secret=SEU_CLIENT_SECRET\" ``` ```json { \"access_token\": \"eyJhbGciOiJSUzI1NiIs...\", \"expires_in\": 900, \"token_type\": \"Bearer\" } ``` O token vale 15 minutos e este fluxo não tem refresh token: quando vencer, ou ao receber `401`, repita o pedido. ## 3. Chame a API Cada conta tem o seu endereço. Troque `sua-conta` pelo subdomínio que você usa para abrir o CRM: ```bash curl \"https://sua-conta.platform-api.magnetcustomer.com/api/deals?page=1&limit=15\" \\ -H \"Authorization: Bearer SEU_TOKEN\" ``` Requisições com corpo levam também `Content-Type: application/json`. # Convenções ## Paginação Envie sempre `page`. Com ele, toda listagem devolve o mesmo envelope: ```json { \"docs\": [], \"total\": 132, \"pages\": 9, \"page\": 1, \"limit\": 15 } ``` | Parâmetro | Padrão | Descrição | |---|---|---| | `page` | — | Página, a partir de 1. **Obrigatório na prática** | | `limit` | 15 | Registros por página. Máximo 100: acima disso a API usa 100 | | `sortBy` | varia por recurso | Campo de ordenação | | `sortType` | `desc` | `asc` ou `desc` | | `search` | — | Busca textual, quando o recurso aceita | Sem `page`, algumas listagens (Contatos, Pipelines, Campos personalizados e os cadastros de apoio, como tipos e situações) devolvem uma lista simples (`[...]`), sem o envelope, e ignoram `limit`. Para percorrer tudo, peça `page=1` e avance até `page` ser igual a `pages`. Uma página além do fim devolve `docs` vazio. O tamanho de página padrão é 15, com duas exceções: 25 em Leads, Prospects e Clientes, e 100 em Usuários. Um `limit` inválido cai no padrão. ## Identificadores e datas Todo ID é um texto de 24 caracteres hexadecimais, como `507f1f77bcf86cd799439011`. Ao gravar, envie a referência como **ID em texto** — nunca o objeto. Um ID fora desse formato hoje é respondido com `500`, não `400`: valide o formato antes de enviar. No corpo e nas respostas, datas são ISO 8601 em UTC, como `2026-05-15T10:00:00Z`. Nos filtros de data da URL (`minDate`, `createdAt_minDate`, `dateOfExpires_minDate`...), envie um **timestamp em milissegundos**, como `1798761600000`. ## Listas na URL Filtros que aceitam vários valores levam colchetes no nome, mesmo quando o valor é um só: ``` /api/contacts?page=1&staffs[]=507f191e810c19729de860eb&staffs[]=507f191e810c19729de860ec ``` Sem colchetes, um valor único é recusado com erro em parte das listagens. ## Campos ausentes Campo sem valor costuma vir **ausente** da resposta, não como `null`. Trate a falta da chave como vazio. ## Campos personalizados Os campos criados pelo administrador da conta vão na lista `customFields`: ```json { \"customFields\": [ { \"customField\": \"507f1f77bcf86cd799439014\", \"k\": \"segmento\", \"v\": \"Tecnologia\" } ] } ``` O valor vai em **`v`**. Um item com `value` é aceito sem erro, mas o campo fica vazio. Descubra os campos e os IDs com `GET /api/customfields?page=1&feature=deal` (troque `deal` por `meeting`, `task`, `contact`...). Com `&required=true` vêm só os obrigatórios da conta. ## Erros ```json { \"reason\": \"Missing required parameters\", \"message\": \"Missing required parameters\", \"code\": \"VALIDATION_ERROR\", \"errors\": [ { \"field\": \"title\", \"message\": \"must NOT have fewer than 1 characters\", \"keyword\": \"minLength\" } ] } ``` | Status | Quando | |---|---| | `400` | Corpo inválido: campo obrigatório ausente, tipo errado, valor fora da lista | | `401` | Token ausente, inválido ou vencido. Corpo: `{\"reason\": \"Access Denied\"}` | | `403` | O Service Account não tem a permissão da rota (`type: SA_PERMISSION_DENIED`, com `requiredPermission`) | | `404` | Registro não encontrado | | `409` | O registro não está no estado que a operação exige | | `429` | Limite de requisições excedido. Espere o tempo de `Retry-After` | ## Permissões Um Service Account só chama as rotas que as permissões dele liberam. Cada operação desta referência informa a permissão exigida, quando há uma: marque-a ao criar o Service Account. Uma chamada sem a permissão devolve `403` com o nome dela em `requiredPermission`. Rotas de administração da conta (usuários, perfis, criação de webhooks, configurações) exigem um usuário administrador e não estão disponíveis para Service Accounts; por isso não aparecem aqui. ## Limite de requisições Os limites são aplicados por conta. Ao receber `429`, espere os segundos indicados em `Retry-After` e tente de novo com intervalo crescente. ## Área de trabalho Em contas com áreas de trabalho, a API define a área do registro pela credencial ou pelo registro pai. Não envie `workspace`. # Webhooks Para ser avisado quando algo muda no CRM, em vez de consultar a API de tempos em tempos, use webhooks. Um administrador cria o webhook no CRM, em **Integrações › Webhooks**, informando a URL do seu sistema e os eventos. A lista de eventos está em `GET /api/webhooks/triggers`; o formato da entrega, a assinatura e os reenvios estão na seção Webhooks do portal. # Cobertura Esta referência cobre Contatos (leads, prospects e clientes), Empresas, Oportunidades, Pipelines, etapas e motivos de perda, Jornadas, Reuniões, Tarefas, Observações, Tickets, Atendimentos, Usuários, Equipes, Áreas de trabalho, Campos personalizados e os eventos de webhook.
|
|
4
4
|
*
|
|
5
5
|
* The version of the OpenAPI document: 2026-11
|
|
6
6
|
* Contact: suporte@magnetcustomer.com
|
|
@@ -54,7 +54,7 @@ export declare const ObservationsApiAxiosParamCreator: (configuration?: Configur
|
|
|
54
54
|
*/
|
|
55
55
|
getObservation: (id: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
|
|
56
56
|
/**
|
|
57
|
-
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente.
|
|
57
|
+
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente. **Permissão do Service Account:** `observations.list`
|
|
58
58
|
* @summary Listar observações
|
|
59
59
|
* @param {number} [page] Página, a partir de 1. **Envie sempre**: sem `page`, a resposta vem como lista simples, sem o envelope de paginação, e `limit` é ignorado.
|
|
60
60
|
* @param {number} [limit] Registros por página. Padrão: 15, salvo indicação na operação. Máximo: 100 — acima disso a API usa 100.
|
|
@@ -62,7 +62,7 @@ export declare const ObservationsApiAxiosParamCreator: (configuration?: Configur
|
|
|
62
62
|
* @param {ListObservationsSortTypeEnum} [sortType] Direção da ordenação.
|
|
63
63
|
* @param {string} [deal] ID da oportunidade.
|
|
64
64
|
* @param {string} [contact] ID do contato.
|
|
65
|
-
* @param {Array<string>} [contacts] Vários contatos.
|
|
65
|
+
* @param {Array<string>} [contacts] Vários contatos. Lista de IDs: envie com colchetes, mesmo para um só valor (`?contacts[]=id1&contacts[]=id2`).
|
|
66
66
|
* @param {string} [organization] ID da empresa.
|
|
67
67
|
* @param {string} [search] Busca no texto, contato, empresa, oportunidade e produto.
|
|
68
68
|
* @param {*} [options] Override http request option.
|
|
@@ -116,7 +116,7 @@ export declare const ObservationsApiFp: (configuration?: Configuration) => {
|
|
|
116
116
|
*/
|
|
117
117
|
getObservation(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Observation>>;
|
|
118
118
|
/**
|
|
119
|
-
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente.
|
|
119
|
+
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente. **Permissão do Service Account:** `observations.list`
|
|
120
120
|
* @summary Listar observações
|
|
121
121
|
* @param {number} [page] Página, a partir de 1. **Envie sempre**: sem `page`, a resposta vem como lista simples, sem o envelope de paginação, e `limit` é ignorado.
|
|
122
122
|
* @param {number} [limit] Registros por página. Padrão: 15, salvo indicação na operação. Máximo: 100 — acima disso a API usa 100.
|
|
@@ -124,7 +124,7 @@ export declare const ObservationsApiFp: (configuration?: Configuration) => {
|
|
|
124
124
|
* @param {ListObservationsSortTypeEnum} [sortType] Direção da ordenação.
|
|
125
125
|
* @param {string} [deal] ID da oportunidade.
|
|
126
126
|
* @param {string} [contact] ID do contato.
|
|
127
|
-
* @param {Array<string>} [contacts] Vários contatos.
|
|
127
|
+
* @param {Array<string>} [contacts] Vários contatos. Lista de IDs: envie com colchetes, mesmo para um só valor (`?contacts[]=id1&contacts[]=id2`).
|
|
128
128
|
* @param {string} [organization] ID da empresa.
|
|
129
129
|
* @param {string} [search] Busca no texto, contato, empresa, oportunidade e produto.
|
|
130
130
|
* @param {*} [options] Override http request option.
|
|
@@ -178,7 +178,7 @@ export declare const ObservationsApiFactory: (configuration?: Configuration, bas
|
|
|
178
178
|
*/
|
|
179
179
|
getObservation(requestParameters: ObservationsApiGetObservationRequest, options?: RawAxiosRequestConfig): AxiosPromise<Observation>;
|
|
180
180
|
/**
|
|
181
|
-
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente.
|
|
181
|
+
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente. **Permissão do Service Account:** `observations.list`
|
|
182
182
|
* @summary Listar observações
|
|
183
183
|
* @param {ObservationsApiListObservationsRequest} requestParameters Request parameters.
|
|
184
184
|
* @param {*} [options] Override http request option.
|
|
@@ -253,7 +253,7 @@ export interface ObservationsApiListObservationsRequest {
|
|
|
253
253
|
*/
|
|
254
254
|
readonly contact?: string;
|
|
255
255
|
/**
|
|
256
|
-
* Vários contatos.
|
|
256
|
+
* Vários contatos. Lista de IDs: envie com colchetes, mesmo para um só valor (`?contacts[]=id1&contacts[]=id2`).
|
|
257
257
|
*/
|
|
258
258
|
readonly contacts?: Array<string>;
|
|
259
259
|
/**
|
|
@@ -312,7 +312,7 @@ export declare class ObservationsApi extends BaseAPI {
|
|
|
312
312
|
*/
|
|
313
313
|
getObservation(requestParameters: ObservationsApiGetObservationRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<Observation, any, {}, any>>;
|
|
314
314
|
/**
|
|
315
|
-
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente.
|
|
315
|
+
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente. **Permissão do Service Account:** `observations.list`
|
|
316
316
|
* @summary Listar observações
|
|
317
317
|
* @param {ObservationsApiListObservationsRequest} requestParameters Request parameters.
|
|
318
318
|
* @param {*} [options] Override http request option.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
/**
|
|
5
5
|
* API da Magnet Customer
|
|
6
|
-
* A API REST da Magnet Customer permite ler e gravar os registros do CRM a partir dos seus sistemas. # Comece aqui ## 1. Crie um Service Account No CRM, abra **Configurações › Service Accounts** (apenas administradores), clique em **Novo service account**, escolha a validade e as permissões, e copie o **Client ID** e o **Client Secret**. O secret aparece uma única vez. ## 2. Solicite um token ```bash curl -X POST https://magnetcustomer.net/realms/platform/protocol/openid-connect/token \\ -H \"Content-Type: application/x-www-form-urlencoded\" \\ -d \"grant_type=client_credentials\" \\ -d \"client_id=SEU_CLIENT_ID\" \\ -d \"client_secret=SEU_CLIENT_SECRET\" ``` ```json { \"access_token\": \"eyJhbGciOiJSUzI1NiIs...\", \"expires_in\": 900, \"token_type\": \"Bearer\" } ``` O token vale 15 minutos e este fluxo não tem refresh token: quando vencer, ou ao receber `401`, repita o pedido. ## 3. Chame a API Cada conta tem o seu endereço. Troque `sua-conta` pelo subdomínio que você usa para abrir o CRM: ```bash curl \"https://sua-conta.platform-api.magnetcustomer.com/api/deals?page=1&limit=15\" \\ -H \"Authorization: Bearer SEU_TOKEN\" ``` Requisições com corpo levam também `Content-Type: application/json`. # Convenções ## Paginação Envie sempre `page`. Com ele, toda listagem devolve o mesmo envelope: ```json { \"docs\": [], \"total\": 132, \"pages\": 9, \"page\": 1, \"limit\": 15 } ``` | Parâmetro | Padrão | Descrição | |---|---|---| | `page` | — | Página, a partir de 1. **Obrigatório na prática** | | `limit` | 15 | Registros por página. Máximo 100: acima disso a API usa 100 | | `sortBy` | varia por recurso | Campo de ordenação | | `sortType` | `desc` | `asc` ou `desc` | | `search` | — | Busca textual, quando o recurso aceita | Sem `page`,
|
|
6
|
+
* A API REST da Magnet Customer permite ler e gravar os registros do CRM a partir dos seus sistemas. # Comece aqui ## 1. Crie um Service Account No CRM, abra **Configurações › Service Accounts** (apenas administradores), clique em **Novo service account**, escolha a validade e as permissões, e copie o **Client ID** e o **Client Secret**. O secret aparece uma única vez. ## 2. Solicite um token ```bash curl -X POST https://magnetcustomer.net/realms/platform/protocol/openid-connect/token \\ -H \"Content-Type: application/x-www-form-urlencoded\" \\ -d \"grant_type=client_credentials\" \\ -d \"client_id=SEU_CLIENT_ID\" \\ -d \"client_secret=SEU_CLIENT_SECRET\" ``` ```json { \"access_token\": \"eyJhbGciOiJSUzI1NiIs...\", \"expires_in\": 900, \"token_type\": \"Bearer\" } ``` O token vale 15 minutos e este fluxo não tem refresh token: quando vencer, ou ao receber `401`, repita o pedido. ## 3. Chame a API Cada conta tem o seu endereço. Troque `sua-conta` pelo subdomínio que você usa para abrir o CRM: ```bash curl \"https://sua-conta.platform-api.magnetcustomer.com/api/deals?page=1&limit=15\" \\ -H \"Authorization: Bearer SEU_TOKEN\" ``` Requisições com corpo levam também `Content-Type: application/json`. # Convenções ## Paginação Envie sempre `page`. Com ele, toda listagem devolve o mesmo envelope: ```json { \"docs\": [], \"total\": 132, \"pages\": 9, \"page\": 1, \"limit\": 15 } ``` | Parâmetro | Padrão | Descrição | |---|---|---| | `page` | — | Página, a partir de 1. **Obrigatório na prática** | | `limit` | 15 | Registros por página. Máximo 100: acima disso a API usa 100 | | `sortBy` | varia por recurso | Campo de ordenação | | `sortType` | `desc` | `asc` ou `desc` | | `search` | — | Busca textual, quando o recurso aceita | Sem `page`, algumas listagens (Contatos, Pipelines, Campos personalizados e os cadastros de apoio, como tipos e situações) devolvem uma lista simples (`[...]`), sem o envelope, e ignoram `limit`. Para percorrer tudo, peça `page=1` e avance até `page` ser igual a `pages`. Uma página além do fim devolve `docs` vazio. O tamanho de página padrão é 15, com duas exceções: 25 em Leads, Prospects e Clientes, e 100 em Usuários. Um `limit` inválido cai no padrão. ## Identificadores e datas Todo ID é um texto de 24 caracteres hexadecimais, como `507f1f77bcf86cd799439011`. Ao gravar, envie a referência como **ID em texto** — nunca o objeto. Um ID fora desse formato hoje é respondido com `500`, não `400`: valide o formato antes de enviar. No corpo e nas respostas, datas são ISO 8601 em UTC, como `2026-05-15T10:00:00Z`. Nos filtros de data da URL (`minDate`, `createdAt_minDate`, `dateOfExpires_minDate`...), envie um **timestamp em milissegundos**, como `1798761600000`. ## Listas na URL Filtros que aceitam vários valores levam colchetes no nome, mesmo quando o valor é um só: ``` /api/contacts?page=1&staffs[]=507f191e810c19729de860eb&staffs[]=507f191e810c19729de860ec ``` Sem colchetes, um valor único é recusado com erro em parte das listagens. ## Campos ausentes Campo sem valor costuma vir **ausente** da resposta, não como `null`. Trate a falta da chave como vazio. ## Campos personalizados Os campos criados pelo administrador da conta vão na lista `customFields`: ```json { \"customFields\": [ { \"customField\": \"507f1f77bcf86cd799439014\", \"k\": \"segmento\", \"v\": \"Tecnologia\" } ] } ``` O valor vai em **`v`**. Um item com `value` é aceito sem erro, mas o campo fica vazio. Descubra os campos e os IDs com `GET /api/customfields?page=1&feature=deal` (troque `deal` por `meeting`, `task`, `contact`...). Com `&required=true` vêm só os obrigatórios da conta. ## Erros ```json { \"reason\": \"Missing required parameters\", \"message\": \"Missing required parameters\", \"code\": \"VALIDATION_ERROR\", \"errors\": [ { \"field\": \"title\", \"message\": \"must NOT have fewer than 1 characters\", \"keyword\": \"minLength\" } ] } ``` | Status | Quando | |---|---| | `400` | Corpo inválido: campo obrigatório ausente, tipo errado, valor fora da lista | | `401` | Token ausente, inválido ou vencido. Corpo: `{\"reason\": \"Access Denied\"}` | | `403` | O Service Account não tem a permissão da rota (`type: SA_PERMISSION_DENIED`, com `requiredPermission`) | | `404` | Registro não encontrado | | `409` | O registro não está no estado que a operação exige | | `429` | Limite de requisições excedido. Espere o tempo de `Retry-After` | ## Permissões Um Service Account só chama as rotas que as permissões dele liberam. Cada operação desta referência informa a permissão exigida, quando há uma: marque-a ao criar o Service Account. Uma chamada sem a permissão devolve `403` com o nome dela em `requiredPermission`. Rotas de administração da conta (usuários, perfis, criação de webhooks, configurações) exigem um usuário administrador e não estão disponíveis para Service Accounts; por isso não aparecem aqui. ## Limite de requisições Os limites são aplicados por conta. Ao receber `429`, espere os segundos indicados em `Retry-After` e tente de novo com intervalo crescente. ## Área de trabalho Em contas com áreas de trabalho, a API define a área do registro pela credencial ou pelo registro pai. Não envie `workspace`. # Webhooks Para ser avisado quando algo muda no CRM, em vez de consultar a API de tempos em tempos, use webhooks. Um administrador cria o webhook no CRM, em **Integrações › Webhooks**, informando a URL do seu sistema e os eventos. A lista de eventos está em `GET /api/webhooks/triggers`; o formato da entrega, a assinatura e os reenvios estão na seção Webhooks do portal. # Cobertura Esta referência cobre Contatos (leads, prospects e clientes), Empresas, Oportunidades, Pipelines, etapas e motivos de perda, Jornadas, Reuniões, Tarefas, Observações, Tickets, Atendimentos, Usuários, Equipes, Áreas de trabalho, Campos personalizados e os eventos de webhook.
|
|
7
7
|
*
|
|
8
8
|
* The version of the OpenAPI document: 2026-11
|
|
9
9
|
* Contact: suporte@magnetcustomer.com
|
|
@@ -163,7 +163,7 @@ const ObservationsApiAxiosParamCreator = function (configuration) {
|
|
|
163
163
|
};
|
|
164
164
|
},
|
|
165
165
|
/**
|
|
166
|
-
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente.
|
|
166
|
+
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente. **Permissão do Service Account:** `observations.list`
|
|
167
167
|
* @summary Listar observações
|
|
168
168
|
* @param {number} [page] Página, a partir de 1. **Envie sempre**: sem `page`, a resposta vem como lista simples, sem o envelope de paginação, e `limit` é ignorado.
|
|
169
169
|
* @param {number} [limit] Registros por página. Padrão: 15, salvo indicação na operação. Máximo: 100 — acima disso a API usa 100.
|
|
@@ -171,7 +171,7 @@ const ObservationsApiAxiosParamCreator = function (configuration) {
|
|
|
171
171
|
* @param {ListObservationsSortTypeEnum} [sortType] Direção da ordenação.
|
|
172
172
|
* @param {string} [deal] ID da oportunidade.
|
|
173
173
|
* @param {string} [contact] ID do contato.
|
|
174
|
-
* @param {Array<string>} [contacts] Vários contatos.
|
|
174
|
+
* @param {Array<string>} [contacts] Vários contatos. Lista de IDs: envie com colchetes, mesmo para um só valor (`?contacts[]=id1&contacts[]=id2`).
|
|
175
175
|
* @param {string} [organization] ID da empresa.
|
|
176
176
|
* @param {string} [search] Busca no texto, contato, empresa, oportunidade e produto.
|
|
177
177
|
* @param {*} [options] Override http request option.
|
|
@@ -210,7 +210,7 @@ const ObservationsApiAxiosParamCreator = function (configuration) {
|
|
|
210
210
|
localVarQueryParameter['contact'] = contact;
|
|
211
211
|
}
|
|
212
212
|
if (contacts) {
|
|
213
|
-
localVarQueryParameter['contacts'] = contacts;
|
|
213
|
+
localVarQueryParameter['contacts[]'] = contacts;
|
|
214
214
|
}
|
|
215
215
|
if (organization !== undefined) {
|
|
216
216
|
localVarQueryParameter['organization'] = organization;
|
|
@@ -327,7 +327,7 @@ const ObservationsApiFp = function (configuration) {
|
|
|
327
327
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
328
328
|
},
|
|
329
329
|
/**
|
|
330
|
-
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente.
|
|
330
|
+
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente. **Permissão do Service Account:** `observations.list`
|
|
331
331
|
* @summary Listar observações
|
|
332
332
|
* @param {number} [page] Página, a partir de 1. **Envie sempre**: sem `page`, a resposta vem como lista simples, sem o envelope de paginação, e `limit` é ignorado.
|
|
333
333
|
* @param {number} [limit] Registros por página. Padrão: 15, salvo indicação na operação. Máximo: 100 — acima disso a API usa 100.
|
|
@@ -335,7 +335,7 @@ const ObservationsApiFp = function (configuration) {
|
|
|
335
335
|
* @param {ListObservationsSortTypeEnum} [sortType] Direção da ordenação.
|
|
336
336
|
* @param {string} [deal] ID da oportunidade.
|
|
337
337
|
* @param {string} [contact] ID do contato.
|
|
338
|
-
* @param {Array<string>} [contacts] Vários contatos.
|
|
338
|
+
* @param {Array<string>} [contacts] Vários contatos. Lista de IDs: envie com colchetes, mesmo para um só valor (`?contacts[]=id1&contacts[]=id2`).
|
|
339
339
|
* @param {string} [organization] ID da empresa.
|
|
340
340
|
* @param {string} [search] Busca no texto, contato, empresa, oportunidade e produto.
|
|
341
341
|
* @param {*} [options] Override http request option.
|
|
@@ -411,7 +411,7 @@ const ObservationsApiFactory = function (configuration, basePath, axios) {
|
|
|
411
411
|
return localVarFp.getObservation(requestParameters.id, options).then((request) => request(axios, basePath));
|
|
412
412
|
},
|
|
413
413
|
/**
|
|
414
|
-
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente.
|
|
414
|
+
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente. **Permissão do Service Account:** `observations.list`
|
|
415
415
|
* @summary Listar observações
|
|
416
416
|
* @param {ObservationsApiListObservationsRequest} requestParameters Request parameters.
|
|
417
417
|
* @param {*} [options] Override http request option.
|
|
@@ -478,7 +478,7 @@ class ObservationsApi extends base_1.BaseAPI {
|
|
|
478
478
|
return (0, exports.ObservationsApiFp)(this.configuration).getObservation(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
|
|
479
479
|
}
|
|
480
480
|
/**
|
|
481
|
-
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente.
|
|
481
|
+
* Devolve só as ativas. Ordenação padrão: `createdAt` decrescente. **Permissão do Service Account:** `observations.list`
|
|
482
482
|
* @summary Listar observações
|
|
483
483
|
* @param {ObservationsApiListObservationsRequest} requestParameters Request parameters.
|
|
484
484
|
* @param {*} [options] Override http request option.
|