ActiveCampaign · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for ActiveCampaign API v3 Contacts API

37 actions 37 updates phrasing extends openapi/activecampaign-contacts-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for ActiveCampaign's API. It is a proposal applied on top of the contract, not a document ActiveCampaign publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 37 · first 16 shown; the file carries all of them

$.info
$.paths['/contacts'].get
$.paths['/contacts'].post
$.paths['/contact/sync'].post
$.paths['/contacts/{id}'].get
$.paths['/contacts/{id}'].put
$.paths['/contacts/{id}'].delete
$.paths['/contactLists'].post
$.paths['/contacts/{id}/contactAutomations'].get
$.paths['/contacts/{id}/scoreValues'].get
$.paths['/contacts/{id}/bounceLogs'].get
$.paths['/contacts/{id}/contactData'].get
$.paths['/contacts/{id}/contactGoals'].get
$.paths['/contacts/{id}/contactLists'].get
$.paths['/contacts/{id}/contactLogs'].get
$.paths['/contacts/{id}/contactDeals'].get

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for ActiveCampaign API v3 Contacts API
  version: 1.0.0
extends: openapi/activecampaign-contacts-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 36
- target: $.paths['/contacts'].get
  update:
    x-apievangelist-phrasing:
      intent: Search and filter contacts
      effect: read
      questions:
      - How do I find contacts in ActiveCampaign by email address or phone number?
      - Can I pull only the contacts that carry a certain tag or sit on a certain list?
      - Is there a way to list contacts created after a specific date, sorted by score?
      instructions:
      - text: Find the contact with email {email}.
        slots:
          email: query.email
      - text: List contacts on list {listid} that have tag {tagid}.
        slots:
          listid: query.listid
          tagid: query.tagid
      - text: Search my contacts for {search} and show only those created after {created_after}.
        slots:
          search: query.search
          created_after: query.filters[created_after]
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a new contact
      effect: write
      questions:
      - How do I add a brand-new contact to my account through the API?
      - What happens if I try to create a contact whose email already exists?
      instructions:
      - text: 'Create a new contact from these details: {contact}.'
        slots:
          contact: requestBody.contact
      - text: Add a new person to my contacts with the name and email I give you.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contact/sync'].post
  update:
    x-apievangelist-phrasing:
      intent: Create or update a contact by email
      effect: write
      questions:
      - Can I upsert a contact so it is created if new and updated if the email already exists?
      - Which call syncs a contact's data without me checking whether they exist first?
      instructions:
      - text: 'Sync this contact, creating or updating it by email: {contact}.'
        slots:
          contact: requestBody.contact
      - text: Upsert the contact record for the email in my payload and merge in the new fields.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Retrieve a contact
      effect: read
      questions:
      - How do I look up one contact's full record when I know its ID?
      - What details come back when I fetch a single contact?
      instructions:
      - text: Get contact {id}.
        slots:
          id: path.id
      - text: Show me the full record for contact ID {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an existing contact
      effect: write
      questions:
      - How do I change the name or phone on a contact I already have the ID for?
      - Can I edit an existing contact's details by its ID?
      instructions:
      - text: Update contact {id} with {contact}.
        slots:
          id: path.id
          contact: requestBody.contact
      - text: Change the phone number on existing contact {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a contact
      effect: destructive
      questions:
      - How do I permanently remove a contact from my account?
      - Is deleting a contact by ID reversible?
      instructions:
      - text: Delete contact {id}.
        slots:
          id: path.id
      - text: Remove the contact with ID {id} from my account entirely.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contactLists'].post
  update:
    x-apievangelist-phrasing:
      intent: Subscribe or unsubscribe a contact from a list
      effect: write
      questions:
      - How do I subscribe a contact to one of my mailing lists?
      - Can I unsubscribe someone from a single list without deleting them?
      instructions:
      - text: 'Set this contact''s list subscription status: {contactList}.'
        slots:
          contactList: requestBody.contactList
      - text: Unsubscribe the contact from the newsletter list using the list and contact IDs I give you.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/contactAutomations'].get
  update:
    x-apievangelist-phrasing:
      intent: List the automations one contact is in
      effect: read
      questions:
      - Which automations is a particular contact currently enrolled in?
      - Can I see every automation a given contact has entered?
      instructions:
      - text: Show the automations contact {id} is enrolled in.
        slots:
          id: path.id
      - text: List every automation that contact {id} has been added to.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/scoreValues'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a contact's score values
      effect: read
      questions:
      - What lead score does a specific contact currently have?
      - Can I read a contact's scoring values by contact ID?
      instructions:
      - text: Get the score values for contact {id}.
        slots:
          id: path.id
      - text: Show me how contact {id} is scored.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/bounceLogs'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a contact's email bounce logs
      effect: read
      questions:
      - Why are emails to a contact bouncing, and where can I see the bounce history?
      - Can I pull the bounce log for one contact?
      instructions:
      - text: Show the bounce logs for contact {id}.
        slots:
          id: path.id
      - text: Check whether emails to contact {id} have bounced.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/contactData'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a contact's data record
      effect: read
      questions:
      - Where do I get the extra contact data stored alongside a contact?
      - Can I fetch the contactData object for a single contact?
      instructions:
      - text: Get the contact data record for contact {id}.
        slots:
          id: path.id
      - text: Pull the stored contactData for contact {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/contactGoals'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the automation goals a contact reached
      effect: read
      questions:
      - Which automation goals has a contact hit so far?
      - Can I see a contact's goal completions?
      instructions:
      - text: List the goals for contact {id}.
        slots:
          id: path.id
      - text: Show which goals contact {id} has achieved.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/contactLists'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the lists a contact belongs to
      effect: read
      questions:
      - What mailing lists is a given contact subscribed to?
      - Can I check a contact's subscription status on each of my lists?
      instructions:
      - text: Show the list memberships for contact {id}.
        slots:
          id: path.id
      - text: Tell me which lists contact {id} is on.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/contactLogs'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a contact's activity logs
      effect: read
      questions:
      - Where can I see the activity log recorded for one contact?
      - Can I pull the contactLogs history for a contact?
      instructions:
      - text: Get the contact logs for contact {id}.
        slots:
          id: path.id
      - text: Show the logged history of contact {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/contactDeals'].get
  update:
    x-apievangelist-phrasing:
      intent: List deals where a contact is a secondary contact
      effect: read
      questions:
      - Which deals list a particular person as a secondary contact?
      - Can I see the contactDeals links for one contact?
      instructions:
      - text: List the contact-deal associations for contact {id}.
        slots:
          id: path.id
      - text: Show the deals contact {id} is attached to as a secondary contact.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/deals'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the deals owned by a contact
      effect: read
      questions:
      - What deals are in the pipeline for a specific contact?
      - Can I list the deals where a contact is the primary contact?
      instructions:
      - text: Get the deals for contact {id}.
        slots:
          id: path.id
      - text: Show the pipeline deals where contact {id} is the primary contact.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/fieldValues'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a contact's custom field values
      effect: read
      questions:
      - How do I read the custom field values filled in for a contact?
      - Can I see every custom field value one contact has?
      instructions:
      - text: Get the custom field values for contact {id}.
        slots:
          id: path.id
      - text: Show what custom fields are filled in on contact {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/geoIps'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a contact's geo-IP locations
      effect: read
      questions:
      - Where in the world has a contact opened emails or visited from, based on IP?
      - Can I pull the geo-IP records for one contact?
      instructions:
      - text: List the geo-IP records for contact {id}.
        slots:
          id: path.id
      - text: Show the locations tied to contact {id}'s IP addresses.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/notes'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the notes on a contact
      effect: read
      questions:
      - How do I read the notes my team has left on a contact?
      - Can I pull all notes attached to one contact?
      instructions:
      - text: Get the notes on contact {id}.
        slots:
          id: path.id
      - text: Show every note written about contact {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/organization'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a contact's organization
      effect: read
      questions:
      - Which organization is a contact linked to?
      - Can I look up the company record for a given contact?
      instructions:
      - text: Get the organization for contact {id}.
        slots:
          id: path.id
      - text: Show which company contact {id} belongs to.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/plusAppend'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a contact's Plus Append data
      effect: read
      questions:
      - Where do I find the Plus Append enrichment data for a contact?
      - Can I read the appended profile details for one contact?
      instructions:
      - text: Get the Plus Append data for contact {id}.
        slots:
          id: path.id
      - text: Show the appended social profile info for contact {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/trackingLogs'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a contact's tracking logs
      effect: read
      questions:
      - What tracked activity, like opens and site visits, is logged for a contact?
      - Can I see the tracking log for a contact using the contact id path?
      instructions:
      - text: Get the tracking logs for contact {id}.
        slots:
          id: path.id
      - text: Show the tracked activity recorded for contact {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/accountContacts'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a contact's account associations
      effect: read
      questions:
      - Which accounts is a contact associated with?
      - Can I list the account-contact links for one person?
      instructions:
      - text: List the account associations for contact {id}.
        slots:
          id: path.id
      - text: Show which accounts contact {id} is linked to.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{id}/automationEntryCounts'].get
  update:
    x-apievangelist-phrasing:
      intent: Count how often a contact entered automations
      effect: read
      questions:
      - How many times has a contact entered each automation?
      - Can I see automation entry counts for a single contact?
      instructions:
      - text: Get the automation entry counts for contact {id}.
        slots:
          id: path.id
      - text: Tell me how many times contact {id} has entered each automation.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contactAutomations'].get
  update:
    x-apievangelist-phrasing:
      intent: List all contact automation enrollments
      effect: read
      questions:
      - Can I list every contact-to-automation enrollment across my whole account?
      - Where do I get all contactAutomation records at once?
      instructions:
      - text: List all contact automation enrollments in my account.
      - text: Show every contactAutomation record across all contacts.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contactAutomations'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a contact to an automation
      effect: write
      questions:
      - How do I drop a contact into an automation through the API?
      - Can I enroll a contact in a specific automation manually?
      instructions:
      - text: 'Add a contact to an automation: {contactAutomation}.'
        slots:
          contactAutomation: requestBody.contactAutomation
      - text: Enroll the contact I name into the welcome automation.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contactAutomations/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Retrieve one contact automation enrollment
      effect: read
      questions:
      - How do I look up a single contact-automation enrollment by its ID?
      - Can I check the status of one contactAutomation record?
      instructions:
      - text: Get contact automation enrollment {id}.
        slots:
          id: path.id
      - text: Show the details of contactAutomation {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contactAutomations/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a contact from an automation
      effect: destructive
      questions:
      - How do I take a contact out of an automation they are in?
      - Can I end a contact's enrollment in an automation early?
      instructions:
      - text: Remove the contact from the automation by deleting enrollment {id}.
        slots:
          id: path.id
      - text: Delete contactAutomation {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contactTags'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a tag to a contact
      effect: write
      questions:
      - How do I tag a contact through the API?
      - Can I apply an existing tag to a contact by IDs?
      instructions:
      - text: 'Tag a contact: {contactTag}.'
        slots:
          contactTag: requestBody.contactTag
      - text: Apply the VIP tag to the contact I name.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contactTags/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a tag from a contact
      effect: destructive
      questions:
      - How do I untag a contact without deleting the tag itself?
      - Can I remove one tag from a contact using the contactTag ID?
      instructions:
      - text: Remove contact tag {id}.
        slots:
          id: path.id
      - text: Untag the contact by deleting contactTag {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contactDeals'].get
  update:
    x-apievangelist-phrasing:
      intent: List all secondary contacts on deals
      effect: read
      questions:
      - Where can I see every secondary contact attached to deals across my pipelines?
      - Can I list all deal secondary contacts at once?
      instructions:
      - text: List all secondary contacts across my deals.
      - text: Show every contactDeal secondary-contact record in the account.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contactDeals'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a secondary contact to a deal
      effect: write
      questions:
      - How do I attach another person to a deal as a secondary contact?
      - Can I link a second contact to an existing deal?
      instructions:
      - text: 'Add a secondary contact to a deal: {contactDeal}.'
        slots:
          contactDeal: requestBody.contactDeal
      - text: Attach the contact I name to the deal as a secondary contact.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contactDeals/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Retrieve a deal's secondary contact
      effect: read
      questions:
      - How do I fetch one secondary-contact record by its ID?
      - What does a single deal secondary contact look like?
      instructions:
      - text: Get secondary contact {id}.
        slots:
          id: path.id
      - text: Show the deal secondary-contact record {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contactDeals/{id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a deal's secondary contact
      effect: write
      questions:
      - Can I change the role of a secondary contact already on a deal?
      - How do I edit an existing secondary-contact record?
      instructions:
      - text: Update secondary contact {id} with {contactDeal}.
        slots:
          id: path.id
          contactDeal: requestBody.contactDeal
      - text: Change the role on deal secondary contact {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contactDeals/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a secondary contact from a deal
      effect: destructive
      questions:
      - How do I detach a secondary contact from a deal?
      - Can I delete a secondary-contact link without deleting the person?
      instructions:
      - text: Delete secondary contact {id}.
        slots:
          id: path.id
      - text: Remove deal secondary contact {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/contacts/{contactId}/trackingLogs'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a contact's tracked events log
      effect: read
      questions:
      - Can I get a log of tracked events for a contact using the contactId path variant?
      - Which events have been tracked against a contact over time?
      instructions:
      - text: Get the event log for contact {contactId}.
        slots:
          contactId: path.contactId
      - text: List the tracked events recorded for contactId {contactId}.
        slots:
          contactId: path.contactId
      method: generated
      generated: '2026-09-26'