Skip to main content
SenseData is a Brazilian Customer Success platform. It consolidates a company’s customers, contracts, billing, product usage and support history into a single view of each account, scores that account with indicators such as Sense Score, Engagement Score and NPS, and drives the CS team’s work through playbooks, tasks and portfolio journeys. The connector extracts that whole operation — the accounts and the people in them, the commercial and financial history, the daily indicators, the team’s activity, and the survey answers behind the scores — so you can analyse retention and expansion in your Lakehouse. Each SenseData environment issues its own API key, and the key is what identifies the environment: there is no subdomain or instance setting to fill in.

Configuring SenseData as a Source

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

1. Add account access

SenseData authenticates with an API key generated inside the platform. In SenseData, go to Configurações, open Acessos, and then Gerenciador de Chave API. Copy the key from there.
Generating a new key replaces the current one. Every other integration still using the old key loses access immediately, so check whether a key already exists before creating another.
Keys belong to a single environment. If your company has more than one SenseData environment, each one needs its own key and its own source in Nekt.
The following configurations are available:
  • API key: the key copied from Gerenciador de Chave API. Required.
  • Initial sync date: the earliest date to read from. Leave it empty to read the full history of every table except KPIs — that one always reads a bounded window and starts two years back when this is empty.
  • Page size: how many records are requested per page. SenseData allows up to 1000, which is the default and the fastest option.
  • Requests per minute: how fast this source may call the API. SenseData allows 500 calls per minute per key, and that allowance is shared with every other integration using the same key, so the default of 300 leaves room for them. Set it to 0 to remove the limit.
  • KPI window (days): how many days of KPI history each request covers. SenseData computes one KPI value per customer per indicator per day, so the default of 1 keeps each request small. Raise it to load history faster if your account has few customers.
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.
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: you can choose between INCREMENTAL and FULL_TABLE.
    • Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
    • Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
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. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). 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. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
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.

Things to know

Nested data is stored as JSON text. Columns whose shape depends on your own configuration — custom_fields on customers, contacts and tasks, data on custom data, answers on form answers, lanes on journeys, and params and actions on rules — are stored as JSON strings rather than as nested columns, so a change in your SenseData configuration never breaks the table. Parse them in a Query when you need the individual values. The embedded customer and user blocks become plain columns. Where SenseData nests a customer, a user or a status inside a record, the connector unpacks it into customer_id, customer_cnpj, owner_email, status_description and so on, so you can filter and join on them directly. KPIs are read a day at a time. SenseData refuses to page deeply into the KPI history and asks for a narrower date filter instead, so the connector walks that history in windows. If the KPIs table ever fails with a message about pagination, lower the KPI window or set a more recent initial sync date. Support tickets and form answers are always full syncs. Neither exposes a timestamp that moves when the record changes, so an incremental read would freeze every ticket in the state it had when first seen. A module outside your plan skips its table, it does not fail the run. If SenseData refuses a stream because the module behind it is not part of your plan, the run log says which stream was skipped and the extraction carries on. That table simply is not updated, so check the run log before concluding a table is empty.

Streams and Fields

Below you’ll find all available data streams from SenseData and their corresponding fields. API reference: SenseData API documentation.

Available streams

Fields by stream

The accounts SenseData tracks — the table every other stream joins back to. Includes the lifecycle stage, the assigned CS analyst and manager, and the churn date and reason once an account is cancelled.Primary key: id
The customer statuses configured in your environment. enabled marks which of them SenseData counts as active.Primary key: id
Notes written on a customer’s timeline. Deleted notes keep coming back from the API, so filter on deleted for reporting.Primary key: id
What each key inside the custom_fields JSON column means, for customers, contacts and tasks. Read this table to interpret those columns.Primary key: identity, name
The people registered against each customer, with their role, contact details and whether they are the account’s main sponsor.Primary key: id
Contract line items. One contract produces one row per item, numbered by item_sequence. Unlike other entities, SenseData does not treat id_legacy as the unique key here — id is.Primary key: id
The contract statuses configured in your environment.Primary key: id
Financial documents raised against a customer: what was invoiced, when it falls due, and when it was paid.Primary key: id
The billing statuses configured in your environment, with the weight SenseData gives each one when it computes billing indicators.Primary key: id
The activities the Customer Success team carries out on an account — the core of the workload. Includes which playbook or rule generated the task, who owns it, and both the planned and actual dates.Primary key: id
The task statuses configured in your environment.Primary key: id
The task types configured in your environment.Primary key: id
The task priorities configured in your environment.Primary key: id
Check-in and check-out events recorded in the SenseData mobile app during field visits, with the coordinates and the distance travelled.Primary key: id
Tasks that were deleted, with the task body as it stood at deletion. SenseData notes that references inside a deleted task come back empty when the entity they pointed at no longer exists.Primary key: deleted_task_id
The playbooks that generate a sequence of tasks on an account.Primary key: id
One row per customer, per indicator, per day — Sense Score, Engagement Score, NPS, overdue invoices and any custom indicator your team defined. This is the widest table in the connector.Primary key: id_customer, ref_date, type_id
The definition of every indicator computed in your environment. Join it to the KPIs table on type_id.Primary key: id
Free-form records your team pushes into SenseData for use in rules and indicators. Every custom data type shares one physical table, which is why type is what separates them.Primary key: id
The names of the custom data types defined in your environment, one row each.Primary key: type
Product-usage events per customer, end user, module and action, with how many times each action happened on the day.Primary key: id
Daily licence and session totals per customer: how many users are registered, how many were active, how many were contracted, and how long the product was used.Primary key: id
NPS survey answers, with the score, the classification into detractor, neutral or promoter, and the respondent’s comment.Primary key: id
The forms configured in SenseData, including the ones that collect NPS.Primary key: id
Answers submitted to open (non-NPS) forms. The answers themselves stay as JSON, because the shape depends on how each form was built.Primary key: id_legacy
Support tickets imported into SenseData from your helpdesk, with the SLA date each one is measured against.Primary key: id
The portfolio journeys configured in your environment, with their phases.Primary key: id
Which customers are currently in which journey, and in which phase.Primary key: id
Every movement of a customer between journey phases, and who moved them.Primary key: id
Notes written against a customer while they are in a journey.Primary key: id
The people with a SenseData login — your own analysts and managers, not your customers.Primary key: id
The automation rules: what SenseData watches for and what it does when the condition is met.Primary key: id