Cross-Provider Workflow

Stripe New Customer to Mailchimp Subscribe

Version 1.0.0

Create a Stripe customer, then subscribe them to a Mailchimp audience.

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

Providers Orchestrated

stripe mailchimp

Workflows

new-customer-subscribe
Create a Stripe customer, then add them to a Mailchimp audience.
Creates a customer in Stripe and uses the returned email to add the person as a subscribed member of a Mailchimp list.
2 steps inputs: email, listId, name outputs: customerId, memberId, memberStatus
1
create-customer
$sourceDescriptions.stripeApi.postCustomers
Create a new customer record in Stripe.
2
subscribe-member
$sourceDescriptions.mailchimpApi.postListsIdMembers
Add the new customer to a Mailchimp audience as a subscriber.

Source API Descriptions

Arazzo Workflow Specification

pay-stripe-new-customer-to-mailchimp-subscribe-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Stripe New Customer to Mailchimp Subscribe
  summary: Create a Stripe customer, then subscribe them to a Mailchimp audience.
  description: >-
    A cross-provider onboarding workflow that creates a customer record in Stripe
    and then adds that customer as a subscribed member of a Mailchimp marketing
    audience. Bridges billing and marketing so every new paying customer is captured
    for lifecycle email campaigns.
  version: 1.0.0
sourceDescriptions:
  - name: stripeApi
    url: https://raw.githubusercontent.com/api-evangelist/stripe/refs/heads/main/openapi/stripe-customers-api-openapi.yml
    type: openapi
  - name: mailchimpApi
    url: https://raw.githubusercontent.com/api-evangelist/mailchimp/refs/heads/main/openapi/mailchimp-marketing-api-openapi.yml
    type: openapi
workflows:
  - workflowId: new-customer-subscribe
    summary: Create a Stripe customer, then add them to a Mailchimp audience.
    description: >-
      Creates a customer in Stripe and uses the returned email to add the person as
      a subscribed member of a Mailchimp list.
    inputs:
      type: object
      properties:
        email:
          type: string
        name:
          type: string
        listId:
          type: string
    steps:
      - stepId: create-customer
        description: Create a new customer record in Stripe.
        operationId: $sourceDescriptions.stripeApi.postCustomers
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            email: $inputs.email
            name: $inputs.name
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          customerId: $response.body#/id
          customerEmail: $response.body#/email
      - stepId: subscribe-member
        description: Add the new customer to a Mailchimp audience as a subscriber.
        operationId: $sourceDescriptions.mailchimpApi.postListsIdMembers
        requestBody:
          contentType: application/json
          payload:
            email_address: $steps.create-customer.outputs.customerEmail
            status: subscribed
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          memberId: $response.body#/id
          memberStatus: $response.body#/status
    outputs:
      customerId: $steps.create-customer.outputs.customerId
      memberId: $steps.subscribe-member.outputs.memberId
      memberStatus: $steps.subscribe-member.outputs.memberStatus