Cross-Provider Workflow

Onboarding Record to Asana Task to Welcome Email

Version 1.0.0

Create an onboarding record, an Asana task, then a welcome email.

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

Providers Orchestrated

airtable asana sendgrid

Workflows

onboarding-to-task-to-email
Record a new hire, create an onboarding task, then send a welcome email.
Creates an Airtable onboarding record, creates an Asana onboarding task, and sends a welcome email to the new hire through SendGrid.
3 steps inputs: asanaProjectId, baseId, newHireEmail, newHireName, tableIdOrName outputs: emailStatus, recordId, taskId
1
create-record
$sourceDescriptions.airtableApi.createRecords
Record the new hire in the Airtable onboarding table.
2
create-task
$sourceDescriptions.asanaTasksApi.createTask
Create an Asana onboarding task for the new hire.
3
welcome-email
$sourceDescriptions.sendgridApi.SendMail
Send a welcome email to the new hire.

Source API Descriptions

Arazzo Workflow Specification

prod-onboarding-record-to-task-to-welcome-email-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Onboarding Record to Asana Task to Welcome Email
  summary: Create an onboarding record, an Asana task, then a welcome email.
  description: >-
    A productivity and internal-ops workflow that records a new hire in Airtable,
    creates an Asana onboarding task to drive the process, and sends a welcome
    email through SendGrid. Demonstrates orchestrating a database provider, a
    task-management provider, and a communications provider in a single Arazzo
    workflow.
  version: 1.0.0
sourceDescriptions:
  - name: airtableApi
    url: https://raw.githubusercontent.com/api-evangelist/airtable/refs/heads/main/openapi/airtable-airtable-api-openapi.yml
    type: openapi
  - name: asanaTasksApi
    url: https://raw.githubusercontent.com/api-evangelist/asana/refs/heads/main/openapi/asana-tasks-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: onboarding-to-task-to-email
    summary: Record a new hire, create an onboarding task, then send a welcome email.
    description: >-
      Creates an Airtable onboarding record, creates an Asana onboarding task,
      and sends a welcome email to the new hire through SendGrid.
    inputs:
      type: object
      properties:
        baseId:
          type: string
        tableIdOrName:
          type: string
        newHireName:
          type: string
        newHireEmail:
          type: string
        asanaProjectId:
          type: string
    steps:
      - stepId: create-record
        description: Record the new hire in the Airtable onboarding table.
        operationId: $sourceDescriptions.airtableApi.createRecords
        parameters:
          - name: baseId
            in: path
            value: $inputs.baseId
          - name: tableIdOrName
            in: path
            value: $inputs.tableIdOrName
        requestBody:
          contentType: application/json
          payload:
            records:
              - fields:
                  Name: $inputs.newHireName
                  Email: $inputs.newHireEmail
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          recordId: $response.body#/records/0/id
      - stepId: create-task
        description: Create an Asana onboarding task for the new hire.
        operationId: $sourceDescriptions.asanaTasksApi.createTask
        requestBody:
          contentType: application/json
          payload:
            data:
              name: $inputs.newHireName
              projects:
                - $inputs.asanaProjectId
              notes: $steps.create-record.outputs.recordId
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          taskId: $response.body#/data/gid
      - stepId: welcome-email
        description: Send a welcome email to the new hire.
        operationId: $sourceDescriptions.sendgridApi.SendMail
        requestBody:
          contentType: application/json
          payload:
            personalizations:
              - to:
                  - email: $inputs.newHireEmail
                subject: Welcome to the team
            from:
              email: [email protected]
            content:
              - type: text/plain
                value: $inputs.newHireName
        successCriteria:
          - condition: $statusCode == 202
        outputs:
          emailStatus: $statusCode
    outputs:
      recordId: $steps.create-record.outputs.recordId
      taskId: $steps.create-task.outputs.taskId
      emailStatus: $steps.welcome-email.outputs.emailStatus