The connector only reads data. It never creates, changes or deletes anything in Movidesk.
Configuring Movidesk as a Source
In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Movidesk option from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
The Movidesk API uses an API token, one per account. An administrator finds it in Movidesk under Configurações > Conta > Parâmetros, on the Ambiente tab, at the bottom of the page. If there is no token yet, click Gerar nova chave.- API Token: the token copied from Movidesk.
- Start Date: the earliest date synced on the first sync and on full syncs. Tickets last updated since this date are loaded (with all their actions, time appointments, clients, histories and additional fields), and so are the survey answers given since it. People, services, hour contracts, activities and survey questions are always loaded whole.
- Requests per Minute (advanced, default 10): how many requests per minute this source may send to Movidesk. Keep 10 unless Movidesk support raised your account’s limit.
2. Select streams
Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.Tip: The stream can be found more easily by typing its name.Select the streams and click Next.
3. Configure data streams
Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.- Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
- Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
- Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
- Sync Type: keep the suggested type. The ticket tables and Survey Responses are Incremental: each sync reads only what changed since the previous one and merges it into the table. The other tables are Full table: each sync reads them whole and replaces the table.
4. Configure data source
Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Tickets are read incrementally, so an hourly or daily sync works well. Optionally, you can configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here. Once you are ready, click Next to finalize the setup.5. Check your new source
You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.Streams and Fields
Available streams
The table below lists every stream, its slug (the exact identifier to pass when creating the source via API) and a short description.
The ticket tables join on
ticket_id = tickets.id. People join on persons.id with the *_id reference codes (owner_id, created_by_id, ticket_clients.id…), and services on services.id = tickets.service_first_level_id. Survey answers join on survey_responses.ticket_id and survey_responses.question_id = survey_questions.id.
Fields by stream
Fields marked String (JSON) hold a nested object or list as JSON text; use your warehouse’s JSON functions to read them. Dates and times are in UTC.Tickets
Tickets
Tickets last updated since the Start Date (first sync and full syncs), with their status, service, SLA dates and counters, owner, clients, histories and additional fields. Each sync reads the tickets changed since the previous one.Table:
tickets · Primary key: id · Sync: Incremental (last_update)Ticket Actions
Ticket Actions
The conversation of each ticket: every action (message, internal note, email) with its author and expenses. Deleted actions are kept and marked with
is_deleted.Table: ticket_actions · Primary key: ticket_id, id · Sync: Incremental (ticket_last_update)Ticket Time Appointments
Ticket Time Appointments
Hours logged by agents on the actions of each ticket.Table:
ticket_time_appointments · Primary key: ticket_id, action_id, id · Sync: Incremental (ticket_last_update)Ticket Clients
Ticket Clients
The clients (people, companies or departments) of each ticket, with their organization. Clients removed from a ticket are kept and marked with
is_deleted.Table: ticket_clients · Primary key: ticket_id, id · Sync: Incremental (ticket_last_update)Ticket Status Histories
Ticket Status Histories
Every status a ticket went through, numbered from the oldest, with how long it stayed in each one.Table:
ticket_status_histories · Primary key: ticket_id, position · Sync: Incremental (ticket_last_update)Ticket Owner Histories
Ticket Owner Histories
Every agent responsible for a ticket, numbered from the oldest, with how long each one held it.Table:
ticket_owner_histories · Primary key: ticket_id, position · Sync: Incremental (ticket_last_update)Ticket Custom Field Values
Ticket Custom Field Values
Values of the additional fields (campos adicionais) of each ticket, one row per field and line.Table:
ticket_custom_field_values · Primary key: ticket_id, custom_field_id, custom_field_rule_id, line · Sync: Incremental (ticket_last_update)Persons
Persons
People, companies and departments registered in Movidesk, clients and agents alike.Table:
persons · Primary key: id · Sync: Full tableServices
Services
The service catalog: the services (and sub-services) a ticket can be classified under.Table:
services · Primary key: id · Sync: Full tableTime Agreements
Time Agreements
Hour contracts (contratos de horas) registered in Movidesk.Table:
time_agreements · Primary key: id · Sync: Full tableActivities
Activities
Activities agents can log time against.Table:
activities · Primary key: id · Sync: Full tableSurvey Questions
Survey Questions
Questions of the satisfaction surveys.Table:
survey_questions · Primary key: id · Sync: Full tableSurvey Responses
Survey Responses
Answers to the satisfaction surveys given since the Start Date (first sync and full syncs). Each sync reads the answers given since the previous one.Table:
survey_responses · Primary key: id · Sync: Incremental (response_date)Implementation Notes
Data Quality Considerations
- How tickets stay up to date. Movidesk moves a ticket’s last update date whenever anything changes in it (a new action, a status or owner change, an edited field). Each sync reads the tickets updated since the previous one, minus 2 hours to cover Movidesk’s own replication delay, and loads each one whole: the ticket and all its rows in the other ticket tables. A ticket updated while a sync runs is read by the next sync.
- One read for all ticket tables. The ticket tables are read together in a single pass. When you add a ticket table to an existing source, the next sync reads every ticket since the Start Date again, so the new table gets the full history.
- Older history. Movidesk serves tickets updated in the last 90 days from one place and older tickets from an archive refreshed once a day. A first sync or a full sync with an older Start Date reads both; incremental syncs only read the recent tickets. The archive can still hold an older version of a ticket updated since; both versions are read and the tables keep the most recent one. Rows that only exist in the older version (for example, an additional field that no longer applies) stay in the child tables.
- Long histories are read in steps. Tickets are read 30 days at a time, oldest first. On the first sync and on a full sync, the sync only counts as done when every period was read: if it stops halfway, the next sync starts it again. When a source catches up after a long pause, each period is saved as it goes, and a sync that stops halfway continues from the last period saved. On a table set to Full table, everything is read before anything is saved, so the table is never replaced by part of the data.
- One ticket table failing does not stop the others. If one ticket table cannot be prepared, it is shown as failed and the other ticket tables are still updated. Rows that Movidesk sends without their identifier are left out, and the sync log says so.
- Deleted data. Actions and clients removed from a ticket stay in the tables with
is_deletedset to true. Time appointments, expenses and attachments removed from an action, and tickets deleted in Movidesk, are not reported by the API and stay in the tables as they were last loaded. People deleted in Movidesk disappear from Persons on the next sync. - Additional fields. Movidesk only sends the additional fields whose display rule currently applies to a ticket. A value whose rule stops applying stays in Ticket Custom Field Values as last loaded.
- Action text.
ticket_actions.descriptionis the plain text of each action; Movidesk does not send the HTML version in ticket lists. - Full table tables are never half updated. The connector reads all the data of a table before writing any of it. If Movidesk fails while it is read, nothing of that table is sent and the sync shows it as failed. A full table table that suddenly comes back empty is not emptied either: the sync fails for that table. If the data really was removed in Movidesk, run a full sync of the source to accept it.
- Features not available to the token. If Movidesk refuses the token access to an area (for example, satisfaction surveys or hour contracts not enabled for your account), or answers with an error when the sync checks it, the tables of that area are shown as failed with a message saying so, and the other tables keep syncing.
- Survey answers. Each sync reads the answers again from one day before the previous sync, so answers that show up late in Movidesk are not missed.
API Limits & Performance
- Movidesk allows 10 requests per minute per account from 07:00 to 19:00 (Brasília time), shared by every integration using the token. The connector sends at most the configured Requests per Minute (10 by default) and, when Movidesk asks it to wait, waits and tells you in the sync log.
- Tickets are read up to 100 per request. At 10 requests per minute, a first sync of 10,000 tickets takes about 11 minutes of requests and 100,000 tickets about 2 hours. If the first sync fails, the next one starts it again.
- Persons, services, hour contracts, activities and survey questions are read whole on every sync: about one request per 500 people, so 20,000 people add about 4 minutes to each sync.