Constant Contact · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for AppConnect V3 Contacts API

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

What the actions change

x-apievangelist-phrasing

Targets 11

$.info
$.paths['/contacts/{contact_id}'].get
$.paths['/contacts/{contact_id}'].put
$.paths['/contacts/{contact_id}'].delete
$.paths['/contacts'].get
$.paths['/contacts'].post
$.paths['/contacts/sign_up_form'].post
$.paths['/contacts/contact_id_xrefs'].get
$.paths['/contacts/sms_engagement_history/{contact_id}'].get
$.paths['/contacts/counts'].get
$.paths['/contacts/resubscribe/{contact_id}'].put

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 AppConnect V3 Contacts API
  version: 1.0.0
extends: openapi/constant-contact-contacts-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 10
- target: $.paths['/contacts/{contact_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one contact
      effect: read
      questions:
      - What information do I have about a specific contact?
      - Can I include a contact's lists, tags and custom fields in one response?
      instructions:
      - text: Show contact {contact_id}.
        slots:
          contact_id: path.contact_id
      - text: Get contact {contact_id} including {include}.
        slots:
          contact_id: path.contact_id
          include: query.include
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/{contact_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an existing contact
      effect: write
      questions:
      - Can I change a contact's name or email by their contact ID?
      - Is it possible to restore a deleted contact?
      instructions:
      - text: Update contact {contact_id} with first name {first_name} and last name {last_name}, source {update_source}.
        slots:
          contact_id: path.contact_id
          first_name: requestBody.first_name
          last_name: requestBody.last_name
          update_source: requestBody.update_source
      - text: Change the job title of contact {contact_id} to {job_title}, source {update_source}.
        slots:
          contact_id: path.contact_id
          job_title: requestBody.job_title
          update_source: requestBody.update_source
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/{contact_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a single contact
      effect: destructive
      questions:
      - What happens to a contact after I delete them — can they come back?
      - Do deleted contacts still count toward my active contacts?
      instructions:
      - text: Delete contact {contact_id}.
        slots:
          contact_id: path.contact_id
      - text: Remove contact {contact_id} from my account.
        slots:
          contact_id: path.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts'].get
  update:
    x-apievangelist-phrasing:
      intent: Search and list contacts
      effect: read
      questions:
      - Which contacts have unsubscribed since last month?
      - Can I find a contact by email address?
      - Is there a way to list everyone with a certain tag or in a segment?
      instructions:
      - text: Find the contact with email {email}.
        slots:
          email: query.email
      - text: List contacts in lists {lists}.
        slots:
          lists: query.lists
      - text: List contacts updated after {updated_after}.
        slots:
          updated_after: query.updated_after
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a new contact
      effect: write
      questions:
      - How do I add a single new contact?
      - What's the minimum information needed to create a contact?
      instructions:
      - text: Create a contact with email {email_address} and first name {first_name}.
        slots:
          email_address: requestBody.email_address
          first_name: requestBody.first_name
      - text: Add a new contact {first_name} {last_name} from {company_name}.
        slots:
          first_name: requestBody.first_name
          last_name: requestBody.last_name
          company_name: requestBody.company_name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/sign_up_form'].post
  update:
    x-apievangelist-phrasing:
      intent: Create or update a contact from a sign-up
      effect: write
      questions:
      - Can I add someone if they're new, or update them if they already exist, in one call?
      - Is there an upsert for sign-up forms that also puts the person on a list?
      instructions:
      - text: Sign up {email_address} to lists {list_memberships}, creating or updating them.
        slots:
          email_address: requestBody.email_address
          list_memberships: requestBody.list_memberships
      - text: Upsert {first_name} at {email_address} onto lists {list_memberships}.
        slots:
          first_name: requestBody.first_name
          email_address: requestBody.email_address
          list_memberships: requestBody.list_memberships
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/contact_id_xrefs'].get
  update:
    x-apievangelist-phrasing:
      intent: Map old V2 contact IDs to V3 contact IDs
      effect: read
      questions:
      - I stored contact IDs from the V2 API — how do I get the new V3 IDs?
      - Can I migrate legacy contact identifiers in bulk?
      instructions:
      - text: Translate V2 contact IDs {sequence_ids} to V3.
        slots:
          sequence_ids: query.sequence_ids
      - text: Get V3 contact IDs for legacy contacts {sequence_ids}.
        slots:
          sequence_ids: query.sequence_ids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/sms_engagement_history/{contact_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a contact's SMS consent history
      effect: read
      questions:
      - When did a contact give or withdraw SMS consent?
      - Can I see a contact's SMS advertising frequency details?
      instructions:
      - text: Show SMS engagement history for contact {contact_id}.
        slots:
          contact_id: path.contact_id
      - text: Get the SMS consent record of contact {contact_id}.
        slots:
          contact_id: path.contact_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/counts'].get
  update:
    x-apievangelist-phrasing:
      intent: Count contacts by consent state
      effect: read
      questions:
      - How many contacts do I have, and how many are subscribed versus unsubscribed?
      - Can I see how many new subscribers joined in the last 30 days?
      instructions:
      - text: Count my contacts by consent state.
      - text: Get contact consent counts including {include}.
        slots:
          include: query.include
      method: generated
      generated: '2026-10-01'
- target: $.paths['/contacts/resubscribe/{contact_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Send a resubscribe confirmation to a contact
      effect: write
      questions:
      - Can I get an unsubscribed contact back on my lists?
      - Is it possible to send someone a resubscribe confirmation email?
      instructions:
      - text: Send a resubscribe email to contact {contact_id} for lists {list_ids}.
        slots:
          contact_id: path.contact_id
          list_ids: requestBody.list_ids
      - text: Ask contact {contact_id} to confirm resubscribing to {list_ids}.
        slots:
          contact_id: path.contact_id
          list_ids: requestBody.list_ids
      method: generated
      generated: '2026-10-01'