Constant Contact Automations API

Use the automation endpoints and methods to manage automation campaigns

Operations 4

GET /automations/workflows List All Automations #
POST /automations/workflows Create an Automation #
GET /automations/workflows/{automation_flow_id} Retrieve an Automation #
PUT /automations/workflows/{automation_flow_id} Update an Automation #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/constant-contact-automations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

constant-contact-automations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: The Constant Contact, Inc. V3 public API, for building integrations with Constant Contact, the leading small-business email marketing platform.
  version: 3.0.178
  title: AppConnect V3 Automations API
  contact:
    name: webservices@constantcontact.com
  license:
    name: Private
    url: https://www.constantcontact.com/legal/terms-of-use
servers:
- url: https://api.cc.email/v3
tags:
- name: Automations
  description: Use the automation endpoints and methods to manage automation campaigns
paths:
  /automations/workflows:
    get:
      tags:
      - Automations
      summary: List All Automations
      description: 'Use this method to list all available automation workflows.

        '
      operationId: listAutomations
      parameters:
      - name: channel
        in: query
        description: Filter by channel
        required: false
        x-example: email
        schema:
          type: string
      - name: sort_direction
        in: query
        description: Sort direction, ASC or DESC. Defaults to DESC
        required: false
        x-example: DESC
        schema:
          type: string
          enum:
          - ASC
          - DESC
      - name: created_from
        in: query
        description: Filter by how the workflow was created
        required: false
        schema:
          type: string
          enum:
          - SCRATCH
          - TEMPLATE
      - name: goals
        in: query
        description: Filter by goal tags (e.g. post_purchase_followup, up_sell_and_cross_sell)
        required: false
        x-example: post_purchase_followup
        schema:
          type: string
      - name: name
        in: query
        description: Find by workflow name (exact match)
        required: false
        x-example: My Workflow 123
        schema:
          type: string
      responses:
        '209':
          description: Request successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAutomationFlowsResponseDto'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - customer-journey:read
    post:
      tags:
      - Automations
      summary: Create an Automation
      description: 'Use this method to create a new automation campaign workflow from scratch by providing trigger information. For example, an automation that triggers when contacts join a list or an automation that triggers for a contact birthday.


        Some common automation examples are included in the request body example dropdown menu.

        '
      operationId: createAutomationCampaignUsingPost
      parameters:
      - name: workflowName
        in: query
        description: Use this query parameter to provide a workflow name and override the default name.
        required: false
        schema:
          type: string
      responses:
        '201':
          description: Request successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutomationCampaign'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - customer-journey:create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TriggerDefDto'
        description: Automation trigger definition (type, action_name, parameters, optional trigger_date and bounds).
        required: true
  /automations/workflows/{automation_flow_id}:
    get:
      tags:
      - Automations
      summary: Retrieve an Automation
      description: Use this endpoint to retrieve an automation workflow by its workflow id.
      operationId: retrieveAutomationCampaignUsingGet
      parameters:
      - name: automation_flow_id
        in: path
        description: Automation workflow identifier.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutomationCampaign'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - customer-journey:read
    put:
      tags:
      - Automations
      summary: Update an Automation
      description: Use this method to update an automation workflow.
      operationId: updateAutomationCampaignUsingPut
      parameters:
      - name: automation_flow_id
        in: path
        description: Automation workflow identifier.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutomationCampaign'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '500':
          description: There was a problem with our internal service.
      security:
      - oauth2_implicit:
        - campaign_data
      - oauth2_access_code:
        - campaign_data
      x-authorization-privileges:
      - customer-journey:update
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AutomationCampaignUpdate'
        description: Automation trigger definition (type, action_name, parameters, optional trigger_date and bounds).
        required: true
components:
  schemas:
    WorkflowParametersDto:
      type: object
      properties:
        automation_flow_id:
          type: string
          example: 9a5982f0-26d8-4e74-b2f5-f415af434fa4
          description: Automation flow identifier
        automation_flow_name:
          type: string
          example: 'Autogenerated Birthday: Basic'
          description: Automation flow name
        campaign_id:
          type: string
          example: 861dd493-540a-4e3e-b457-44cfde28a5f0
          description: Automation campaign identifier
        discount_code:
          type: string
          description: Discount code used in discount block
    TriggerFilterRuleDto:
      type: object
      properties:
        compound_rule_type:
          type: string
        left:
          $ref: '#/components/schemas/TriggerFilterRuleDto'
        property_comparison:
          $ref: '#/components/schemas/PropertyComparisonDto'
        right:
          $ref: '#/components/schemas/TriggerFilterRuleDto'
        rule:
          $ref: '#/components/schemas/TriggerFilterRuleDto'
        target:
          type: string
        target_type:
          type: string
        type:
          type: string
    AutomationStructuredTag:
      type: object
      properties:
        display_value:
          type: string
          example: All from-scratch paths
          description: Human-readable display value
        key:
          type: string
          example: GOAL
          description: Tag key
        value:
          type: string
          example: goal_undefined
          description: Tag value
      description: A structured tag with key, value, and display value
    TriggerFilterDto:
      type: object
      properties:
        rule:
          $ref: '#/components/schemas/TriggerFilterRuleDto'
        version:
          type: string
          description: Version number for the trigger filter.
    AutomationFlow:
      type: object
      properties:
        workflow_def:
          $ref: '#/components/schemas/AutomationWorkflowDef'
      description: The workflow flow definition.
    TriggerDefDto:
      type: object
      properties:
        parameters:
          type: array
          description: List of parameters that filter or configure the trigger (e.g., list IDs for list_join).
          items:
            $ref: '#/components/schemas/ParameterDto'
        action_name:
          type: string
          example: list_join
          description: Action name. Required for type Action or Date. Identifies the specific trigger (e.g., list_join, calendar_date, visits_page).
        bounds:
          type: object
          description: 'Time window for Date-type triggers. Sets when the trigger runs relative to

            the contact''s date. Uses ISO 8601 period format (e.g., P0D, P7D, P-7D).

            | Example Scenario | after  | before |

            |----------|--------|--------|

            | On the day | `P0D`  | `P1D` |

            | 7 days before | `P-7D` | `P-6D` |

            | 7 days after | `P7D`  | `P8D` |

            '
          properties:
            after:
              type: string
              description: Start of the window relative to the contact date in ISO 8601 period format (e.g., P0D = on the day, P-7D = 7 days before).
            before:
              type: string
              description: End of the window relative to the contact date in ISO 8601 period format (e.g., P1D = 1 day after, P0D = on the day).
        engagement_level:
          type: string
          example: SOMEWHAT
          description: Engagement level for engagement_level triggers (e.g., SOMEWHAT, LEAST).
        segment_id:
          type: string
          description: Segment ID for segment_join triggers.
        trigger_date:
          type: object
          description: Date configuration for Date-type triggers (e.g., birthday, anniversary). Specifies which contact fields supply the date.
          properties:
            date_field:
              type: string
              description: Contact field that contains the full date. Must include 'record.' prefix (e.g., record.anniversary).
            day_field:
              type: string
              description: Contact field that contains the day-of-month value. Must include 'record.' prefix (e.g., record.birthday_day).
            month_field:
              type: string
              description: Contact field that contains the month value. Must include 'record.' prefix (e.g., record.birthday_month).
            type:
              type: string
              description: Where the date is represented (e.g., Profile).
        type:
          type: string
          example: Action
          description: Trigger type. Determines how the trigger is evaluated (e.g., Action, Date, segment_join).
        unique_by:
          type: string
          example: list_ids
          description: 'Deduplication key: run the workflow at most once per contact per this value (e.g., list_ids, contact_id).'
      description: Defines when the workflow starts (e.g., list join, date-based).
    CorrelationMetadataDto:
      type: object
      properties:
        automation_flow_id:
          type: string
          example: 9a5982f0-26d8-4e74-b2f5-f415af434fa4
          description: Automation flow identifier
        automation_template_id:
          type: string
          example: 17f58023-559a-41e5-84b7-0e9e213f7aef
          description: Automation template identifier
        campaign_id:
          type: string
          example: 861dd493-540a-4e3e-b457-44cfde28a5f0
          description: Automation campaign identifier
    TimeoutDto:
      type: object
      properties:
        amount:
          type: number
          format: float
          example: 10.0
          description: Amount of time for startup timeout.
        time_unit:
          type: string
          example: HOURS
          description: Unit of time for startup timeout.
    AutomationFlowSummaryDto:
      type: object
      properties:
        active_state:
          type: string
          example: ACTIVE
          description: State of the active definition
        created_by_id:
          type: string
          example: '123456789'
          description: User ID who created the flow
        created_date:
          type: string
          example: '2025-09-25T20:06:50.020+00:00'
          description: Date the flow was created
        description:
          type: string
          example: Automation flow for contact signups
          description: Description of the automation flow
        draft_state:
          type: string
          example: PROMOTED
          description: State of the draft definition
        id:
          type: string
          example: 83345850-144a-4dcf-b4dc-88aa1287cffe
          description: Automation flow ID
        name:
          type: string
          example: Welcome series
          description: Display name of the automation flow
        promoted_by_id:
          type: string
          example: '123456789'
          description: User ID who promoted the flow
        promoted_date:
          type: string
          example: '2025-09-25T20:06:50.970+00:00'
          description: Date the flow was promoted
        status:
          type: string
          example: ACTIVE
          description: Computed display status of the workflow
        structured_tags:
          type: array
          description: Structured tags associated with the automation flow
          items:
            $ref: '#/components/schemas/StructuredTagDto'
        template_id:
          type: string
          example: 17f58023-559a-41e5-84b7-0e9e213f7aef
          description: Template ID the flow was created from
        update_date:
          type: string
          example: '2025-09-25T20:06:50.970+00:00'
          description: Date the flow was last updated
      description: Summary of an automation flow
    TaskDto:
      type: object
      properties:
        child_tasks:
          type: array
          items:
            $ref: '#/components/schemas/TaskDto'
        correlation_metadata:
          $ref: '#/components/schemas/TaskCorrelationMetadataDto'
        else:
          type: array
          items:
            $ref: '#/components/schemas/TaskDto'
        event_condition:
          type: string
        id:
          type: string
          example: 79bydf92-rr48-4765-83cb-0e8a8f63ay0
        input:
          type: object
          description: Task input object
          additionalProperties:
            type: string
        json_condition:
          type: object
          properties: {}
        kind:
          type: string
          description: Task type.
        metadata:
          type: object
          description: Task metadata object.
          properties:
            action:
              type: string
            create_from_scratch:
              type: boolean
            kind:
              type: string
            list:
              type: string
        name:
          type: string
          description: Task name.
        output:
          type: object
          properties: {}
        queue_name:
          type: string
        retry_options:
          type: object
          properties:
            backoff_coefficient:
              type: integer
              format: int32
            initial_interval:
              type: integer
              format: int32
            maximum_attempts:
              type: integer
              format: int32
        script:
          type: string
        task_provider_reference_key:
          type: string
        task_skip_condition:
          type: string
        then:
          type: array
          items:
            $ref: '#/components/schemas/TaskDto'
        timeout:
          $ref: '#/components/schemas/TimeoutDto'
    PropertyComparisonDto:
      type: object
      properties:
        argument:
          type: string
        array_argument:
          type: array
          items:
            type: string
        operator:
          type: string
        property_name:
          type: string
        string_map_argument:
          type: object
          properties:
            custom_field_Id:
              type: string
            value:
              type: string
        type:
          type: string
    AutomationWorkflowDef:
      type: object
      properties:
        parameters:
          $ref: '#/components/schemas/WorkflowParametersDto'
        correlation_metadata:
          $ref: '#/components/schemas/CorrelationMetadataDto'
        tasks:
          type: array
          items:
            $ref: '#/components/schemas/TaskDto'
        status:
          type: string
          example: SCHEDULED
          description: Workflow definition status.
        metadata:
          type: object
          description: Workflow metadata.
          properties: {}
        timeout:
          $ref: '#/components/schemas/TimeoutDto'
        upgradable:
          type: boolean
          description: Indicates if the workflow can be upgraded after it is activated.
      description: The workflow definition containing tasks, status, and metadata.
    AutomationCampaignUpdate:
      type: object
      properties:
        automation_flow:
          $ref: '#/components/schemas/AutomationCampaign'
    StructuredTagDto:
      type: object
      properties:
        display_value:
          type: string
          example: All from-scratch paths
          description: Human-readable display value
        key:
          type: string
          example: GOAL
          description: Tag key
        value:
          type: string
          example: goal_undefined
          description: Tag value
      description: A structured tag with key, value, and display value
    TriggerDto:
      type: object
      properties:
        trigger_def:
          $ref: '#/components/schemas/TriggerDefDto'
        trigger_filter:
          $ref: '#/components/schemas/TriggerFilterDto'
        trigger_version:
          type: string
          example: 1.0.0
        workflow_filter:
          type: string
    ParameterDto:
      type: object
      properties:
        operator:
          type: string
          description: Comparison operator for the parameter (e.g. EQUALS, CONTAINS, NOT_EQUALS).
        parameter_name:
          type: string
          description: Name of the parameter (e.g., list_ids, create_source, url).
        parameter_list_value:
          type: array
          description: '[DEPRECATED] List of string values for the parameter when type is LIST. Supported for backwards compatibility; prefer parameter_value.'
          items:
            type: string
          x-deprecated: true
        parameter_string_value:
          type: string
          description: '[DEPRECATED] String value for the parameter when type is STRING. Supported for backwards compatibility; prefer parameter_value.'
          x-deprecated: true
        parameter_value:
          type: object
          description: 'The parameter value: a string or array of strings depending on type (e.g., STRING → single value, LIST → array of list IDs). Use this instead of parameter_string_value / parameter_list_value moving forward.'
          properties: {}
        rule:
          type: object
          description: Rule structure for RULE-type parameters (e.g., engagement level triggers).
          properties: {}
        type:
          type: string
          description: 'Parameter type. Common trigger types: STRING (single value), LIST (array), WEB_TRACKING (page visit).'
      description: A single trigger parameter used to filter or configure the trigger (e.g., list IDs). Use parameter_value (preferred); parameter_string_value and parameter_list_value are supported for backwards compatibility.
    TaskCorrelationMetadataDto:
      properties:
        campaign_activity_id:
          type: string
          example: 0434c0ee-bdd2-47ee-8634-fa163e6b01c1
          description: Campaign activity identifier
    AutomationCampaign:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the automation campaign workflow.
        name:
          type: string
          example: 'Autogenerated Birthday: Basic'
          description: The name of the automation campaign.
        description:
          type: string
          example: Send a greeting or special offer to your contacts on or before their birthday
          description: The description of the automation campaign.
        structured_tags:
          type: array
          items:
            $ref: '#/components/schemas/AutomationStructuredTag'
        status:
          type: string
          description: Computed display status of the workflow
        active_definition:
          $ref: '#/components/schemas/AutomationWorkflowDefinition'
        draft_definition:
          $ref: '#/components/schemas/AutomationWorkflowDefinition'
        name_explicitly_set:
          type: boolean
          description: Indicates whether the automation campaign name was explicitly set.
    AutomationWorkflowDefinition:
      type: object
      properties:
        state:
          type: string
          example: DRAFT
          description: The current state of the workflow definition (e.g. DRAFT, ACTIVE).
        trigger:
          $ref: '#/components/schemas/TriggerDto'
        workflow:
          $ref: '#/components/schemas/AutomationFlow'
      description: A workflow definition containing state, trigger, and workflow structure.
    ListAutomationFlowsResponseDto:
      type: object
      properties:
        flow_summaries:
          type: array
          description: List of automation flow summaries for the current page
          items:
            $ref: '#/components/schemas/AutomationFlowSummaryDto'
      description: Paginated list of automation flow summaries
  securitySchemes:
    oauth2_implicit:
      type: oauth2
      flows:
        implicit:
          scopes:
            contact_data: Read or modify contact data.
            campaign_data: Read or modify email campaign data.
            account_read: Read account data.
            account_update: Modify account data.
            billing_data: Read or modify billing data.
          authorizationUrl: https://authz.constantcontact.com/oauth2/default/v1/authorize
    oauth2_access_code:
      type: oauth2
      flows:
        authorizationCode:
          scopes:
            contact_data: Read or modify contact data.
            campaign_data: Read or modify email campaign data.
            account_read: Read account data.
            account_update: Modify account data.
            billing_data: Read or modify billing data.
          authorizationUrl: https://authz.constantcontact.com/oauth2/default/v1/authorize
          tokenUrl: https://authz.constantcontact.com/oauth2/default/v1/token
    ctctPartnerAuthorizer:
      type: oauth2
      flows:
        implicit:
          scopes:
            v3api/general.partner: Access to general partner API methods
          authorizationUrl: https://v3api-partner.auth.us-east-1.amazoncognito.com/oauth2/token
      description: Partner Authentication
    api_key:
      type: apiKey
      name: x-api-key
      in: header