Cross-Provider Workflow

ActiveCampaign Engagement to Salesforce Update

Version 1.0.0

Sync an ActiveCampaign contact, then update the Salesforce record.

1 workflow 2 source APIs 2 providers
View Spec View on GitHub ArazzoWorkflowsCross-Provider

Providers Orchestrated

activecampaign salesforce

Workflows

activecampaign-engagement-to-salesforce
Sync an ActiveCampaign contact, then update the Salesforce record.
Syncs a contact's data in ActiveCampaign by email, then updates the matching Salesforce contact record with an engagement status field.
2 steps inputs: email, engagementStatus, firstName, lastName, salesforceId outputs: acContactId, updateStatus
1
sync-contact
$sourceDescriptions.activecampaignApi.sync-a-contacts-data
Sync the contact's data in ActiveCampaign by email.
2
update-salesforce
$sourceDescriptions.salesforceRestApi.updateRecord
Update the matching Salesforce contact with engagement status.

Source API Descriptions

Arazzo Workflow Specification

crm-activecampaign-engagement-to-salesforce-update-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: ActiveCampaign Engagement to Salesforce Update
  summary: Sync an ActiveCampaign contact, then update the Salesforce record.
  description: >-
    A cross-provider workflow that syncs a contact's engagement data in
    ActiveCampaign and writes the resulting engagement signal back into the
    matching Salesforce contact record. Demonstrates pushing marketing
    automation engagement back into the CRM so account owners act on the latest
    behavior.
  version: 1.0.0
sourceDescriptions:
  - name: activecampaignApi
    url: https://raw.githubusercontent.com/api-evangelist/activecampaign/refs/heads/main/openapi/activecampaign-v3.json
    type: openapi
  - name: salesforceRestApi
    url: https://raw.githubusercontent.com/api-evangelist/salesforce/refs/heads/main/openapi/salesforce-rest-api-openapi.yml
    type: openapi
workflows:
  - workflowId: activecampaign-engagement-to-salesforce
    summary: Sync an ActiveCampaign contact, then update the Salesforce record.
    description: >-
      Syncs a contact's data in ActiveCampaign by email, then updates the
      matching Salesforce contact record with an engagement status field.
    inputs:
      type: object
      properties:
        email:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        salesforceId:
          type: string
        engagementStatus:
          type: string
    steps:
      - stepId: sync-contact
        description: Sync the contact's data in ActiveCampaign by email.
        operationId: $sourceDescriptions.activecampaignApi.sync-a-contacts-data
        requestBody:
          contentType: application/json
          payload:
            contact:
              email: $inputs.email
              firstName: $inputs.firstName
              lastName: $inputs.lastName
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          acContactId: $response.body#/contact/id
      - stepId: update-salesforce
        description: Update the matching Salesforce contact with engagement status.
        operationId: $sourceDescriptions.salesforceRestApi.updateRecord
        parameters:
          - name: sobjectType
            in: path
            value: Contact
          - name: id
            in: path
            value: $inputs.salesforceId
        requestBody:
          contentType: application/json
          payload:
            Marketing_Engagement__c: $inputs.engagementStatus
        successCriteria:
          - condition: $statusCode == 204
        outputs:
          updateStatus: $statusCode
    outputs:
      acContactId: $steps.sync-contact.outputs.acContactId
      updateStatus: $steps.update-salesforce.outputs.updateStatus