Cross-Provider Workflow

Slack Reminder to SendGrid Email

Version 1.0.0

Set a Slack reminder, then send a matching email reminder via SendGrid.

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

Providers Orchestrated

slack sendgrid

Workflows

reminder-and-email
Set a Slack reminder, then send a matching email reminder.
Adds a personal reminder in Slack and, on success, sends a matching reminder email to the user through SendGrid.
2 steps inputs: reminderText, reminderTime, slackToken, userEmail outputs: emailStatus, reminderId
1
add-reminder
$sourceDescriptions.slackRemindersApi.postRemindersAdd
Add the personal reminder in Slack.
2
email-reminder
$sourceDescriptions.sendgridMailApi.SendMail
Send a matching reminder email to the user via SendGrid.

Source API Descriptions

Arazzo Workflow Specification

msg-slack-reminder-to-sendgrid-email.yml Raw ↑
arazzo: 1.0.1
info:
  title: Slack Reminder to SendGrid Email
  summary: Set a Slack reminder, then send a matching email reminder via SendGrid.
  description: >-
    A cross-provider workflow that sets a personal reminder for a user through
    the Slack Reminders API and then sends a matching reminder email to the user
    through SendGrid's Mail Send API. Demonstrates reinforcing an in-app reminder
    with an email reminder across two providers in a single Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: slackRemindersApi
    url: https://raw.githubusercontent.com/api-evangelist/slack/refs/heads/main/openapi/slack-reminders-openapi.yml
    type: openapi
  - name: sendgridMailApi
    url: https://raw.githubusercontent.com/api-evangelist/sendgrid/refs/heads/main/openapi/tsg_mail_v3.yaml
    type: openapi
workflows:
  - workflowId: reminder-and-email
    summary: Set a Slack reminder, then send a matching email reminder.
    description: >-
      Adds a personal reminder in Slack and, on success, sends a matching
      reminder email to the user through SendGrid.
    inputs:
      type: object
      properties:
        slackToken:
          type: string
        reminderText:
          type: string
        reminderTime:
          type: string
        userEmail:
          type: string
    steps:
      - stepId: add-reminder
        description: Add the personal reminder in Slack.
        operationId: $sourceDescriptions.slackRemindersApi.postRemindersAdd
        parameters:
          - name: token
            in: header
            value: $inputs.slackToken
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            text: $inputs.reminderText
            time: $inputs.reminderTime
        successCriteria:
          - condition: $statusCode == 200
          - condition: $response.body#/ok == true
        outputs:
          reminderId: $response.body#/reminder/id
      - stepId: email-reminder
        description: Send a matching reminder email to the user via SendGrid.
        operationId: $sourceDescriptions.sendgridMailApi.SendMail
        requestBody:
          contentType: application/json
          payload:
            personalizations:
              - to:
                  - email: $inputs.userEmail
                subject: Reminder
            from:
              email: [email protected]
            content:
              - type: text/plain
                value: $inputs.reminderText
        successCriteria:
          - condition: $statusCode == 202
        outputs:
          emailStatus: $statusCode
    outputs:
      reminderId: $steps.add-reminder.outputs.reminderId
      emailStatus: $steps.email-reminder.outputs.emailStatus