ActiveCampaign · Arazzo Workflow

ActiveCampaign Sync Contact, Set Custom Field, and Tag

Version 1.0.0

Upsert a contact by email, set a custom field, then apply a tag.

1 workflow 1 source API 1 provider
View Spec View on GitHub Marketing AutomationEmail MarketingCRMSales AutomationCustomer ExperienceArazzoWorkflows

Provider

activecampaign

Workflows

sync-contact-set-custom-field-tag
Upsert a contact, set a custom field value, then apply a tag.
Syncs a contact by email, writes the supplied value to a custom field, and applies the supplied tag to the resolved contact.
3 steps inputs: apiToken, email, fieldId, fieldValue, firstName, lastName, tagId outputs: contactId, contactTagId
1
syncContact
sync-a-contacts-data
Upsert the contact by email so it is created or updated in place.
2
setFieldValue
create-fieldvalue
Write the supplied value to the custom field for the contact.
3
applyTag
create-contact-tag
Apply the supplied tag to the contact for segmentation.

Source API Descriptions

Arazzo Workflow Specification

activecampaign-sync-contact-set-custom-field-tag-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: ActiveCampaign Sync Contact, Set Custom Field, and Tag
  summary: Upsert a contact by email, set a custom field, then apply a tag.
  description: >-
    A full enrichment flow keyed on email. The contact is synced so it is
    created or updated in place, a value is written to one of its custom fields,
    and a tag is applied for segmentation. Every step spells out its request
    inline, including the Api-Token authentication header, so the flow can be
    read and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: activecampaignApi
  url: ../openapi/activecampaign-v3.json
  type: openapi
workflows:
- workflowId: sync-contact-set-custom-field-tag
  summary: Upsert a contact, set a custom field value, then apply a tag.
  description: >-
    Syncs a contact by email, writes the supplied value to a custom field, and
    applies the supplied tag to the resolved contact.
  inputs:
    type: object
    required:
    - apiToken
    - email
    - fieldId
    - fieldValue
    - tagId
    properties:
      apiToken:
        type: string
        description: ActiveCampaign API token sent in the Api-Token header.
      email:
        type: string
        description: Email address used to upsert the contact.
      firstName:
        type: string
        description: Optional first name of the contact.
      lastName:
        type: string
        description: Optional last name of the contact.
      fieldId:
        type: integer
        description: Identifier of the custom field to set.
      fieldValue:
        type: string
        description: Value to write to the custom field.
      tagId:
        type: integer
        description: Identifier of the tag to apply to the contact.
  steps:
  - stepId: syncContact
    description: Upsert the contact by email so it is created or updated in place.
    operationId: sync-a-contacts-data
    parameters:
    - name: Api-Token
      in: header
      value: $inputs.apiToken
    requestBody:
      contentType: application/json
      payload:
        contact:
          email: $inputs.email
          firstName: $inputs.firstName
          lastName: $inputs.lastName
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      contactId: $response.body#/contact/id
  - stepId: setFieldValue
    description: Write the supplied value to the custom field for the contact.
    operationId: create-fieldvalue
    parameters:
    - name: Api-Token
      in: header
      value: $inputs.apiToken
    requestBody:
      contentType: application/json
      payload:
        fieldValue:
          contact: $steps.syncContact.outputs.contactId
          field: $inputs.fieldId
          value: $inputs.fieldValue
        useDefaults: true
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      updatedContactId: $response.body#/contacts/0/id
  - stepId: applyTag
    description: Apply the supplied tag to the contact for segmentation.
    operationId: create-contact-tag
    parameters:
    - name: Api-Token
      in: header
      value: $inputs.apiToken
    requestBody:
      contentType: application/json
      payload:
        contactTag:
          contact: $steps.syncContact.outputs.contactId
          tag: $inputs.tagId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      contactTagId: $response.body#/contactTag/id
  outputs:
    contactId: $steps.syncContact.outputs.contactId
    contactTagId: $steps.applyTag.outputs.contactTagId