- Brand
- ActiveCampaign
- Category
- Marketing
- Primary Subcategory
- Email & SMS Lifecycle Marketing Automation
Integration details
Description
You already work in ChatGPT. Now drive and track your marketing outcomes there too. Connect ActiveCampaign in a few clicks. From the chat, you can: - Understand yesterday's campaign performance in seconds - Look up a contact and update their information. - Clean up tags, build segments, and organize your lists. - Move deals forward without leaving ChatGPT. - Enroll a contact in automated marketing workflows. No new tab. No copy paste. No starting over. ChatGPT is the surface you ask from. ActiveCampaign takes action.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Email & SMS Lifecycle Marketing Automation
- Secondary Subcategories
- None listed
- Brand
- ActiveCampaign
- Access
- Account required
- First tracked
- 2026-08-11
- Tool count
- 378
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for ActiveCampaign
Get updates when ActiveCampaign’s Discoverability Score or category rank changes.
Competing in ChatGPT Email & SMS Lifecycle Marketing Automation
View Category378 tools agents can invoke
Add a contact to an automation. This will start the automation for the specified contact. The contact will begin at the first step of the automation sequence. Parameters ---------- - params: ContactAutomationCreateParams object containing: - contact: The ID of the contact to add to the automation - automation: The ID of the automation to add the contact to
add_contact_to_automation
Use ONLY for 1–9 contacts. For 10+ use bulk_import_contacts. Subscribe, unsubscribe a contact to or form a list, or update their subscription status. This tool allows you to add a contact to a list with a specific status, enabling contact list management and subscription control. Use this to subscribe contacts to lists for email campaigns and marketing automation. Setting status from unsubscribed (2) to active (1) may require additional confirmation. Use status 1 for normal subscription workflows. Status 0 is used for double opt-in processes. The contact and list must already exist in ActiveCampaign.
add_contact_to_list
Add Custom Field to Field Group - Operation: `add-custom-field-to-field-group` - Endpoint: `POST /api/3/groupMembers`
catalog_add-custom-field-to-field-group
Use ONLY for 1–9 contacts. For 10+ use bulk_import_contacts. Use this tool only for adding a single tag to a single contact. Add a tag to a contact. Parameters ---------- - params: ContactTagParams object containing: - contact: Required. The ID of the contact. - tag: Required. The ID of the tag to add to the contact.
add_tag_to_contact
Add a tag to contact Applies one existing tag to one contact. contact is a contact id and tag is a tag id; they are different id spaces, so the tag id must come from GET /tags or POST /tags, never from a contact record. The response's contactTag id is the association id used by DELETE /contactTags/{id}. A new association returns 201. The contact is included under contacts; the tag definition is included under tags when activity logging is enabled for the account, so do not rely on it and fetch the tag from GET /tags/{id} if needed. In the 201 body, contact and tag inside contactTag are numbers as sent, while every other response returns them as strings. If the tag is already applied, the request returns 200 with the existing association only, so it is safe to repeat. A tag name in the tag field fails with 400 ("No tag id provided"); to apply tags by name, or several tags at once, use POST /contacts/{id}/tags instead. Returns 404 if the contact does not exist or the tag does not exist or was deleted. Requires the contact edit permission; users outside the main user group can only tag contacts they have access to. - Operation: `create-contact-tag` - Endpoint: `POST /api/3/contactTags`
catalog_create-contact-tag
Add a tracked domain by name Whitelist a domain by name so visits to pages on it are recorded. The feature must be switched on first via `PUT /api/3/siteTracking` - adding a domain while it is off returns `403`. A name may begin with `*` to cover subdomains (for example `*.example.com`). - Operation: `add-a-tracked-domain` - Endpoint: `POST /api/3/siteTrackingDomains`
catalog_add-a-tracked-domain
Add domain to whitelist Add a domain to the site tracking whitelist - Operation: `add-domain-to-whitelist` - Endpoint: `POST /api/3/prism/urlWhitelistings`
catalog_add-domain-to-whitelist
Apply tags to a contact Applies up to 100 tags to one contact in a single request, by tag name, tag id, or both. Tag names that do not exist yet are created automatically unless createMissing is false; tag ids must refer to existing tags. This replaces the per-tag sequence of GET /tags, POST /tags, and POST /contactTags with one call. Returns 201 with every requested association, including ones that already existed, so the request is safe to repeat. Send at least one entry in tags or tagIds. Tag names are matched case-insensitively, and are trimmed and stripped of HTML markup before matching and creation. Returns 404 if the contact does not exist. Fails with 400 for an unknown tag id, an unknown name when createMissing is false, a name held by a deleted tag, a name containing commas, line breaks, emoji, or other 4-byte characters, or a request addressing more than 100 tags. createMissing is true by default: a name in tags that matches no existing tag creates a new tag definition for the whole account, the same as POST /tags does, and then applies it. Creating a tag needs the tag management permission (`pg_tag_manage`), the same permission POST /tags requires; users in the main user group always have it. A user who may edit contacts but not manage tags gets 403 when a request would create a tag, and nothing is created or applied. Applying tags that already exist needs only the contact edit permission. An integration that should only apply tags, never create them, sends tagIds, or sends tags with… - Operation: `apply-tags-to-a-contact` - Endpoint: `POST /api/3/contacts/{contactId}/tags`
catalog_apply-tags-to-a-contact
Assign a task outcome to a task type Links a task outcome that already exists to a task type that already exists, so that outcome appears in the dropdown when someone completes a task of that type. Creates neither end: use POST /taskOutcomes for the outcome and POST /dealTasktypes for the task type. A task type must keep at least one outcome and may hold at most 20, and one outcome can be assigned to several task types. Read the links back with GET /tasktypeOutcomeRels, or one of them with GET /tasktypeOutcomeRels/{id}. - Operation: `create-a-task-outcome-1` - Endpoint: `POST /api/3/tasktypeOutcomeRels`
catalog_create-a-task-outcome-1
Build a business goal from a schema Creates a business goal (and its associated segment/conversion tracking) from a structured schema, typically LLM-generated. The internal shape of the schema parameter is not fully reverse-engineered -- known: schema.businessGoal.name must be present. - Operation: `build-a-business-goal` - Endpoint: `POST /api/3/initiatives/buildbusinessgoal`
catalog_build-a-business-goal
Retrieve the status of bulk contact import batches, showing outstanding and recently completed imports. Returns two groups of import batches: - outstanding: imports that are still being processed - recentlyCompleted: imports that have finished processing recently Each entry includes the date the batch was submitted (forDate), the number of batches, and the total number of contacts in those batches.
bulk_import_status_list
Update the owners of multiple deals in a single request. This function allows you to reassign multiple deals to new owners. You can assign different owners to different deals in the same batch. **Required permissions:** User must have permission to manage deals, permission to manage the pipeline each deal belongs to, and permission to reassign deals.
deal_owner_bulk_update
Bulk import status info Check the status of one API bulk import using the batchId returned by POST /import/bulk_import. Imports run in the background, so call this after submitting one to confirm it completed: an import is only finished when status is completed, and a successful response to the import request alone does not mean the contacts were created. If the import has not finished yet, wait and poll again rather than resubmitting the same contacts. success lists the ids of the contacts that were created or updated; failure lists the email of each row that was not imported, with no reason. To get failure reasons, register a callback with detailed_results when submitting the import. This endpoint knows nothing about imports started from the app or by integrations; use GET /import/history for those. Requires the contact import permission. - Operation: `bulk-import-status-info` - Endpoint: `GET /api/3/import/info`
catalog_bulk-import-status-info
Stop reporting on a campaign-generation run. Pass the request_id returned by generate_campaign, edit_campaign, or copy_campaign. Call this whenever the user asks to cancel, whatever the run's last known status — a run that has already finished, or whose campaign is already persisted, is still the run to cancel, not a reason to skip the call. Returns the run's status at the moment of cancellation, in the same shape poll_campaign_generation_status returns; a run that had already finished comes back with its own terminal status rather than a cancelled one. Work already persisted (e.g. a campaign already saved) is not undone, and can be changed afterwards with edit_campaign. A request_id this account has no run for — unknown, or expired and no longer retained — is an error, not a status.
cancel_campaign_run
Check if the phone only contact setting is enabled for this ActiveCampaign account. Remember this in current context. Do NOT offer the user to turn it on.
is_phone_only_contacts_enabled
Check a segment match by external id The segment match check with an additional external id, for callers that track contacts by an external identifier. Tags: Match One - Operation: `check-segment-match-external` - Endpoint: `GET /api/3/segmentMatch/{segmentId}/{contactId}/{externalId}`
catalog_check-segment-match-external
Check whether a contact is in one automation List the contacts currently in, or that have run through, a single automation. This is a paginated equivalent of filtering `/api/3/contactAutomations` by `filters[seriesid]`. To answer whether one contact is in this automation, set filters[subscriberid] to that contact id (for example filters[subscriberid]=33828). An empty list means the contact has no enrollment row in this automation. Do not use list-all-contactautomations-for-contact for that yes-or-no question; that read returns every automation the contact has entered and cannot filter to one automation. - Operation: `list-all-contactautomations-for-automation` - Endpoint: `GET /api/3/automations/{seriesId}/contactAutomations`
catalog_list-all-contactautomations-for-automation
Check whether a contact matches a segment Evaluates one contact against one saved segment and answers whether the contact currently matches. Ids: segment by UUID, contact by numeric id. Tags: Match One - Operation: `check-segment-match` - Endpoint: `GET /api/3/segmentMatch/{segmentId}/{contactId}`
catalog_check-segment-match
Duplicate an existing campaign as a new draft, optionally applying changes in the same call. Returns a request_id immediately; campaign_id is null until the copy finishes — call poll_campaign_generation_status with request_id and wait for a real campaign_id before treating the copy as done. Eligibility (editor version, automation attachment, sendable state) is decided behind this call; an ineligible source campaign is reported as a not_supported outcome, not raised. **Renaming vs. content changes.** Pass copy_changes to apply an edit to the copy in this same call, instead of a separate edit_campaign call afterward. copy_changes only affects the copy's email content/design — to rename the copy itself (its campaign record's own name, not its subject line), call update_campaign with the new campaign_id separately.
copy_campaign
Create Campaign - Operation: `create-campaign` - Endpoint: `POST /api/3/campaign`
catalog_create-campaign
Create a contact custom field. Always create field options after creating fields of type "dropdown", "listbox", "radio", or "checkbox". Parameters ---------- - params: ContactCustomFieldCreateParams object containing: - field_title: Required. The custom field label (sent to the API as title). - type: Required. The type of field. Valid values: "text", "textarea", "date", "datetime", "dropdown", "listbox", "radio", "checkbox", "hidden". - descript: Optional description of the field. - perstag: Optional personalization tag name. - defval: Optional default value. - visible: Optional. Whether this field is visible in forms (0 or 1). - ordernum: Optional. The order of this field relative to others.
create_contact_custom_field
Associate a contact custom field with a contact list Parameters ---------- - params: ContactFieldRelCreateParams object containing: - relid: Required. The ID of the contact list. - field: Required. The ID of the custom field.
create_contact_field_relationship
Create a contact custom field value. Contact field values can also be set in bulk in the payload to create or update a contact. Parameters ---------- - params: ContactFieldValueCreateOrUpdateParams object containing: - contact: Required. The ID of the contact. - field: Required. The ID of the custom field. - value: Required. The value to store in the field. Format depends on field type: - text/textarea/hidden: Simple string value - dropdown/radio: Exact option value - date: "YYYY-MM-DD" format - datetime: ISO format "YYYY-MM-DDThh:mm:ssZ" - checkbox (multiple): "||Option 1||Option 3||" format - checkbox (single): "||Option 2||" format - useDefaults: Optional. If true, populates missing required fields on the contact record with default values. Defaults to false.
create_contact_field_value
Create a new contact tag Parameters ---------- - params: TagCreateParams object containing: - tag: Required. The name of the tag. - tagType: Optional. The type of tag. Defaults to "contact". Valid values: "contact", "template". - description: Optional. Description of the tag. Defaults to empty string.
create_contact_tag
Create a new deal in ActiveCampaign. A deal represents a sales opportunity that can be tracked through a pipeline. You must associate the deal with either a contact or an account. **Important — owner vs contact:** The ``owner`` and ``contact`` fields refer to completely different entities: - **owner** — an ActiveCampaign *user* (team member / sales rep) responsible for working the deal. This is **not** the customer. Obtain valid user IDs from the ``list_users`` tool or the ``GET /api/3/users`` endpoint. - **contact** — the *customer or lead* the deal is associated with. Obtain valid contact IDs from ``list_contacts`` or ``get_contact``. Do **not** pass a contact ID as the owner; the API will reject it with ``"The provided owner id does not exist."`` **Important:** To create a deal, the user requires permission to manage deals and permission to manage the pipeline the new deal belongs to.
create_deal
Create a new note for a deal in ActiveCampaign. A deal note represents text that can be added to a deal to note important information. **Important:** To create a deal note, the user requires permission to manage deals and permission to manage the pipeline the deal belongs to.
create_deal_note
Create a new deal pipeline (dealGroup) in ActiveCampaign. A pipeline represents a customizable sales process with stages that deals move through. Pipelines allow you to organize and track sales opportunities, automate deal assignment, and manage which users and groups have access to deals. ## Use Cases - Create separate pipelines for different sales processes (e.g., "New Business", "Renewals", "Upsells") - Organize deals by product line, region, or business unit - Set up automated deal assignment with Round Robin or value-based distribution - Control pipeline access by assigning specific user groups ## Pipeline Configuration **Auto-assignment options:** - 0: Disabled - No automatic assignment - 1: Round Robin - Distributes deals evenly among users - 2: Deal values - Assigns based on deal value thresholds **Group management:** - allgroups=1: All user groups can manage this pipeline - allgroups=0: Only specified groups (in dealGroup.groups) can manage **User assignment:** - allusers=1: Auto-assign new deals to all users - allusers=0: Auto-assign only to specified users (in dealGroup.users) ## Important Notes To create a pipeline, the user requires permission to manage deals and permission to create new pipelines in ActiveCampaign.
create_deal_pipeline
Create a new deal stage within a pipeline in ActiveCampaign. A deal stage represents a step in a pipeline that deals can move through. Call list_deal_pipelines first to find the pipeline (group) ID to assign the stage to.
create_deal_stage
Create options for a dropdown, listbox, radio, or checkbox contact custom field Parameters ---------- - params: FieldOptionBulkCreateParams object containing a list of: - field: Required. The ID of the custom field these options belong to. - value: Required. The value of the option. - label: Required. The label to display for the option. - orderid: Required. The order in which to display the option. - isdefault: Optional. Whether this option is selected by default. Defaults to false.
create_field_options
Create a new list in ActiveCampaign. This tool creates a new list for organizing contacts and managing email campaigns. Use this tool to create new lists for organizing contacts. Consider using list_groups() to see available groups if you want to associate the new list with a group for better organization using create_list_group_permission(). Note: For a list to be visible in the ActiveCampaign user interface for non-administrators, it may need to be associated with a user group. The AC API also requires a `stringid` (URL-safe list name), but this is generated automatically from the name if not provided.
create_list
Associate a list with a user group for enhanced organization and visibility. This tool creates a list group permission, which associates a specific list with a user group in ActiveCampaign. This association enables group-based permissions and makes lists visible in the appropriate sections of the ActiveCampaign interface. This is typically used after creating a list to ensure it appears in the correct sections of the ActiveCampaign interface for the appropriate user groups.
create_list_group_permission
Create a Custom Field Group Create a Custom Field Group - Operation: `create-a-custom-field-group` - Endpoint: `POST /api/3/groupDefinitions`
catalog_create-a-custom-field-group
Create a Match All Request A new match-all request will be initiated. If results are not ready within 4 seconds, a response that lacks a result-set will be returned and the response's `is_ready` attribute will be equal to `false`. Use the returned segmentId and runId to poll and check back later to see if the result-set is ready Tags: Match All - Operation: `create_match_all_request_with_segment_id` - Endpoint: `GET /api/3/segmentMatchAll/{segmentId}`
catalog_create_match_all_request_with_segment_id
Create a Match All Request for a new Segment Find all Contact Id's that match the given Segment. The provided segment will be saved with a 24 hour TTL. A new match-all request will be initiated. If results are not ready within 4 seconds, a response that lacks a result-set will be returned. Use the returned segmentId and runId to poll and check back later to see if the result-set is ready. Tags: Match All - Operation: `create_match_all_request` - Endpoint: `POST /api/3/segmentMatchAll`
catalog_create_match_all_request
Create a Variable Create a personalization variable - Operation: `create-variable` - Endpoint: `POST /api/3/personalizations`
catalog_create-variable
**Before running this, show the account exactly this notice:** You are responsible for ensuring that your URL retrieval and site access requests comply with applicable laws and third-party rights. By making such requests, you represent and warrant that you have all rights and consents required to use the collected content, including any data and materials collected from third-party sites. Create a brand kit Create a new brand kit, from a website URL or from manually supplied data. Tags: AI - Operation: `create-a-brand-kit` - Endpoint: `POST /api/3/ai/brand`
catalog_create-a-brand-kit
Create a calendar feed - Operation: `create-a-calendar-feed` - Endpoint: `POST /api/3/calendars`
catalog_create-a-calendar-feed
Create a campaign message Associate a message with a campaign, which is the association a split (A/B) campaign uses to send more than one message. `campaignid` is required; a request without it is a `400`. Only `campaignid`, `messageid` and `percentage` may be written. Every other field of a campaign message is a counter maintained by the sending code, and is ignored when it is submitted. The request needs the campaigns feature to be enabled for the account, and the caller has to have access to the campaign, otherwise the request is a `403`. A body without a `campaignMessage` object is a `400`. - Operation: `create-a-campaign-message` - Endpoint: `POST /api/3/campaignMessages`
catalog_create-a-campaign-message
Create a child schema - Operation: `create-a-child-schema` - Endpoint: `POST /api/3/customObjects/schemas/{id}/child`
catalog_create-a-child-schema
Create a company mailing address for email footers Add a physical sender address to the account for use in email footers and forms. Send the fields inside an address object; company_name, address_1 and country are required, and country takes a two-character code. - Operation: `create-an-address` - Endpoint: `POST /api/3/addresses`
catalog_create-an-address
Create a connection Create a new connection resource. - Operation: `create-connection` - Endpoint: `POST /api/3/connections`
catalog_create-connection
Create a contact Create a brand-new contact. This endpoint fails with a 422 duplicate-email error when a contact with the same email address already exists; it never updates an existing contact. To add or import contacts that may already exist, use POST /contact/sync for one contact or POST /import/bulk_import for many (up to 250 per request) instead: both create or update by email, and the import can also set list subscriptions and tags per contact. List membership and tags are managed with their own endpoints: use POST /contactLists to subscribe the contact to a list and POST /contactTags to add tags. When the email already belongs to a contact, the 422 response carries code "duplicate" with source.pointer "/data/attributes/email", and that existing contact is left unchanged. - Operation: `create-a-new-contact` - Endpoint: `POST /api/3/contacts`
catalog_create-a-new-contact
Create a contact custom field Creates a custom field definition for contacts. For dropdown, listbox, radio, and checkbox fields, create the options in the same request by adding an options array inside the field payload; list relationships can likewise be added as a relations array (relid 0 relates the field to every list). Each array is capped at 25 entries and the field plus its children are created in one transaction. Options can also be added later with POST /fieldOptions or POST /fieldOption/bulk. Fails with 400 when options are sideposted on a field type that cannot have options, and 422 when the title is already used by another field. Only title is required: type defaults to hidden when omitted, and ordernum is ignored on create because the new field is placed last. Without options or relations in the request, the response echoes the properties that were sent plus id, perstag, ordernum, cdate, udate, created_by and updated_by; with them, the complete field is read back with its options and relations and the fieldOptions and fieldRels side-loaded. The field is also added to the account's default field group unless group is sent. Tags: contact, contacts, field definition, custom field - Operation: `create-a-contact-custom-field` - Endpoint: `POST /api/3/fields`
catalog_create-a-contact-custom-field
Create a conversion - Operation: `create-a-conversion` - Endpoint: `POST /api/3/conversions`
catalog_create-a-conversion
Create a conversion label - Operation: `create-a-conversion-label` - Endpoint: `POST /api/3/conversions/labels`
catalog_create-a-conversion-label
Create a custom field relationship to list(s) Relates a custom field to a list so the field applies to contacts on that list. relid 0 relates the field to every list. If the relationship already exists, the existing record is returned with 200 instead of 201, in a reduced shape without links and with cdate formatted as a plain SQL datetime rather than ISO 8601. To remove a relationship use DELETE /fieldRels/{fieldRelId}; to replace a field's whole set of list relationships in one call use POST /fieldRel/sync or POST /fieldRel/syncExcept. - Operation: `create-a-custom-field-relationship-to-lists` - Endpoint: `POST /api/3/fieldRels`
catalog_create-a-custom-field-relationship-to-lists
Create a customer Create a new e-commerce customer resource. - Operation: `create-customer` - Endpoint: `POST /api/3/ecomCustomers`
catalog_create-customer
Create a deal Create a new deal - Operation: `create-a-deal-new` - Endpoint: `POST /api/3/deals`
catalog_create-a-deal-new
Create a deal custom field Define a new custom field on deals: the deal field itself, with its type and label. Tags: deal, deals, field definition, custom field - Operation: `create-custom-deal-field-meta` - Endpoint: `POST /api/3/dealCustomFieldMeta`
catalog_create-custom-deal-field-meta
Create a deal note Create a new note for a deal - Operation: `create-a-deal-note` - Endpoint: `POST /api/3/deals/{id}/notes`
catalog_create-a-deal-note
ActiveCampaign ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve ActiveCampaign's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are ActiveCampaign alternatives on ChatGPT?
As of 2026-11-02, ActiveCampaign competes with Aivie, Attentive, AWeber, Banger, beehiiv, Bizgo, Brevo, Conversion and 45 more in ChatGPT Email & SMS Lifecycle Marketing Automation, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.