> ## 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.

# Active Campaign as a data source

> Bring data from Active Campaign to Nekt.

ActiveCampaign is a customer experience automation platform that provides email marketing, marketing automation, and CRM tools to help businesses connect and engage with their customers.

## Configuring Active Campaign 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 Active Campaign 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 Active Campaign **URL** and **API Key** for this connection. You can find it in your Active Campaign account settings, under the "Developer" tab. Once you have it, add the account access and click **Next**.

**Advanced settings:**

* **Start Date** (optional): The earliest record date to sync.
* **Extract contact custom fields** (optional): When enabled, makes an additional call per contact to include custom field values. Useful when you have many contacts and custom fields; custom fields do not support incremental replication.
* **Extract deal custom fields** (optional): When enabled, makes an additional call per deal to include custom field values. Useful when you have many deals and custom fields; custom fields do not support incremental replication.

### 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

Below you'll find all available data streams from Active Campaign and their corresponding fields. **Deals** and **Deal Groups** appear only when your account has access to the Deals API; otherwise they are omitted from the stream list.

<AccordionGroup>
  <Accordion title="Deals">
    Stream for managing deals, representing sales opportunities with contacts.

    <Warning>
      **Deals Full vs. Partial Access:**
      When configuring the Deals stream, you have two access levels:

      * **Partial Access:** Syncs a limited set of fields, ideal for a quick overview. The replication key is not available, so only full syncs are supported.
      * **Full Access:** Syncs all available deal fields, providing comprehensive data for in-depth analysis. The `mdate` (modification date) is used as the replication key, allowing for incremental syncs.

      In order to have full access, the authenticated user needs to have `Manage pipeline` permission.
    </Warning>

    **Key Fields (Full Access):**

    * `id` - Unique identifier for the deal.
    * `title` - The title or name of the deal.
    * `owner` - The ID of the user who owns the deal.
    * `contact` - The ID of the primary contact associated with the deal.
    * `organization` - The ID of the organization associated with the deal.
    * `stage` - The ID of the current stage in the pipeline.
    * `value` - The monetary value of the deal.
    * `currency` - The currency of the deal's value.
    * `status` - The current status of the deal (0=Open, 1=Won, 2=Lost).
    * `cdate` - The date the deal was created.
    * `mdate` - The date the deal was last modified.

    **Additional Fields (Full Access):**
    `hash`, `group`, `description`, `percent`, `nextdate`, `nexttaskid`, `winProbability`, `winProbabilityMdate`, `activitycount`, `nextdealid`, `edate`, `isDisabled`, `account`, `customerAccount`, and `links` to related entities.
  </Accordion>

  <Accordion title="Contacts">
    Stream for managing contacts, the individuals you communicate with.

    **Key Fields:**

    * `id` - Unique identifier for the contact.
    * `email` - The primary email address of the contact.
    * `firstName` - The first name of the contact.
    * `lastName` - The last name of the contact.
    * `phone` - The phone number of the contact.
    * `orgid` - The ID of the organization the contact belongs to.
    * `cdate` - The date the contact was created.
    * `udate` - The date the contact was last updated.

    **Additional Fields:**
    `orgname`, `segmentio_id`, `bounced_hard`, `bounced_soft`, `bounced_date`, `ip`, `ua`, `hash`, `socialdata_lastcheck`, `email_local`, `email_domain`, `sentcnt`, `rating_tstamp`, `gravatar`, `deleted`, `anonymized`, `adate`, `edate`, `deleted_at`, `created_utc_timestamp`, `updated_utc_timestamp`, `created_timestamp`, `updated_timestamp`, `created_by`, `updated_by`, `mpp_tracking`, `last_click_date`, `last_open_date`, `last_mpp_open_date`, `best_send_hour`, `scoreValues`, `accountContacts`, `links`, and `organization`.
    If `extract_contact_custom_fields` is enabled, it also includes `customFields`.
  </Accordion>

  <Accordion title="Deal Groups">
    Stream for managing deal groups, which are pipelines containing stages.

    **Key Fields:**

    * `id` - Unique identifier for the deal group.
    * `title` - The name of the deal group (pipeline).
    * `color` - The color code for the deal group.
    * `order` - The display order of the deal group.
    * `cdate` - The date the deal group was created.
    * `udate` - The date the deal group was last updated.

    **Additional Fields:**
    `group`, `width`, `dealOrder`, `cardRegion1`, `cardRegion2`, `cardRegion3`, `cardRegion4`, `cardRegion5`, and `links` to related entities.
  </Accordion>

  <Accordion title="Campaigns">
    Stream for managing marketing campaigns.

    **Key Fields:**

    * `id` - Unique identifier for the campaign.
    * `name` - The name of the campaign.
    * `type` - The type of campaign (e.g., 'email', 'sms').
    * `status` - The status of the campaign.
    * `cdate` - The date the campaign was created.
    * `sdate` - The date the campaign was sent.

    **Metrics:**

    * `opens` - Total number of opens.
    * `uniqueopens` - Number of unique opens.
    * `linkclicks` - Total number of link clicks.
    * `uniquelinkclicks` - Number of unique link clicks.
    * `unsubscribes` - Number of unsubscribes.

    **Additional Fields:**
    A wide range of fields related to campaign settings, tracking, and performance metrics like `userid`, `segmentid`, `send_amt`, `total_amt`, `hardbounces`, `softbounces`, and `links`.
  </Accordion>

  <Accordion title="Fields">
    Stream for managing custom fields available for contacts and deals.

    **Key Fields:**

    * `id` - Unique identifier for the custom field.
    * `title` - The name of the custom field.
    * `type` - The type of the field (e.g., 'text', 'dropdown').
    * `descript` - A description of the field.
    * `isrequired` - Whether the field is mandatory.
    * `cdate` - The date the field was created.
    * `udate` - The date the field was last updated.

    **Additional Fields:**
    `perstag`, `defval`, `show_in_list`, `rows`, `cols`, `visible`, `service`, `ordernum`, `options`, `relations`, and `links`.
  </Accordion>
</AccordionGroup>

## Data Model

The following diagram illustrates the relationships between the core data streams in Active Campaign.

```mermaid theme={null}
graph TD;
    subgraph "Core Entities"
        Contacts("Contacts");
        Deals("Deals");
        DealGroups("Deal Groups (Pipelines)");
        Campaigns("Campaigns");
    end

    subgraph "Customization"
        Fields("Custom Fields");
    end

    Deals -- "contact" --> Contacts;
    Deals -- "group" --> DealGroups;

    Campaigns -- "Sends to" --> Contacts;
```

## Skills for agents

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

<Card title="Download Active Campaign skills file" icon="wand-magic-sparkles" href="/sources/active-campaign.md">
  Active Campaign connector documentation as plain markdown, for use in AI agent contexts.
</Card>
