Skip to main content
DataCrazy is a Brazilian CRM with a built-in multi-attendance inbox for WhatsApp, Instagram and other channels. This connector reads your DataCrazy account through its public API and brings your leads and deals with their custom fields, activities, pipelines and stages, the CRM catalogs (tags, lists, products, loss reasons, attendants), your connections, and your conversations with their messages.
The connector only reads data. It never creates, changes or deletes anything in DataCrazy.

Configuring DataCrazy as a Source

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

1. Add account access

The connector signs in with a DataCrazy API key. In DataCrazy, go to Configurações > Chaves de API (or open crm.datacrazy.io/config/api), click Criar nova chave, give the key a name (for example, “Nekt”) and, if you want, an expiration date. Copy the key right away: DataCrazy shows it only once.
API access requires the DataCrazy Essential plan or higher. DataCrazy allows 60 requests per minute for each API route, and 20 per minute for conversations. Create a key used only by Nekt, so that other integrations don’t slow down your syncs (or the other way around).
The following configurations are available:
  • API Token: The DataCrazy API key.
  • Start Date: Earliest activity read on the first sync (and on a full sync) by the incremental tables: Conversation Messages reads the conversations with messages since this date, and Lead History and Lead Notes the leads with activity since this date. Leads, deals, activities, conversations and the catalogs are always read in full. A recent date keeps the first sync short.
  • API URL (advanced, optional): Address of the DataCrazy API. Leave the default (https://api.g1.datacrazy.io) unless DataCrazy support gave your account another address.
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).
Do not schedule an Additional Full Sync for this source, and avoid running a full sync of Conversation Messages: DataCrazy only returns the most recent messages of each conversation, so a full sync replaces the messages kept from earlier syncs with what can be read now. Leads, deals and the other full table streams are already read in full on every sync.
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.
Lead History and Lead Notes are read one lead at a time, so they are not selected by default, and they are best-effort: each sync reads them only for leads with recent activity, so a note added to a lead that had no other change is only picked up when that lead or one of its deals changes (see the implementation notes). The first sync reads every lead active since the Start Date, about 48 leads per minute.
The first sync of Conversation Messages, Lead History and Lead Notes reads everything active since the Start Date in one go, so a recent date keeps it short. Later syncs spend at most about two and a half hours on these tables, oldest activity first; if that is not enough (for example, after the source was paused for a long time), the sync still succeeds, says how many conversations or leads are left, and the next syncs continue right after the last one read.

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.

Fields by stream

CRM

Leads (contacts and companies) of the CRM, with their tags, lists, addresses, channel contacts, purchase metrics and custom fields.Table: leads · Primary key: id · Sync: Full table
Deals (negócios) with their stage, lead, attendant, status, values, products and custom fields.Table: businesses · Primary key: id · Sync: Full table
Scheduled activities (tasks, calls, meetings) with their lead, deal, attendant and type.Table: activities · Primary key: id · Sync: Full table
Sales pipelines (funnels) of the account.Table: pipelines · Primary key: id · Sync: Full table
Stages of each pipeline, in order.Table: pipeline_stages · Primary key: id · Sync: Full table
Tags that can be applied to leads and deals.Table: tags · Primary key: id · Sync: Full table
Lead lists of the account.Table: lists · Primary key: id · Sync: Full table
Product catalog used in deals.Table: products · Primary key: id · Sync: Full table
Reasons a deal can be marked as lost.Table: business_loss_reasons · Primary key: id · Sync: Full table
Users who work in the CRM.Table: attendants_crm · Primary key: id · Sync: Full table
Timeline of each lead (stage moves, changes, events). Not selected by default and best-effort: read one lead at a time, only for leads with recent activity (see the implementation notes).Table: lead_history · Primary key: id · Sync: Incremental · Replication key: created_at
Comments written on each lead. Not selected by default and best-effort: read one lead at a time, only for leads with recent activity (see the implementation notes).Table: lead_notes · Primary key: id · Sync: Incremental · Replication key: created_at

Multiatendimento (conversations)

WhatsApp, Instagram and other channels connected to the account. Only the fields listed below are extracted: connection settings, which can hold credentials, never are.Table: instances · Primary key: id · Sync: Full table
Users who answer conversations.Table: attendants_multi · Primary key: id · Sync: Full table
Conversations of the multi-attendance inbox, with contact, connection, department and current attendance.Table: conversations · Primary key: id · Sync: Full table
Messages of each conversation, sent and received, including internal notes and attachments.Table: conversation_messages · Primary key: id · Sync: Incremental · Replication key: created_at

Implementation notes

  • Full table streams. The DataCrazy API has no “updated since” filter: leads and deals can only be filtered by creation date, activities by their scheduled date, and conversations not by date at all. So leads, deals, activities, conversations and the catalogs are read in full on every sync, which also drops deleted records. If one that had records suddenly comes back empty, that stream fails instead of loading an empty table; run a full sync of the source if the data really was removed in DataCrazy. On GCP (BigQuery) destinations the table then keeps its data; on AWS, a stream that fails can still leave its table empty until the next successful sync. If one comes back with far fewer records than the previous sync, the sync loads it and shows a warning.
  • Large accounts. The API pages through at most 10,000 records per list. Beyond that, the connector reads leads and deals in creation-date ranges, activities in scheduled-date ranges and conversations by status (and by connection within a status). It then compares what it read with the total DataCrazy reports. Records without a date that the filters can use are looked for at the top of the list; if some still cannot be read, that table’s sync stops with an error instead of loading it incomplete (a difference of a few records, as when records are deleted during the sync, only shows a warning).
  • Conversation messages. Each sync reads the messages of the conversations with activity since the previous sync (re-reading the last 2 hours). DataCrazy returns only the most recent messages of a conversation (as of 2026-11, reportedly the latest 20), so when a conversation receives more messages between two syncs than the API returns, the oldest of them may be missing. Whenever the connector cannot confirm it reached the previous sync’s messages (including a conversation with exactly 20 new messages), the sync log says how many conversations may be affected. Schedule the source to run often (for example, every hour) to avoid this. Edits and deletions of messages already loaded are not picked up.
  • Lead history and notes (best-effort). DataCrazy cannot list history or notes across leads, and does not say when a lead was last updated, so these tables are read only for leads that were created, updated or bought since the previous sync (re-reading the last day), or whose deals were created, moved or changed status since then. A note written on a lead that had no other change is not loaded until that lead or one of its deals changes. A full sync of these tables keeps only the entries of the leads active since the Start Date.
  • Long syncs of messages and lead history/notes. The first sync (and a full sync) reads everything active since the Start Date. After that, each sync reads these tables oldest activity first, with a limit of about two and a half hours of requests. When the limit is reached, the sync succeeds with a warning saying how many conversations or leads are left, and the next syncs continue right after the last conversation or lead read in full; conversations and leads with new activity in the meantime are read too.
  • Rate limit. The connector reads one request at a time and stays under the limits DataCrazy documents (60 requests per minute per route, 20 for conversations). When DataCrazy asks it to wait, it waits and says so in the sync log.
  • Permissions. Before reading anything, the connector checks that the API key can read the CRM and the multi-attendance module (only the ones your selected streams need). A module your plan or key cannot read is skipped with a warning naming its tables, and the other streams still load.
  • Fields. Nested objects and lists (tags, addresses, products, custom fields, attachments) are stored as JSON text, and the most used parts are also unpacked into their own columns. Any field DataCrazy returns that is not listed here is kept in the extra_fields column, as JSON with the original field names, except in Connections, which only ever loads the fields listed for it. Values and amounts keep their exact decimals.

Troubleshooting