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