@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
package/README.md
CHANGED
|
@@ -60,12 +60,17 @@ Cada método devolve a resposta do [axios](https://axios-http.com): o corpo est
|
|
|
60
60
|
| `crm.leads`, `crm.prospects`, `crm.customers` | Contatos por fase |
|
|
61
61
|
| `crm.organizations` | Empresas |
|
|
62
62
|
| `crm.deals` | Oportunidades |
|
|
63
|
-
| `crm.pipelines` | Pipelines e
|
|
64
|
-
| `crm.
|
|
63
|
+
| `crm.pipelines` | Pipelines, etapas e motivos de perda |
|
|
64
|
+
| `crm.journeys` | Jornadas (leitura) |
|
|
65
|
+
| `crm.meetings` | Reuniões, tipos e salas |
|
|
65
66
|
| `crm.tasks`, `crm.taskTypes` | Tarefas e tipos de tarefa |
|
|
66
67
|
| `crm.observations` | Observações |
|
|
68
|
+
| `crm.tickets` | Tickets, situações e mensagens |
|
|
69
|
+
| `crm.treatments` | Atendimentos e tipos |
|
|
67
70
|
| `crm.staffs` | Usuários |
|
|
68
71
|
| `crm.customFields` | Campos personalizados |
|
|
72
|
+
| `crm.teams` | Equipes e áreas de trabalho |
|
|
73
|
+
| `crm.webhooks` | Eventos de webhook disponíveis |
|
|
69
74
|
|
|
70
75
|
Os parâmetros, o corpo aceito e a resposta de cada operação estão na [referência da API](https://magnetcustomer.com/developers/api-reference). Os nomes dos métodos são os `operationId` de lá.
|
|
71
76
|
|
|
@@ -83,6 +88,18 @@ async function* allDeals() {
|
|
|
83
88
|
}
|
|
84
89
|
```
|
|
85
90
|
|
|
91
|
+
## Filtros com vários valores
|
|
92
|
+
|
|
93
|
+
Passe uma lista; o SDK envia no formato que a API espera (`staffs[]=...`), inclusive com um valor só:
|
|
94
|
+
|
|
95
|
+
```ts
|
|
96
|
+
await crm.contacts.listContacts({ page: 1, staffs: [staffId] });
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Webhooks
|
|
100
|
+
|
|
101
|
+
Os webhooks são criados por um administrador no CRM, em **Integrações › Webhooks**. O SDK lista os eventos disponíveis com `crm.webhooks.listWebhookTriggers()`.
|
|
102
|
+
|
|
86
103
|
## Erros
|
|
87
104
|
|
|
88
105
|
Uma resposta fora de 2xx lança o erro do axios, com o status e o corpo da API:
|
|
@@ -123,7 +140,7 @@ A 2.0 foi refeita a partir da referência atual da API e muda a interface:
|
|
|
123
140
|
- Um cliente só (`new MagnetCustomer({ account, clientId, clientSecret })`) no lugar de `Configuration` + uma classe por API.
|
|
124
141
|
- O token é obtido e renovado pelo SDK.
|
|
125
142
|
- Os métodos têm os nomes da referência (`listDeals`, `createContact`...) e recebem um objeto de parâmetros.
|
|
126
|
-
- A 2.
|
|
143
|
+
- A 2.x cobre os recursos da tabela acima, os mesmos da referência pública. Para uma rota fora dela, use o token de `crm.tokens.getAccessToken()` no seu cliente HTTP.
|
|
127
144
|
|
|
128
145
|
## Desenvolvimento
|
|
129
146
|
|
package/dist/client.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AxiosInstance } from 'axios';
|
|
2
2
|
import { ServiceAccountCredentials, TokenManager } from './auth';
|
|
3
|
-
import { ContactsApi, CustomFieldsApi, CustomersApi, DealsApi, LeadsApi, MeetingsApi, ObservationsApi, OrganizationsApi, PipelinesApi, ProspectsApi, StaffsApi, TaskTypesApi, TasksApi } from './generated/api';
|
|
3
|
+
import { ContactsApi, CustomFieldsApi, CustomersApi, DealsApi, JourneysApi, LeadsApi, MeetingsApi, ObservationsApi, OrganizationsApi, PipelinesApi, ProspectsApi, StaffsApi, TaskTypesApi, TasksApi, TeamsApi, TicketsApi, TreatmentsApi, WebhooksApi } from './generated/api';
|
|
4
4
|
export interface MagnetCustomerOptions extends ServiceAccountCredentials {
|
|
5
5
|
/** Subdomínio da conta: o mesmo usado para abrir o CRM (`acme` em `acme.magnetcustomer.com`). */
|
|
6
6
|
account: string;
|
|
@@ -28,6 +28,11 @@ export declare class MagnetCustomer {
|
|
|
28
28
|
readonly observations: ObservationsApi;
|
|
29
29
|
readonly staffs: StaffsApi;
|
|
30
30
|
readonly customFields: CustomFieldsApi;
|
|
31
|
+
readonly tickets: TicketsApi;
|
|
32
|
+
readonly treatments: TreatmentsApi;
|
|
33
|
+
readonly journeys: JourneysApi;
|
|
34
|
+
readonly teams: TeamsApi;
|
|
35
|
+
readonly webhooks: WebhooksApi;
|
|
31
36
|
readonly tokens: TokenManager;
|
|
32
37
|
readonly baseUrl: string;
|
|
33
38
|
constructor(options: MagnetCustomerOptions, http?: AxiosInstance);
|
package/dist/client.js
CHANGED
|
@@ -55,6 +55,11 @@ class MagnetCustomer {
|
|
|
55
55
|
this.observations = build(api_1.ObservationsApi);
|
|
56
56
|
this.staffs = build(api_1.StaffsApi);
|
|
57
57
|
this.customFields = build(api_1.CustomFieldsApi);
|
|
58
|
+
this.tickets = build(api_1.TicketsApi);
|
|
59
|
+
this.treatments = build(api_1.TreatmentsApi);
|
|
60
|
+
this.journeys = build(api_1.JourneysApi);
|
|
61
|
+
this.teams = build(api_1.TeamsApi);
|
|
62
|
+
this.webhooks = build(api_1.WebhooksApi);
|
|
58
63
|
}
|
|
59
64
|
}
|
|
60
65
|
exports.MagnetCustomer = MagnetCustomer;
|
|
@@ -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
|
|
@@ -20,7 +20,7 @@ import type { ListContacts200Response } from '../models';
|
|
|
20
20
|
*/
|
|
21
21
|
export declare const ContactsApiAxiosParamCreator: (configuration?: Configuration) => {
|
|
22
22
|
/**
|
|
23
|
-
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`.
|
|
23
|
+
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`. **Permissão do Service Account:** `contacts.create`
|
|
24
24
|
* @summary Criar contato
|
|
25
25
|
* @param {ContactInput} contactInput
|
|
26
26
|
* @param {*} [options] Override http request option.
|
|
@@ -28,7 +28,7 @@ export declare const ContactsApiAxiosParamCreator: (configuration?: Configuratio
|
|
|
28
28
|
*/
|
|
29
29
|
createContact: (contactInput: ContactInput, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
|
|
30
30
|
/**
|
|
31
|
-
* Exige a permissão de excluir.
|
|
31
|
+
* Exige a permissão de excluir. **Permissão do Service Account:** `contacts.delete`
|
|
32
32
|
* @summary Excluir contato
|
|
33
33
|
* @param {string} id ID do registro.
|
|
34
34
|
* @param {*} [options] Override http request option.
|
|
@@ -36,7 +36,7 @@ export declare const ContactsApiAxiosParamCreator: (configuration?: Configuratio
|
|
|
36
36
|
*/
|
|
37
37
|
deleteContact: (id: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
39
|
+
* **Permissão do Service Account:** `contacts.read`
|
|
40
40
|
* @summary Obter contato
|
|
41
41
|
* @param {string} id ID do registro.
|
|
42
42
|
* @param {*} [options] Override http request option.
|
|
@@ -44,13 +44,13 @@ export declare const ContactsApiAxiosParamCreator: (configuration?: Configuratio
|
|
|
44
44
|
*/
|
|
45
45
|
getContact: (id: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
|
|
46
46
|
/**
|
|
47
|
-
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos.
|
|
47
|
+
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos. **Permissão do Service Account:** `contacts.list`
|
|
48
48
|
* @summary Listar contatos
|
|
49
49
|
* @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.
|
|
50
50
|
* @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.
|
|
51
51
|
* @param {string} [sortBy] Campo de ordenação. O padrão varia por recurso.
|
|
52
52
|
* @param {ListContactsSortTypeEnum} [sortType] Direção da ordenação.
|
|
53
|
-
* @param {Array<string>} [staffs] Usuários responsáveis.
|
|
53
|
+
* @param {Array<string>} [staffs] Usuários responsáveis. Lista de IDs: envie com colchetes, mesmo para um só valor (`?staffs[]=id1&staffs[]=id2`).
|
|
54
54
|
* @param {string} [organization] ID da empresa vinculada.
|
|
55
55
|
* @param {string} [search] Busca em nome, e-mail, telefone e documento.
|
|
56
56
|
* @param {boolean} [emailsEmpty] Com `true`, só os sem e-mail.
|
|
@@ -61,7 +61,7 @@ export declare const ContactsApiAxiosParamCreator: (configuration?: Configuratio
|
|
|
61
61
|
*/
|
|
62
62
|
listContacts: (page?: number, limit?: number, sortBy?: string, sortType?: ListContactsSortTypeEnum, staffs?: Array<string>, organization?: string, search?: string, emailsEmpty?: boolean, phonesEmpty?: boolean, lifeCycle?: ListContactsLifeCycleEnum, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
|
|
63
63
|
/**
|
|
64
|
-
* Envie só os campos que mudam.
|
|
64
|
+
* Envie só os campos que mudam. **Permissão do Service Account:** `contacts.update`
|
|
65
65
|
* @summary Atualizar contato
|
|
66
66
|
* @param {string} id ID do registro.
|
|
67
67
|
* @param {ContactInput} contactInput
|
|
@@ -75,7 +75,7 @@ export declare const ContactsApiAxiosParamCreator: (configuration?: Configuratio
|
|
|
75
75
|
*/
|
|
76
76
|
export declare const ContactsApiFp: (configuration?: Configuration) => {
|
|
77
77
|
/**
|
|
78
|
-
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`.
|
|
78
|
+
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`. **Permissão do Service Account:** `contacts.create`
|
|
79
79
|
* @summary Criar contato
|
|
80
80
|
* @param {ContactInput} contactInput
|
|
81
81
|
* @param {*} [options] Override http request option.
|
|
@@ -83,7 +83,7 @@ export declare const ContactsApiFp: (configuration?: Configuration) => {
|
|
|
83
83
|
*/
|
|
84
84
|
createContact(contactInput: ContactInput, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Contact>>;
|
|
85
85
|
/**
|
|
86
|
-
* Exige a permissão de excluir.
|
|
86
|
+
* Exige a permissão de excluir. **Permissão do Service Account:** `contacts.delete`
|
|
87
87
|
* @summary Excluir contato
|
|
88
88
|
* @param {string} id ID do registro.
|
|
89
89
|
* @param {*} [options] Override http request option.
|
|
@@ -91,7 +91,7 @@ export declare const ContactsApiFp: (configuration?: Configuration) => {
|
|
|
91
91
|
*/
|
|
92
92
|
deleteContact(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
|
|
93
93
|
/**
|
|
94
|
-
*
|
|
94
|
+
* **Permissão do Service Account:** `contacts.read`
|
|
95
95
|
* @summary Obter contato
|
|
96
96
|
* @param {string} id ID do registro.
|
|
97
97
|
* @param {*} [options] Override http request option.
|
|
@@ -99,13 +99,13 @@ export declare const ContactsApiFp: (configuration?: Configuration) => {
|
|
|
99
99
|
*/
|
|
100
100
|
getContact(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Contact>>;
|
|
101
101
|
/**
|
|
102
|
-
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos.
|
|
102
|
+
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos. **Permissão do Service Account:** `contacts.list`
|
|
103
103
|
* @summary Listar contatos
|
|
104
104
|
* @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.
|
|
105
105
|
* @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.
|
|
106
106
|
* @param {string} [sortBy] Campo de ordenação. O padrão varia por recurso.
|
|
107
107
|
* @param {ListContactsSortTypeEnum} [sortType] Direção da ordenação.
|
|
108
|
-
* @param {Array<string>} [staffs] Usuários responsáveis.
|
|
108
|
+
* @param {Array<string>} [staffs] Usuários responsáveis. Lista de IDs: envie com colchetes, mesmo para um só valor (`?staffs[]=id1&staffs[]=id2`).
|
|
109
109
|
* @param {string} [organization] ID da empresa vinculada.
|
|
110
110
|
* @param {string} [search] Busca em nome, e-mail, telefone e documento.
|
|
111
111
|
* @param {boolean} [emailsEmpty] Com `true`, só os sem e-mail.
|
|
@@ -116,7 +116,7 @@ export declare const ContactsApiFp: (configuration?: Configuration) => {
|
|
|
116
116
|
*/
|
|
117
117
|
listContacts(page?: number, limit?: number, sortBy?: string, sortType?: ListContactsSortTypeEnum, staffs?: Array<string>, organization?: string, search?: string, emailsEmpty?: boolean, phonesEmpty?: boolean, lifeCycle?: ListContactsLifeCycleEnum, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ListContacts200Response>>;
|
|
118
118
|
/**
|
|
119
|
-
* Envie só os campos que mudam.
|
|
119
|
+
* Envie só os campos que mudam. **Permissão do Service Account:** `contacts.update`
|
|
120
120
|
* @summary Atualizar contato
|
|
121
121
|
* @param {string} id ID do registro.
|
|
122
122
|
* @param {ContactInput} contactInput
|
|
@@ -130,7 +130,7 @@ export declare const ContactsApiFp: (configuration?: Configuration) => {
|
|
|
130
130
|
*/
|
|
131
131
|
export declare const ContactsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
|
|
132
132
|
/**
|
|
133
|
-
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`.
|
|
133
|
+
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`. **Permissão do Service Account:** `contacts.create`
|
|
134
134
|
* @summary Criar contato
|
|
135
135
|
* @param {ContactsApiCreateContactRequest} requestParameters Request parameters.
|
|
136
136
|
* @param {*} [options] Override http request option.
|
|
@@ -138,7 +138,7 @@ export declare const ContactsApiFactory: (configuration?: Configuration, basePat
|
|
|
138
138
|
*/
|
|
139
139
|
createContact(requestParameters: ContactsApiCreateContactRequest, options?: RawAxiosRequestConfig): AxiosPromise<Contact>;
|
|
140
140
|
/**
|
|
141
|
-
* Exige a permissão de excluir.
|
|
141
|
+
* Exige a permissão de excluir. **Permissão do Service Account:** `contacts.delete`
|
|
142
142
|
* @summary Excluir contato
|
|
143
143
|
* @param {ContactsApiDeleteContactRequest} requestParameters Request parameters.
|
|
144
144
|
* @param {*} [options] Override http request option.
|
|
@@ -146,7 +146,7 @@ export declare const ContactsApiFactory: (configuration?: Configuration, basePat
|
|
|
146
146
|
*/
|
|
147
147
|
deleteContact(requestParameters: ContactsApiDeleteContactRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
|
|
148
148
|
/**
|
|
149
|
-
*
|
|
149
|
+
* **Permissão do Service Account:** `contacts.read`
|
|
150
150
|
* @summary Obter contato
|
|
151
151
|
* @param {ContactsApiGetContactRequest} requestParameters Request parameters.
|
|
152
152
|
* @param {*} [options] Override http request option.
|
|
@@ -154,7 +154,7 @@ export declare const ContactsApiFactory: (configuration?: Configuration, basePat
|
|
|
154
154
|
*/
|
|
155
155
|
getContact(requestParameters: ContactsApiGetContactRequest, options?: RawAxiosRequestConfig): AxiosPromise<Contact>;
|
|
156
156
|
/**
|
|
157
|
-
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos.
|
|
157
|
+
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos. **Permissão do Service Account:** `contacts.list`
|
|
158
158
|
* @summary Listar contatos
|
|
159
159
|
* @param {ContactsApiListContactsRequest} requestParameters Request parameters.
|
|
160
160
|
* @param {*} [options] Override http request option.
|
|
@@ -162,7 +162,7 @@ export declare const ContactsApiFactory: (configuration?: Configuration, basePat
|
|
|
162
162
|
*/
|
|
163
163
|
listContacts(requestParameters?: ContactsApiListContactsRequest, options?: RawAxiosRequestConfig): AxiosPromise<ListContacts200Response>;
|
|
164
164
|
/**
|
|
165
|
-
* Envie só os campos que mudam.
|
|
165
|
+
* Envie só os campos que mudam. **Permissão do Service Account:** `contacts.update`
|
|
166
166
|
* @summary Atualizar contato
|
|
167
167
|
* @param {ContactsApiUpdateContactRequest} requestParameters Request parameters.
|
|
168
168
|
* @param {*} [options] Override http request option.
|
|
@@ -215,7 +215,7 @@ export interface ContactsApiListContactsRequest {
|
|
|
215
215
|
*/
|
|
216
216
|
readonly sortType?: ListContactsSortTypeEnum;
|
|
217
217
|
/**
|
|
218
|
-
* Usuários responsáveis.
|
|
218
|
+
* Usuários responsáveis. Lista de IDs: envie com colchetes, mesmo para um só valor (`?staffs[]=id1&staffs[]=id2`).
|
|
219
219
|
*/
|
|
220
220
|
readonly staffs?: Array<string>;
|
|
221
221
|
/**
|
|
@@ -254,7 +254,7 @@ export interface ContactsApiUpdateContactRequest {
|
|
|
254
254
|
*/
|
|
255
255
|
export declare class ContactsApi extends BaseAPI {
|
|
256
256
|
/**
|
|
257
|
-
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`.
|
|
257
|
+
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`. **Permissão do Service Account:** `contacts.create`
|
|
258
258
|
* @summary Criar contato
|
|
259
259
|
* @param {ContactsApiCreateContactRequest} requestParameters Request parameters.
|
|
260
260
|
* @param {*} [options] Override http request option.
|
|
@@ -262,7 +262,7 @@ export declare class ContactsApi extends BaseAPI {
|
|
|
262
262
|
*/
|
|
263
263
|
createContact(requestParameters: ContactsApiCreateContactRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<Contact, any, {}, any>>;
|
|
264
264
|
/**
|
|
265
|
-
* Exige a permissão de excluir.
|
|
265
|
+
* Exige a permissão de excluir. **Permissão do Service Account:** `contacts.delete`
|
|
266
266
|
* @summary Excluir contato
|
|
267
267
|
* @param {ContactsApiDeleteContactRequest} requestParameters Request parameters.
|
|
268
268
|
* @param {*} [options] Override http request option.
|
|
@@ -270,7 +270,7 @@ export declare class ContactsApi extends BaseAPI {
|
|
|
270
270
|
*/
|
|
271
271
|
deleteContact(requestParameters: ContactsApiDeleteContactRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}, any>>;
|
|
272
272
|
/**
|
|
273
|
-
*
|
|
273
|
+
* **Permissão do Service Account:** `contacts.read`
|
|
274
274
|
* @summary Obter contato
|
|
275
275
|
* @param {ContactsApiGetContactRequest} requestParameters Request parameters.
|
|
276
276
|
* @param {*} [options] Override http request option.
|
|
@@ -278,7 +278,7 @@ export declare class ContactsApi extends BaseAPI {
|
|
|
278
278
|
*/
|
|
279
279
|
getContact(requestParameters: ContactsApiGetContactRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<Contact, any, {}, any>>;
|
|
280
280
|
/**
|
|
281
|
-
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos.
|
|
281
|
+
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos. **Permissão do Service Account:** `contacts.list`
|
|
282
282
|
* @summary Listar contatos
|
|
283
283
|
* @param {ContactsApiListContactsRequest} requestParameters Request parameters.
|
|
284
284
|
* @param {*} [options] Override http request option.
|
|
@@ -286,7 +286,7 @@ export declare class ContactsApi extends BaseAPI {
|
|
|
286
286
|
*/
|
|
287
287
|
listContacts(requestParameters?: ContactsApiListContactsRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<import("../models").Page, any, {}, any>>;
|
|
288
288
|
/**
|
|
289
|
-
* Envie só os campos que mudam.
|
|
289
|
+
* Envie só os campos que mudam. **Permissão do Service Account:** `contacts.update`
|
|
290
290
|
* @summary Atualizar contato
|
|
291
291
|
* @param {ContactsApiUpdateContactRequest} requestParameters Request parameters.
|
|
292
292
|
* @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
|
|
@@ -29,7 +29,7 @@ const base_1 = require("../base");
|
|
|
29
29
|
const ContactsApiAxiosParamCreator = function (configuration) {
|
|
30
30
|
return {
|
|
31
31
|
/**
|
|
32
|
-
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`.
|
|
32
|
+
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`. **Permissão do Service Account:** `contacts.create`
|
|
33
33
|
* @summary Criar contato
|
|
34
34
|
* @param {ContactInput} contactInput
|
|
35
35
|
* @param {*} [options] Override http request option.
|
|
@@ -63,7 +63,7 @@ const ContactsApiAxiosParamCreator = function (configuration) {
|
|
|
63
63
|
};
|
|
64
64
|
},
|
|
65
65
|
/**
|
|
66
|
-
* Exige a permissão de excluir.
|
|
66
|
+
* Exige a permissão de excluir. **Permissão do Service Account:** `contacts.delete`
|
|
67
67
|
* @summary Excluir contato
|
|
68
68
|
* @param {string} id ID do registro.
|
|
69
69
|
* @param {*} [options] Override http request option.
|
|
@@ -96,7 +96,7 @@ const ContactsApiAxiosParamCreator = function (configuration) {
|
|
|
96
96
|
};
|
|
97
97
|
},
|
|
98
98
|
/**
|
|
99
|
-
*
|
|
99
|
+
* **Permissão do Service Account:** `contacts.read`
|
|
100
100
|
* @summary Obter contato
|
|
101
101
|
* @param {string} id ID do registro.
|
|
102
102
|
* @param {*} [options] Override http request option.
|
|
@@ -129,13 +129,13 @@ const ContactsApiAxiosParamCreator = function (configuration) {
|
|
|
129
129
|
};
|
|
130
130
|
},
|
|
131
131
|
/**
|
|
132
|
-
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos.
|
|
132
|
+
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos. **Permissão do Service Account:** `contacts.list`
|
|
133
133
|
* @summary Listar contatos
|
|
134
134
|
* @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.
|
|
135
135
|
* @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.
|
|
136
136
|
* @param {string} [sortBy] Campo de ordenação. O padrão varia por recurso.
|
|
137
137
|
* @param {ListContactsSortTypeEnum} [sortType] Direção da ordenação.
|
|
138
|
-
* @param {Array<string>} [staffs] Usuários responsáveis.
|
|
138
|
+
* @param {Array<string>} [staffs] Usuários responsáveis. Lista de IDs: envie com colchetes, mesmo para um só valor (`?staffs[]=id1&staffs[]=id2`).
|
|
139
139
|
* @param {string} [organization] ID da empresa vinculada.
|
|
140
140
|
* @param {string} [search] Busca em nome, e-mail, telefone e documento.
|
|
141
141
|
* @param {boolean} [emailsEmpty] Com `true`, só os sem e-mail.
|
|
@@ -171,7 +171,7 @@ const ContactsApiAxiosParamCreator = function (configuration) {
|
|
|
171
171
|
localVarQueryParameter['sortType'] = sortType;
|
|
172
172
|
}
|
|
173
173
|
if (staffs) {
|
|
174
|
-
localVarQueryParameter['staffs'] = staffs;
|
|
174
|
+
localVarQueryParameter['staffs[]'] = staffs;
|
|
175
175
|
}
|
|
176
176
|
if (organization !== undefined) {
|
|
177
177
|
localVarQueryParameter['organization'] = organization;
|
|
@@ -198,7 +198,7 @@ const ContactsApiAxiosParamCreator = function (configuration) {
|
|
|
198
198
|
};
|
|
199
199
|
},
|
|
200
200
|
/**
|
|
201
|
-
* Envie só os campos que mudam.
|
|
201
|
+
* Envie só os campos que mudam. **Permissão do Service Account:** `contacts.update`
|
|
202
202
|
* @summary Atualizar contato
|
|
203
203
|
* @param {string} id ID do registro.
|
|
204
204
|
* @param {ContactInput} contactInput
|
|
@@ -245,7 +245,7 @@ const ContactsApiFp = function (configuration) {
|
|
|
245
245
|
const localVarAxiosParamCreator = (0, exports.ContactsApiAxiosParamCreator)(configuration);
|
|
246
246
|
return {
|
|
247
247
|
/**
|
|
248
|
-
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`.
|
|
248
|
+
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`. **Permissão do Service Account:** `contacts.create`
|
|
249
249
|
* @summary Criar contato
|
|
250
250
|
* @param {ContactInput} contactInput
|
|
251
251
|
* @param {*} [options] Override http request option.
|
|
@@ -258,7 +258,7 @@ const ContactsApiFp = function (configuration) {
|
|
|
258
258
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
259
259
|
},
|
|
260
260
|
/**
|
|
261
|
-
* Exige a permissão de excluir.
|
|
261
|
+
* Exige a permissão de excluir. **Permissão do Service Account:** `contacts.delete`
|
|
262
262
|
* @summary Excluir contato
|
|
263
263
|
* @param {string} id ID do registro.
|
|
264
264
|
* @param {*} [options] Override http request option.
|
|
@@ -271,7 +271,7 @@ const ContactsApiFp = function (configuration) {
|
|
|
271
271
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
272
272
|
},
|
|
273
273
|
/**
|
|
274
|
-
*
|
|
274
|
+
* **Permissão do Service Account:** `contacts.read`
|
|
275
275
|
* @summary Obter contato
|
|
276
276
|
* @param {string} id ID do registro.
|
|
277
277
|
* @param {*} [options] Override http request option.
|
|
@@ -284,13 +284,13 @@ const ContactsApiFp = function (configuration) {
|
|
|
284
284
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
285
285
|
},
|
|
286
286
|
/**
|
|
287
|
-
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos.
|
|
287
|
+
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos. **Permissão do Service Account:** `contacts.list`
|
|
288
288
|
* @summary Listar contatos
|
|
289
289
|
* @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.
|
|
290
290
|
* @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.
|
|
291
291
|
* @param {string} [sortBy] Campo de ordenação. O padrão varia por recurso.
|
|
292
292
|
* @param {ListContactsSortTypeEnum} [sortType] Direção da ordenação.
|
|
293
|
-
* @param {Array<string>} [staffs] Usuários responsáveis.
|
|
293
|
+
* @param {Array<string>} [staffs] Usuários responsáveis. Lista de IDs: envie com colchetes, mesmo para um só valor (`?staffs[]=id1&staffs[]=id2`).
|
|
294
294
|
* @param {string} [organization] ID da empresa vinculada.
|
|
295
295
|
* @param {string} [search] Busca em nome, e-mail, telefone e documento.
|
|
296
296
|
* @param {boolean} [emailsEmpty] Com `true`, só os sem e-mail.
|
|
@@ -306,7 +306,7 @@ const ContactsApiFp = function (configuration) {
|
|
|
306
306
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
307
307
|
},
|
|
308
308
|
/**
|
|
309
|
-
* Envie só os campos que mudam.
|
|
309
|
+
* Envie só os campos que mudam. **Permissão do Service Account:** `contacts.update`
|
|
310
310
|
* @summary Atualizar contato
|
|
311
311
|
* @param {string} id ID do registro.
|
|
312
312
|
* @param {ContactInput} contactInput
|
|
@@ -329,7 +329,7 @@ const ContactsApiFactory = function (configuration, basePath, axios) {
|
|
|
329
329
|
const localVarFp = (0, exports.ContactsApiFp)(configuration);
|
|
330
330
|
return {
|
|
331
331
|
/**
|
|
332
|
-
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`.
|
|
332
|
+
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`. **Permissão do Service Account:** `contacts.create`
|
|
333
333
|
* @summary Criar contato
|
|
334
334
|
* @param {ContactsApiCreateContactRequest} requestParameters Request parameters.
|
|
335
335
|
* @param {*} [options] Override http request option.
|
|
@@ -339,7 +339,7 @@ const ContactsApiFactory = function (configuration, basePath, axios) {
|
|
|
339
339
|
return localVarFp.createContact(requestParameters.contactInput, options).then((request) => request(axios, basePath));
|
|
340
340
|
},
|
|
341
341
|
/**
|
|
342
|
-
* Exige a permissão de excluir.
|
|
342
|
+
* Exige a permissão de excluir. **Permissão do Service Account:** `contacts.delete`
|
|
343
343
|
* @summary Excluir contato
|
|
344
344
|
* @param {ContactsApiDeleteContactRequest} requestParameters Request parameters.
|
|
345
345
|
* @param {*} [options] Override http request option.
|
|
@@ -349,7 +349,7 @@ const ContactsApiFactory = function (configuration, basePath, axios) {
|
|
|
349
349
|
return localVarFp.deleteContact(requestParameters.id, options).then((request) => request(axios, basePath));
|
|
350
350
|
},
|
|
351
351
|
/**
|
|
352
|
-
*
|
|
352
|
+
* **Permissão do Service Account:** `contacts.read`
|
|
353
353
|
* @summary Obter contato
|
|
354
354
|
* @param {ContactsApiGetContactRequest} requestParameters Request parameters.
|
|
355
355
|
* @param {*} [options] Override http request option.
|
|
@@ -359,7 +359,7 @@ const ContactsApiFactory = function (configuration, basePath, axios) {
|
|
|
359
359
|
return localVarFp.getContact(requestParameters.id, options).then((request) => request(axios, basePath));
|
|
360
360
|
},
|
|
361
361
|
/**
|
|
362
|
-
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos.
|
|
362
|
+
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos. **Permissão do Service Account:** `contacts.list`
|
|
363
363
|
* @summary Listar contatos
|
|
364
364
|
* @param {ContactsApiListContactsRequest} requestParameters Request parameters.
|
|
365
365
|
* @param {*} [options] Override http request option.
|
|
@@ -369,7 +369,7 @@ const ContactsApiFactory = function (configuration, basePath, axios) {
|
|
|
369
369
|
return localVarFp.listContacts(requestParameters.page, requestParameters.limit, requestParameters.sortBy, requestParameters.sortType, requestParameters.staffs, requestParameters.organization, requestParameters.search, requestParameters.emailsEmpty, requestParameters.phonesEmpty, requestParameters.lifeCycle, options).then((request) => request(axios, basePath));
|
|
370
370
|
},
|
|
371
371
|
/**
|
|
372
|
-
* Envie só os campos que mudam.
|
|
372
|
+
* Envie só os campos que mudam. **Permissão do Service Account:** `contacts.update`
|
|
373
373
|
* @summary Atualizar contato
|
|
374
374
|
* @param {ContactsApiUpdateContactRequest} requestParameters Request parameters.
|
|
375
375
|
* @param {*} [options] Override http request option.
|
|
@@ -386,7 +386,7 @@ exports.ContactsApiFactory = ContactsApiFactory;
|
|
|
386
386
|
*/
|
|
387
387
|
class ContactsApi extends base_1.BaseAPI {
|
|
388
388
|
/**
|
|
389
|
-
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`.
|
|
389
|
+
* O corpo não tem campo obrigatório fixo: o administrador da conta define quais são. `GET /api/customfields?feature=contact&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`. **Permissão do Service Account:** `contacts.create`
|
|
390
390
|
* @summary Criar contato
|
|
391
391
|
* @param {ContactsApiCreateContactRequest} requestParameters Request parameters.
|
|
392
392
|
* @param {*} [options] Override http request option.
|
|
@@ -396,7 +396,7 @@ class ContactsApi extends base_1.BaseAPI {
|
|
|
396
396
|
return (0, exports.ContactsApiFp)(this.configuration).createContact(requestParameters.contactInput, options).then((request) => request(this.axios, this.basePath));
|
|
397
397
|
}
|
|
398
398
|
/**
|
|
399
|
-
* Exige a permissão de excluir.
|
|
399
|
+
* Exige a permissão de excluir. **Permissão do Service Account:** `contacts.delete`
|
|
400
400
|
* @summary Excluir contato
|
|
401
401
|
* @param {ContactsApiDeleteContactRequest} requestParameters Request parameters.
|
|
402
402
|
* @param {*} [options] Override http request option.
|
|
@@ -406,7 +406,7 @@ class ContactsApi extends base_1.BaseAPI {
|
|
|
406
406
|
return (0, exports.ContactsApiFp)(this.configuration).deleteContact(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
|
|
407
407
|
}
|
|
408
408
|
/**
|
|
409
|
-
*
|
|
409
|
+
* **Permissão do Service Account:** `contacts.read`
|
|
410
410
|
* @summary Obter contato
|
|
411
411
|
* @param {ContactsApiGetContactRequest} requestParameters Request parameters.
|
|
412
412
|
* @param {*} [options] Override http request option.
|
|
@@ -416,7 +416,7 @@ class ContactsApi extends base_1.BaseAPI {
|
|
|
416
416
|
return (0, exports.ContactsApiFp)(this.configuration).getContact(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
|
|
417
417
|
}
|
|
418
418
|
/**
|
|
419
|
-
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos.
|
|
419
|
+
* Ordenação padrão: `fullname` crescente. Devolve só os registros ativos. **Permissão do Service Account:** `contacts.list`
|
|
420
420
|
* @summary Listar contatos
|
|
421
421
|
* @param {ContactsApiListContactsRequest} requestParameters Request parameters.
|
|
422
422
|
* @param {*} [options] Override http request option.
|
|
@@ -426,7 +426,7 @@ class ContactsApi extends base_1.BaseAPI {
|
|
|
426
426
|
return (0, exports.ContactsApiFp)(this.configuration).listContacts(requestParameters.page, requestParameters.limit, requestParameters.sortBy, requestParameters.sortType, requestParameters.staffs, requestParameters.organization, requestParameters.search, requestParameters.emailsEmpty, requestParameters.phonesEmpty, requestParameters.lifeCycle, options).then((request) => request(this.axios, this.basePath));
|
|
427
427
|
}
|
|
428
428
|
/**
|
|
429
|
-
* Envie só os campos que mudam.
|
|
429
|
+
* Envie só os campos que mudam. **Permissão do Service Account:** `contacts.update`
|
|
430
430
|
* @summary Atualizar contato
|
|
431
431
|
* @param {ContactsApiUpdateContactRequest} requestParameters Request parameters.
|
|
432
432
|
* @param {*} [options] Override http request option.
|