Skip to main content
CustomerX is a Brazilian customer success platform: it keeps your clients and their contacts, contracts and additives, journeys and tasks, support tickets, NPS and CSAT surveys, and computes indicators such as the health score and the churn risk of each client. This connector brings all of that to your Catalog, so you can analyze retention, revenue, satisfaction and the work of your CS team next to your other data.
The connector only reads data. It never creates, changes or deletes anything in CustomerX.

Configuring CustomerX as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the CustomerX option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

The connector uses the API token of a CustomerX user. To copy it:
  1. Log in to CustomerX with an administrator user. The API returns only what the token’s user can see, so a CSM’s token may leave out clients of other portfolios and other users’ task boards.
  2. Open the menu at the top right, click Ver Perfil (View profile) and copy the Api Token field.
The following configurations are available:
  • API Token: the token copied above. It stops working when its user is deactivated or the token is regenerated.
  • Start Date (advanced): only records changed on or after this date are extracted by the incremental streams (clients, contacts, contract additives, tasks, journey tasks, tickets, ticket activities and timeline events), and client health scores start at this date’s month. Leave it empty to extract the whole history.
  • Lookback Days (advanced): (Default: 1) how many days before the last extracted point each run reads again.
  • Full Refresh Days (advanced): (Default: 7) every this many days, the incremental streams of clients, contacts, contract additives, tasks, journey tasks and tickets read every record again. CustomerX may change tags, custom field values, labels, checklists or a client’s contract status without changing the record’s last update date; this refresh keeps those columns at most this many days behind. Set 0 to turn it off.
  • Max Requests per Minute (advanced): (Default: 40) how many requests per minute each run may make.
CustomerX limits each API token to 60 requests per minute on the Startup plan (120 on Growth, 240 on Scale and Enterprise), shared with every other integration that uses the same token. The default of 40 leaves room for them on any plan. If your plan allows more and the token is used only by Nekt, raise Max Requests per Minute to sync faster. When CustomerX signals the limit, the run waits and continues.
Once you’re done, click Next.

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.
Client Health Scores costs one request per client on every run: CustomerX answers the health score of one client at a time and has no way to ask for all clients at once. With 2,000 clients and the default pace of 40 requests per minute, that stream alone takes about 50 minutes per run. Leave it unselected if you do not use it. After the first run, each run asks every client only for the current and the previous month, so the requests stay one per client but are small.
The other streams cost about one request per 100 records the first time and much less afterwards.
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: Clients, Contacts, Contract Additives, Tasks, Journey Tasks, Tickets, Ticket Activities, Timeline Events and Client Health Scores support INCREMENTAL, which is the recommended type for them. Contracts, NPS and CSAT answers, the churn risk and the registers (users, segments, tags and others) are FULL_TABLE: they are read in full on every run, so their tables always show the current state. Read more about Sync Types here.
CustomerX has no way to list deleted records. An incremental table keeps a record deleted in CustomerX until the next full sync; a FULL_TABLE table drops it on the next run. Ticket Activities and Timeline Events are not part of the periodic re-read (Full Refresh Days): a full sync refreshes them.
Once you are done configuring, click Next.

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. Once a day is usually enough for customer success analysis; if you select Client Health Scores, make sure a run fits between two triggers. Optionally, you can define some additional settings:
  • 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.
  • Determine when to execute an Additional Full Sync. It reads every record again (removing records deleted in CustomerX from the incremental tables); a monthly one is enough.
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.
For you to be able to see it on your Catalog, you need at least one successful source run.
Before writing anything, each run checks that the token can read every selected stream: one request per stream, plus every active user’s task board for Board Steps and the client list and one client’s scores for Client Health Scores. If a full-table stream is not readable (for example, other users’ boards with a token that is not an administrator’s), the run stops before writing and the log lists the streams to deselect or the access to grant; an incremental stream that is not readable is skipped with a warning and its table is kept as it is.

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. Nested values (tags, phones, custom field values, labels, checklists) are JSON text. Records that have their own stream appear as ids in the others (for example client_id in contacts, tasks and tickets). Every timestamp is in UTC. Fields CustomerX returns that have no column yet are kept in extra_fields.

Fields by stream

Clients and contracts

Every client (customer account) managed in CustomerX, with address, status derived from its contracts, segment, group, line of business, portfolio, tags, phones and custom field values.Table: clients · Primary key: id · Sync: Incremental (updated_at)
People at each client, with role, phones and custom field values.Table: contacts · Primary key: id · Sync: Incremental (updated_at)
Contracts of each client: values, periods, plan, seller, renewal and cancellation.Table: contracts · Primary key: id · Sync: Full table
Amendments to contracts (upsells and downsells) with the value before and after each one.Table: contract_additives · Primary key: id · Sync: Incremental (updated_at)
Plans that contracts can be linked to.Table: contract_plans · Primary key: id · Sync: Full table

Surveys

Answers to NPS surveys: score, comment, send and answer dates, client and contact.Table: nps_responses · Primary key: id · Sync: Full table
Answers to CSAT surveys: score, comment, dates, client and the question answered.Table: csat_responses · Primary key: id · Sync: Full table
Questions of the CSAT surveys.Table: csat_questions · Primary key: id · Sync: Full table

Tasks, tickets and timeline

Tasks of the CSM task board, with client, responsible user, schedule, completion and labels.Table: tasks · Primary key: id · Sync: Incremental (updated_at)
Tasks of the clients’ journeys, with the journey step they belong to, responsible user, schedule, completion and checklists.Table: journey_tasks · Primary key: id · Sync: Incremental (updated_at)
Support tickets with type, priority, status, agent, deadlines, client and contact.Table: tickets · Primary key: id · Sync: Incremental (updated_at)
Activities logged on tickets.Table: ticket_activities · Primary key: id · Sync: Incremental (updated_at)
Events of the clients’ timelines (new contracts, changes, notes).Table: timeline_events · Primary key: id · Sync: Incremental (updated_at)

Indicators

Monthly health score history of every client, one row per client and month. The current month is dated the day it was read and changes until the month closes. Costs one request per client on every run.Table: client_health_scores · Primary key: client_id, reference_month · Sync: Incremental (date)
Churn risk CustomerX currently assigns to each client.Table: clients_churn_risk · Primary key: external_id_client · Sync: Full table

Registers

Users of your CustomerX account (CSMs and administrators).Table: users · Primary key: id · Sync: Full table
Lists (steps) of each active user’s CSM task board. Users marked inactive in CustomerX are skipped.Table: board_steps · Primary key: id · Sync: Full table
Journey templates the clients’ journeys are created from.Table: journey_templates · Primary key: id · Sync: Full table
Client segments.Table: segments · Primary key: id · Sync: Full table
Client groups.Table: groups · Primary key: id · Sync: Full table
Lines of business (ramos de atividade) of the clients.Table: services · Primary key: id · Sync: Full table
Portfolios (carteiras) grouping clients and the users who handle them.Table: portfolios · Primary key: id · Sync: Full table
Sellers linked to contracts.Table: sellers · Primary key: id · Sync: Full table
Tags available to clients and tasks.Table: tags · Primary key: id · Sync: Full table
Products linked to journeys and contracts.Table: products · Primary key: id · Sync: Full table
Types of contact.Table: contact_types · Primary key: id · Sync: Full table
Definitions of the custom fields of clients and contacts. Their values are in the custom_attributes column of clients and contacts.Table: custom_fields · Primary key: type_operation, id · Sync: Full table