> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nekt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Exact Sales as a data source

> Bring data from Exact Sales (Exact Spotter) to Nekt.

Exact Sales is a Brazilian sales engagement and pre-sales (SDR) platform. Its product, Exact Spotter, structures the pre-sales process with lead qualification scripts, call tracking, and meeting scheduling between SDRs and sales reps. This connector extracts leads, meetings, calls, qualifications, sales, and configuration data from the Exact Spotter API.

The connector supports both generations of the product. Your account belongs to exactly one of them, and its token only works there:

* **Spotter V2 (current)** — the default option, covering the modern Exact Spotter platform.
* **Spotter V1 — API v3 (legacy)** — for accounts still on the previous generation.

Each generation exposes its own set of streams, listed below.

## Configuring Exact Sales as a Source

In the [Sources](https://app.nekt.ai/sources) tab, click on the "Add source" button located on the top right of your screen. Then, select the Exact Sales option from the list of connectors.

Click **Next** and you'll be prompted to add your access.

### 1. Add account access

You'll need your Exact Spotter API token for this connection. In Exact Spotter, go to **Settings > Integrations** and copy the **Token Exact API** value. The token is account-level (one per company) and is only visible to manager users.

<Warning>Generating a new token invalidates the previous one, which breaks any integration still using it. Reuse the existing token whenever possible.</Warning>

The following configurations are available:

* **Token Exact API**: The company token used to authenticate against the Exact Spotter API.
* **API Generation**: Select **Spotter V2 (current)** — the default — or **Spotter V1 — API v3 (legacy)**, matching the generation of your account. If unsure, your Exact Sales account manager can confirm it.
* **Initial sync date**: The earliest date from which records will be synced. Records created or updated after this date will be extracted from the source.

Once you're done, click **Next**.

### 2. Select streams

Choose which data streams you want to sync - you can select all streams or pick specific ones that matter most to you.

> 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 a name for each table (which will contain the fetched data) and the type of sync.

* **Table name**: we suggest a name, but feel free to customize it. You have the option to add a **prefix** 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](https://docs.nekt.com/runs/scheduling-and-triggers), 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 determine when to execute a [full sync](https://docs.nekt.com/get-started/core-concepts/types-of-sync#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](https://app.nekt.ai/sources) page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.

<Warning>For you to be able to see it on your [Catalog](https://app.nekt.ai/catalog), you need at least one successful source run.</Warning>

# Streams and Fields

## Streams — Spotter V2 (default)

The table below lists every Spotter V2 stream, its **slug** (the exact identifier to pass when creating the source via API) and a short description. Streams marked incremental sync based on the date field in parentheses.

| Stream                      | Slug                          | Description                                                                        |
| --------------------------- | ----------------------------- | ---------------------------------------------------------------------------------- |
| Leads                       | `leads`                       | Leads with company data and funnel stage. Incremental (`updateDate`).              |
| Leads and Persons           | `leads_and_persons`           | Leads together with their contacts. Incremental (`updateDate`).                    |
| Meetings                    | `meetings`                    | Meeting schedulings and their statuses. Incremental (`registerDate`).              |
| Pending Feedbacks           | `pending_feedbacks`           | Meetings with pending feedback.                                                    |
| Boxes                       | `boxes`                       | Sales reps' availability slots for scheduling.                                     |
| Meeting Settings            | `meeting_settings`            | Company meeting scheduling settings (single record).                               |
| Calls History               | `calls_history`               | History of calls. Incremental (`startDate`).                                       |
| Calls Results               | `calls_results`               | Types of call results.                                                             |
| Transcriptions              | `transcriptions`              | Call transcriptions with summaries. Incremental (`createdAt`).                     |
| Qualification Histories     | `qualification_histories`     | Filter applications with questions and answers. Incremental (`qualificationDate`). |
| Answers                     | `answers`                     | Qualification questionnaires per funnel stage.                                     |
| Scores                      | `scores`                      | Score entries received by pre-sales reps. Incremental (`scoreDate`).               |
| Qualification Temperatures  | `qualification_temperatures`  | Qualification temperatures used in evaluations.                                    |
| Leads Sold                  | `leads_sold`                  | Sales with values and products. Incremental (`saleDate`).                          |
| Losts                       | `losts`                       | Discarded leads with stage, reason, and date. Incremental (`date`).                |
| Transfer History            | `transfer_history`            | Lead transfers between pre-sales reps. Incremental (`createdAt`).                  |
| Bonus                       | `bonus`                       | Bonuses received by pre-sales reps. Incremental (`bonusDate`).                     |
| Goals                       | `goals`                       | Goals of pre-sales and sales reps per period.                                      |
| Custom Fields               | `custom_fields`               | Definitions of lead custom fields.                                                 |
| Custom Fields Organizations | `custom_fields_organizations` | Definitions of organization custom fields.                                         |
| Leads Custom Fields         | `leads_custom_fields`         | Custom field values filled in on leads.                                            |
| Organizations Custom Fields | `organizations_custom_fields` | Custom field values filled in on organizations.                                    |
| Organizations               | `organizations`               | Organizations (companies) registered. Incremental (`updateDate`).                  |
| Stages                      | `stages`                      | Funnel stages configured for the company.                                          |
| Funnels                     | `funnels`                     | Sales funnels of the company.                                                      |
| Groups                      | `groups`                      | User groups with their members.                                                    |
| Sources                     | `sources`                     | Lead sources and sub-sources.                                                      |
| Industries                  | `industries`                  | Industries (markets) configured.                                                   |
| Cities                      | `cities`                      | Locations (city, state, country) in the base.                                      |
| Discard Reasons             | `discard_reasons`             | Discard reasons configured.                                                        |
| Products                    | `products`                    | Active products of the company.                                                    |
| Recommended Products        | `recommended_products`        | Products suggested to leads.                                                       |
| Pain Points                 | `pain_points`                 | Pain points registered for leads.                                                  |
| SDRs                        | `sdrs`                        | Pre-sales reps registered in the system.                                           |
| Sellers                     | `sellers`                     | Sales reps of the company.                                                         |
| Tasks                       | `tasks`                       | Activities registered. Incremental (`updatedAt`).                                  |
| Tasks Types                 | `tasks_types`                 | Activity types available.                                                          |

<Note>Spotter V2 has no company-wide contacts endpoint, so contacts are extracted through the Leads and Persons stream. The connector automatically respects the Spotter V2 rate limit of 30 requests per 20 seconds.</Note>

### Fields by stream (Spotter V2)

<AccordionGroup>
  <Accordion title="Leads">
    Leads registered in Exact Spotter.

    * `id` - Unique identifier for the lead
    * `lead` - Company name of the lead
    * `registerDate` / `updateDate` - Creation and last update timestamps (incremental replication key)
    * `stage` - Current funnel stage
    * `funnelId` - Funnel the lead belongs to
    * `cnpj`, `website`, `phone1`, `phone2`, `telephones` - Company identification and contact data
    * `street`, `cep`, `number`, `complement`, `district`, `city`, `state`, `country` - Address
    * `leadProduct`, `description`, `mktLink`, `publicLink` - Sales context
    * `closingForecastDate` - Forecast closing date of the deal
    * `integrationId` - External CRM identifier
    * `source`, `subSource`, `industry`, `sdr`, `salesRep` - Related entities (JSON objects)
  </Accordion>

  <Accordion title="Leads and Persons">
    Leads together with their contacts — the way to extract all contacts on Spotter V2.

    * Same lead fields as the Leads stream, plus `ddiPhone1`/`ddiPhone2`
    * `persons` - Contacts of the lead (JSON array of objects with id, email, name, jobTitle, phones, messaging platform, and main contact flag)
  </Accordion>

  <Accordion title="Meetings">
    Meeting schedulings and their statuses.

    * `id` - Unique identifier for the meeting record
    * `type` - Status: Vigente, Reagendada, Cancelada, Concluído, or NaoOcorreu
    * `registerDate` - When the record was created (incremental replication key)
    * `meetingType` - Presencial, Online, or Telefone
    * `meetingDate`, `startTime`, `finalTime` - Meeting schedule
    * `managerDescription`, `sdrDescription`, `reference` - Notes
    * `meetingFeedbackUrl`, `score`, `qualificationDate` - Meeting feedback data
    * `lead`, `salesRep`, `user` - Related entities (JSON objects)
  </Accordion>

  <Accordion title="Pending Feedbacks">
    Meetings with pending feedback.

    * `meetingId` - Identifier of the meeting awaiting feedback
    * `leadId` / `leadName` - Lead of the meeting
    * `stageId` / `stageName` - Current funnel stage of the lead
    * `sellerId`, `sellerName`, `sellerLastName` - Sales rep of the meeting
    * `date` - Date of the meeting
  </Accordion>

  <Accordion title="Boxes">
    Sales reps' availability slots (boxes) for meeting scheduling.

    * `id` - Unique identifier for the box
    * `start` / `end` - Slot window
    * `salesRep` / `salesRepEmail` - Sales rep the slot belongs to
    * `status` - available or busy
    * `typeMeeting` - on site, web, or call
    * `description`, `address` - Slot details
    * `leadId` - Lead occupying the slot, when busy
  </Accordion>

  <Accordion title="Meeting Settings">
    Company meeting scheduling settings (single record).

    * `meetingBoxInterval` - Display interval of meeting boxes, in minutes
    * `businessHoursEnabled` - Whether the company uses business hours
    * `companyBusinessHours` - Company business hours per weekday (JSON array)
    * `userBusinessHours` - Business hours of each sales rep (JSON array)
  </Accordion>

  <Accordion title="Calls History">
    History of calls made through Exact Spotter.

    * `id` - Unique identifier for the call
    * `leadId` / `leadName` - Lead called
    * `stage`, `funnelId` - Lead position at the time of the call
    * `ddi`, `caller`, `called` - Phone numbers
    * `startDate` (incremental replication key) / `endDate` - Call window
    * `price`, `talkingDurationSeconds`, `result`, `callAnswered`, `manualSet` - Call outcome
    * `description`, `audio` - Notes and recording URL
    * `userId`, `userEmail`, `userName`, `userLastName` - User who made the call
  </Accordion>

  <Accordion title="Calls Results">
    Types of call results.

    * `id` - Unique identifier for the call result type
    * `value` - Name of the call result type
  </Accordion>

  <Accordion title="Transcriptions">
    Call transcriptions with summaries and key points.

    * `id` - Unique identifier for the transcription
    * `leadId` - Lead the transcription belongs to
    * `callId` / `conferenceId` - Transcribed call or conference
    * `createdAt` - When the transcription was created (incremental replication key)
    * `transcription` - Transcription payload (JSON string with summary, timestamped speech segments, and key points)
  </Accordion>

  <Accordion title="Qualification Histories">
    Filter (qualification) applications with questions and answers.

    * `leadId`, `stageId`, `stage`, `funnelId` - Lead and stage of the qualification
    * `cycle` - Lead cycle of the qualification
    * `score` - Qualification obtained
    * `qualificationDate` - When it was registered (incremental replication key)
    * `meetingDate` - Related meeting date, when any
    * `questionAnswers` - Questions and answers given (JSON array)
  </Accordion>

  <Accordion title="Answers">
    Qualification questionnaires per funnel stage.

    * `order` - Position of the stage in the funnel
    * `stage` - Name of the funnel stage
    * `questions` - Questions with possible answers (JSON array)
  </Accordion>

  <Accordion title="Scores">
    Score entries received by pre-sales reps.

    * `id` - Unique identifier for the score entry
    * `leadId` - Lead the score refers to
    * `scoreDate` - When the score was received (incremental replication key)
    * `score` - Score value
    * `stage`, `funnelId`, `inbox` - Context of the score
    * `sdr` - Pre-sales rep who received it (JSON object)
  </Accordion>

  <Accordion title="Qualification Temperatures">
    Qualification temperatures used in evaluations.

    * `id` - Unique identifier for the temperature
    * `order` - Ranking of the temperature
    * `description` - Description (e.g. Quente, Fria)
  </Accordion>

  <Accordion title="Leads Sold">
    Sales with values and products.

    * `id` - Unique identifier for the sale
    * `leadId` - Sold lead
    * `saleDate` - When the sale happened (incremental replication key)
    * `saleStage`, `cycle` - Lead position when sold
    * `totalDealValue` - Total value of the sale
    * `salesRep` - Sales rep who closed (JSON object)
    * `products` - Products sold with quantities, discounts, and values (JSON array)
  </Accordion>

  <Accordion title="Losts">
    Discarded leads with the discard stage, reason, and date.

    * `leadId` - Discarded lead
    * `stage`, `funnelId` - Position at the discard
    * `reason` - Discard reason
    * `date` - When the discard happened (incremental replication key)
  </Accordion>

  <Accordion title="Transfer History">
    Lead transfers between pre-sales reps.

    * `leadId` - Transferred lead
    * `stageId`, `funnelId` - Position at the transfer
    * `originUserId` / `destinationUserId` - Reps involved
    * `actionUserId` - User who performed the transfer
    * `createdAt` - When it happened (incremental replication key)
  </Accordion>

  <Accordion title="Bonus">
    Bonuses received by pre-sales reps.

    * `id` - Unique identifier for the bonus
    * `bonusDate` - When it was received (incremental replication key)
    * `bonus` - Amount received
    * `metricType` - 4 sale, 5 goal, 6 super-goal
    * `saleId` - Related sale, when bonus by sale
    * `sdr` - Pre-sales rep (JSON object)
  </Accordion>

  <Accordion title="Goals">
    Goals of pre-sales reps and sales reps per period.

    * `period` - Day, Month, or Commercial Month
    * `start` / `end` - Goal period window
    * `listSdrs` / `listSellers` - Goals and achievements per rep: schedules, calls, minutes, sales, score (JSON arrays)
  </Accordion>

  <Accordion title="Custom Fields / Custom Fields Organizations">
    Definitions of the custom fields registered for leads and organizations.

    * `id` - Unique identifier for the custom field
    * `name` / `key` - Name and slug of the field
    * `type` - Texto, TextoLongo, Numero, EscolhaUnica, EscolhaMultipla, or Link
    * `required`, `uniqueValue`, `maxLength`, `format` - Validation rules
    * `onlyApi` - Whether the field can only be filled through the API (leads only)
    * `options` - Available answers for choice fields (JSON array)
  </Accordion>

  <Accordion title="Leads Custom Fields / Organizations Custom Fields">
    Custom field values filled in on leads and organizations.

    * `id` - Identifier of the custom field (parent field for choice types)
    * `key` - Slug of the custom field
    * `value` - Answer for text, long text, and number fields
    * `leadId` / `organizationId` - Record the value belongs to
    * `registerDate` / `updateDate` - When the value was filled in and last edited
    * `type` - Type of the custom field
    * `options` - Selected answers for choice fields (JSON array)
  </Accordion>

  <Accordion title="Organizations">
    Organizations (companies) registered in Exact Spotter.

    * `id` - Unique identifier for the organization
    * `name` - Organization name
    * `registerDate` / `updateDate` - Creation and last update timestamps (incremental replication key)
    * `cpfCnpj`, `website`, `publicLink` - Identification
    * `street`, `number`, `complement`, `neighborhood`, `zipCode`, `city`, `state`, `country` - Address
    * `registrationUserId` - User who registered it
    * `phones` - Phone numbers (JSON array)
  </Accordion>

  <Accordion title="Stages">
    Funnel stages configured for the company.

    * `id` - Unique identifier for the stage
    * `value` - Name of the stage
    * `position` - Position in the funnel
    * `active` - Whether the stage is active
    * `funnelId` - Funnel the stage belongs to
    * `gateType` - Exit type: 1 Manual, 2 Filter, 3 Scheduling, 4 Sale
  </Accordion>

  <Accordion title="Funnels">
    Sales funnels of the company.

    * `id` - Unique identifier for the funnel
    * `value` - Name of the funnel
    * `active` - Whether the funnel is active
  </Accordion>

  <Accordion title="Groups">
    User groups of the company.

    * `id` - Unique identifier for the group
    * `value` - Name of the group
    * `listSeller` / `listSdr` - Members with email, userId, and createdAt (JSON arrays)
  </Accordion>

  <Accordion title="Sources">
    Lead sources and sub-sources configured for the company.

    * `id` - Unique identifier for the source
    * `value` - Name of the source
    * `type` - Type of the source
    * `default` - Whether it is the default source for integrations
    * `active` - Whether the source is active
    * `subSources` - Sub-sources with id, value, and active (JSON)
  </Accordion>

  <Accordion title="Industries">
    Industries (markets) configured for the company.

    * `id` - Unique identifier for the industry
    * `value` - Name of the industry
    * `active` - Whether the industry is active
  </Accordion>

  <Accordion title="Cities">
    Locations present in the company's base.

    * `city` - Name of the city
    * `state` - Name of the state
    * `country` - Name of the country
  </Accordion>

  <Accordion title="Discard Reasons">
    Discard reasons configured for the company.

    * `id` - Unique identifier for the discard reason
    * `value` - Name of the discard reason
    * `active` - Whether it is active
    * `createdAt` / `updatedAt` - Creation and last edit timestamps
  </Accordion>

  <Accordion title="Products">
    Active products of the company.

    * `id` - Unique identifier for the product
    * `value` - Price of the product
    * `description` - Name of the product
  </Accordion>

  <Accordion title="Recommended Products">
    Products recommended (suggested) to leads.

    * `leadId` - Lead the product is suggested to
    * `productId` - Identifier of the product
    * `quantity`, `labelValue`, `discountType`, `discountValue`, `amount` - Quantities and values
  </Accordion>

  <Accordion title="Pain Points">
    Pain points registered for the company's leads.

    * `id` - Unique identifier for the pain point
    * `leadId` - Lead the pain point belongs to
    * `value` - Name of the pain point
  </Accordion>

  <Accordion title="SDRs / Sellers">
    Pre-sales reps and sales reps of the company.

    * `id` - Unique identifier for the user
    * `name` / `lastName` - Name of the user
    * `email` - Email of the user
    * `ddi`, `phone`, `phone2` - Contact phones
    * `active` - Whether the user is active
  </Accordion>

  <Accordion title="Tasks">
    Activities registered for the company.

    * `id` - Unique identifier for the activity
    * `leadId` - Lead the activity belongs to
    * `title`, `note` - Description and notes
    * `dueDate`, `closedDate` - Due and completion dates
    * `activityTypeId` - Type of the activity
    * `timeNotification` - Minutes before the due date to notify
    * `userEmail`, `status` - Assignment and status
    * `createdAt` / `updatedAt` - Creation and last update timestamps (incremental replication key)
    * `contacts` - Linked contacts (JSON array)
    * `sdr` - Pre-sales rep (JSON object)
  </Accordion>

  <Accordion title="Tasks Types">
    Activity types available for the company.

    * `id` - Unique identifier for the activity type
    * `value` - Name of the activity type
    * `isCustom` - Whether it was created by the company or is a Spotter default
  </Accordion>
</AccordionGroup>

## Streams — Spotter V1 (API v3, legacy)

| Stream                  | Slug                      | Description                                                                            |
| ----------------------- | ------------------------- | -------------------------------------------------------------------------------------- |
| Leads                   | `leads`                   | Leads with company data and funnel stage. Incremental (`updateDate`).                  |
| Meetings                | `meetings`                | Meeting schedulings, reschedulings, and cancellations. Incremental (`registerDate`).   |
| Calls History           | `calls_history`           | History of calls. Incremental (`startDate`).                                           |
| Qualification Histories | `qualification_histories` | Lead qualification records with scores and answers. Incremental (`qualificationDate`). |
| Losts                   | `losts`                   | Discarded leads with stage, reason, and date. Incremental (`date`).                    |
| Persons                 | `persons`                 | Contacts of every lead in the company's base.                                          |
| Pain Points             | `pain_points`             | Pain points registered for leads.                                                      |
| Custom Fields           | `custom_fields`           | Definitions of the custom fields.                                                      |
| Leads Custom Fields     | `leads_custom_fields`     | Custom field values filled in on leads.                                                |
| Stages                  | `stages`                  | Funnel stages with their qualification questions.                                      |
| Calls Results           | `calls_results`           | Types of call results.                                                                 |
| Tasks                   | `tasks`                   | Activities registered for the company.                                                 |
| Tasks Types             | `tasks_types`             | Activity types available.                                                              |
| Boxes                   | `boxes`                   | Sales reps' availability slots.                                                        |

<Note>On Spotter V1, the Qualification Histories stream returns the qualification of every lead in the funnel stages, but only for each lead's current cycle — previous cycles are not returned by the API. The field composition of the V1 streams mirrors the V2 streams of the same name, with small differences documented in the connector.</Note>

## Skills for agents

<Snippet file="agent-skills-intro.mdx" />

<Card title="Download Exact Sales skills file" icon="wand-magic-sparkles" href="/sources/exact-sales.md">
  Exact Sales connector documentation as plain markdown, for use in AI agent contexts.
</Card>
