Constant Contact · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for AppConnect V3 Email Campaigns API

12 actions 12 updates phrasing extends openapi/constant-contact-email-campaigns-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 12

$.info
$.paths['/emails'].get
$.paths['/emails'].post
$.paths['/emails/{campaign_id}'].get
$.paths['/emails/{campaign_id}'].delete
$.paths['/emails/{campaign_id}'].patch
$.paths['/emails/campaign_id_xrefs'].get
$.paths['/emails/activities/{campaign_activity_id}'].get
$.paths['/emails/activities/{campaign_activity_id}'].put
$.paths['/emails/activities/{campaign_activity_id}/non_opener_resends'].get
$.paths['/emails/activities/{campaign_activity_id}/non_opener_resends'].post
$.paths['/emails/activities/{campaign_activity_id}/non_opener_resends/{resend_request_id}'].delete

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 Email Campaigns API
  version: 1.0.0
extends: openapi/constant-contact-email-campaigns-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: 11
- target: $.paths['/emails'].get
  update:
    x-apievangelist-phrasing:
      intent: List email campaigns
      effect: read
      questions:
      - Which email campaigns have I created?
      - Can I list only campaigns created within a date range?
      instructions:
      - text: List all my email campaigns.
      - text: List email campaigns created between {after_date} and {before_date}.
        slots:
          after_date: query.after_date
          before_date: query.before_date
      method: generated
      generated: '2026-10-01'
- target: $.paths['/emails'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a new email campaign
      effect: write
      questions:
      - How do I create an email campaign with custom HTML?
      - What does a new email campaign need besides a name?
      instructions:
      - text: Create an email campaign named {name} with activity {email_campaign_activities}.
        slots:
          name: requestBody.name
          email_campaign_activities: requestBody.email_campaign_activities
      - text: Draft a new email campaign {name} using {email_campaign_activities}.
        slots:
          name: requestBody.name
          email_campaign_activities: requestBody.email_campaign_activities
      method: generated
      generated: '2026-10-01'
- target: $.paths['/emails/{campaign_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one email campaign
      effect: read
      questions:
      - What's the status of a specific email campaign?
      - Can I find the activity IDs that belong to a campaign?
      instructions:
      - text: Show email campaign {campaign_id}.
        slots:
          campaign_id: path.campaign_id
      - text: Get the status and activities of campaign {campaign_id}.
        slots:
          campaign_id: path.campaign_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/emails/{campaign_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an email campaign
      effect: destructive
      questions:
      - Can I delete a campaign that's already scheduled?
      - Is a deleted email campaign gone for good?
      instructions:
      - text: Delete email campaign {campaign_id}.
        slots:
          campaign_id: path.campaign_id
      - text: Remove campaign {campaign_id} and its activities.
        slots:
          campaign_id: path.campaign_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/emails/{campaign_id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Rename an email campaign
      effect: write
      questions:
      - Can I rename an email campaign without touching its content?
      - How long can an email campaign name be?
      instructions:
      - text: Rename email campaign {campaign_id} to {name}.
        slots:
          campaign_id: path.campaign_id
          name: requestBody.name
      - text: Change campaign {campaign_id}'s internal name to {name}.
        slots:
          campaign_id: path.campaign_id
          name: requestBody.name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/emails/campaign_id_xrefs'].get
  update:
    x-apievangelist-phrasing:
      intent: Map old V2 campaign IDs to V3 IDs
      effect: read
      questions:
      - I stored email campaign IDs from the V2 API — what are the V3 identifiers?
      - Can I migrate legacy email campaign references to the new format?
      instructions:
      - text: Translate V2 email campaign IDs {v2_email_campaign_ids} to V3.
        slots:
          v2_email_campaign_ids: query.v2_email_campaign_ids
      - text: Get V3 campaign and activity IDs for legacy campaigns {v2_email_campaign_ids}.
        slots:
          v2_email_campaign_ids: query.v2_email_campaign_ids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/emails/activities/{campaign_activity_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an email campaign activity's content
      effect: read
      questions:
      - Where can I see the HTML content and subject of an email campaign activity?
      - Which contact lists or segments is an email activity sending to?
      instructions:
      - text: Show email campaign activity {campaign_activity_id}.
        slots:
          campaign_activity_id: path.campaign_activity_id
      - text: Get activity {campaign_activity_id} including {include}.
        slots:
          campaign_activity_id: path.campaign_activity_id
          include: query.include
      method: generated
      generated: '2026-10-01'
- target: $.paths['/emails/activities/{campaign_activity_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Edit an email's content and sender details
      effect: write
      questions:
      - Can I change the subject line or from name of an email I haven't sent?
      - What fields are required when updating an email campaign activity?
      instructions:
      - text: Set the subject of activity {campaign_activity_id} to {subject} from {from_name} <{from_email}>, reply to {reply_to_email}.
        slots:
          campaign_activity_id: path.campaign_activity_id
          subject: requestBody.subject
          from_name: requestBody.from_name
          from_email: requestBody.from_email
          reply_to_email: requestBody.reply_to_email
      - text: Send activity {campaign_activity_id} to lists {contact_list_ids}, keeping subject {subject}, sender {from_name} {from_email}, reply-to {reply_to_email}.
        slots:
          campaign_activity_id: path.campaign_activity_id
          contact_list_ids: requestBody.contact_list_ids
          subject: requestBody.subject
          from_name: requestBody.from_name
          from_email: requestBody.from_email
          reply_to_email: requestBody.reply_to_email
      method: generated
      generated: '2026-10-01'
- target: $.paths['/emails/activities/{campaign_activity_id}/non_opener_resends'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the resend-to-non-openers settings
      effect: read
      questions:
      - Is there already a resend to non-openers set up for this email?
      - When will my resend to people who didn't open go out?
      instructions:
      - text: Show the resend to non-openers for {campaign_activity_id}.
        slots:
          campaign_activity_id: path.campaign_activity_id
      - text: Check whether activity {campaign_activity_id} has a non-opener resend.
        slots:
          campaign_activity_id: path.campaign_activity_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/emails/activities/{campaign_activity_id}/non_opener_resends'].post
  update:
    x-apievangelist-phrasing:
      intent: Resend an email to contacts who didn't open
      effect: write
      questions:
      - Can I automatically resend an email to people who didn't open it?
      - How many days later can a resend to non-openers go out?
      instructions:
      - text: Resend {campaign_activity_id} to non-openers with subject {resend_subject}.
        slots:
          campaign_activity_id: path.campaign_activity_id
          resend_subject: requestBody.resend_subject
      - text: Resend {campaign_activity_id} to non-openers {delay_days} days later as {resend_subject}.
        slots:
          campaign_activity_id: path.campaign_activity_id
          delay_days: requestBody.delay_days
          resend_subject: requestBody.resend_subject
      method: generated
      generated: '2026-10-01'
- target: $.paths['/emails/activities/{campaign_activity_id}/non_opener_resends/{resend_request_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Cancel a resend to non-openers
      effect: destructive
      questions:
      - Can I cancel a scheduled resend to non-openers?
      - Is it possible to unschedule the follow-up for people who didn't open?
      instructions:
      - text: Cancel resend {resend_request_id} for activity {campaign_activity_id}.
        slots:
          campaign_activity_id: path.campaign_activity_id
          resend_request_id: path.resend_request_id
      - text: Unschedule non-opener resend {resend_request_id} on {campaign_activity_id}.
        slots:
          campaign_activity_id: path.campaign_activity_id
          resend_request_id: path.resend_request_id
      method: generated
      generated: '2026-10-01'