Cross-Provider Workflow

Zendesk Org Onboarding to Welcome Email

Version 1.0.0

Create a Zendesk organization and user, then send a welcome email.

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

Providers Orchestrated

zendesk sendgrid

Workflows

org-onboard-welcome
Create an organization and user, then send a welcome email.
Creates a Zendesk organization, creates the primary contact as a user in that organization, then emails them a support welcome message via SendGrid.
3 steps inputs: contactEmail, contactName, fromEmail, orgName outputs: emailStatus, organizationId, userId
1
create-org
$sourceDescriptions.zendeskOrganizations.CreateOrganization
Create the customer organization in Zendesk.
2
create-user
$sourceDescriptions.zendeskUsers.CreateUser
Add the primary contact as a user in the new organization.
3
welcome-email
$sourceDescriptions.sendgridMail.SendMail
Email the new contact a support welcome message via SendGrid.

Source API Descriptions

Arazzo Workflow Specification

itsm-zendesk-org-onboard-welcome-email.yml Raw ↑
arazzo: 1.0.1
info:
  title: Zendesk Org Onboarding to Welcome Email
  summary: Create a Zendesk organization and user, then send a welcome email.
  description: >-
    A cross-provider ITSM workflow that onboards a new customer account by
    creating a Zendesk organization, adding the primary contact as a Zendesk user,
    and emailing them a support welcome message via SendGrid. Demonstrates
    orchestrating a support desk with a transactional email provider across a
    customer onboarding flow in a single Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: zendeskOrganizations
    url: https://raw.githubusercontent.com/api-evangelist/zendesk/refs/heads/main/openapi/organizations-openapi-original.yml
    type: openapi
  - name: zendeskUsers
    url: https://raw.githubusercontent.com/api-evangelist/zendesk/refs/heads/main/openapi/users-openapi-original.yml
    type: openapi
  - name: sendgridMail
    url: https://raw.githubusercontent.com/api-evangelist/sendgrid/refs/heads/main/openapi/tsg_mail_v3.yaml
    type: openapi
workflows:
  - workflowId: org-onboard-welcome
    summary: Create an organization and user, then send a welcome email.
    description: >-
      Creates a Zendesk organization, creates the primary contact as a user in
      that organization, then emails them a support welcome message via SendGrid.
    inputs:
      type: object
      properties:
        orgName:
          type: string
        contactName:
          type: string
        contactEmail:
          type: string
        fromEmail:
          type: string
    steps:
      - stepId: create-org
        description: Create the customer organization in Zendesk.
        operationId: $sourceDescriptions.zendeskOrganizations.CreateOrganization
        requestBody:
          contentType: application/json
          payload:
            organization:
              name: $inputs.orgName
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          organizationId: $response.body#/organization/id
      - stepId: create-user
        description: Add the primary contact as a user in the new organization.
        operationId: $sourceDescriptions.zendeskUsers.CreateUser
        requestBody:
          contentType: application/json
          payload:
            user:
              name: $inputs.contactName
              email: $inputs.contactEmail
              organization_id: $steps.create-org.outputs.organizationId
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          userId: $response.body#/user/id
      - stepId: welcome-email
        description: Email the new contact a support welcome message via SendGrid.
        operationId: $sourceDescriptions.sendgridMail.SendMail
        requestBody:
          contentType: application/json
          payload:
            personalizations:
              - to:
                  - email: $inputs.contactEmail
                subject: Welcome to support
            from:
              email: $inputs.fromEmail
            content:
              - type: text/plain
                value: Your support account is ready. Reach us anytime.
        successCriteria:
          - condition: $statusCode == 202
        outputs:
          emailStatus: $statusCode
    outputs:
      organizationId: $steps.create-org.outputs.organizationId
      userId: $steps.create-user.outputs.userId
      emailStatus: $steps.welcome-email.outputs.emailStatus