Cross-Provider Workflow

Stripe Subscription to SendGrid Welcome Email

Version 1.0.0

Create a Stripe subscription, then send a welcome email with SendGrid.

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

Providers Orchestrated

stripe sendgrid

Workflows

subscription-welcome
Create a Stripe subscription, then email a SendGrid welcome.
Creates a subscription for a customer in Stripe and, on an active status, sends a welcome email via SendGrid.
2 steps inputs: customer, priceId, welcomeEmail outputs: subscriptionId, subscriptionStatus, welcomeEmailStatus
1
create-subscription
$sourceDescriptions.stripeApi.PostSubscriptions
Create a recurring subscription in Stripe.
2
welcome-email
$sourceDescriptions.sendgridApi.SendMail
Send a welcome email to the new subscriber via SendGrid.

Source API Descriptions

Arazzo Workflow Specification

pay-stripe-subscription-to-sendgrid-welcome-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Stripe Subscription to SendGrid Welcome Email
  summary: Create a Stripe subscription, then send a welcome email with SendGrid.
  description: >-
    A cross-provider onboarding workflow that creates a recurring subscription in
    Stripe and, once active, sends the new subscriber a welcome email through
    SendGrid's Mail Send API. Connects recurring billing to lifecycle messaging at
    the moment a customer commits to a plan.
  version: 1.0.0
sourceDescriptions:
  - name: stripeApi
    url: https://raw.githubusercontent.com/api-evangelist/stripe/refs/heads/main/openapi/stripe-subscription-api-openapi.yml
    type: openapi
  - name: sendgridApi
    url: https://raw.githubusercontent.com/api-evangelist/sendgrid/refs/heads/main/openapi/tsg_mail_v3.yaml
    type: openapi
workflows:
  - workflowId: subscription-welcome
    summary: Create a Stripe subscription, then email a SendGrid welcome.
    description: >-
      Creates a subscription for a customer in Stripe and, on an active status,
      sends a welcome email via SendGrid.
    inputs:
      type: object
      properties:
        customer:
          type: string
        priceId:
          type: string
        welcomeEmail:
          type: string
    steps:
      - stepId: create-subscription
        description: Create a recurring subscription in Stripe.
        operationId: $sourceDescriptions.stripeApi.PostSubscriptions
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            customer: $inputs.customer
            items[0][price]: $inputs.priceId
        successCriteria:
          - condition: $statusCode == 200
          - condition: $response.body#/status == "active"
        outputs:
          subscriptionId: $response.body#/id
          subscriptionStatus: $response.body#/status
      - stepId: welcome-email
        description: Send a welcome email to the new subscriber via SendGrid.
        operationId: $sourceDescriptions.sendgridApi.SendMail
        requestBody:
          contentType: application/json
          payload:
            personalizations:
              - to:
                  - email: $inputs.welcomeEmail
                subject: Welcome aboard
            from:
              email: [email protected]
            content:
              - type: text/plain
                value: Your subscription $steps.create-subscription.outputs.subscriptionId is now active.
        successCriteria:
          - condition: $statusCode == 202
        outputs:
          emailStatus: $statusCode
    outputs:
      subscriptionId: $steps.create-subscription.outputs.subscriptionId
      subscriptionStatus: $steps.create-subscription.outputs.subscriptionStatus
      welcomeEmailStatus: $steps.welcome-email.outputs.emailStatus