Cross-Provider Workflow

TikTok Display Videos to Airtable and SendGrid Digest

Version 1.0.0

List a TikTok user's videos, log them to Airtable, then email a digest via SendGrid.

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

Providers Orchestrated

tiktok-for-developers airtable sendgrid

Workflows

tiktok-videos-digest
List TikTok videos, log to Airtable, email a SendGrid digest.
Lists a TikTok user's videos, records a summary record in Airtable, then emails a digest of the latest videos via SendGrid.
3 steps inputs: baseId, digestEmail, tableIdOrName outputs: emailStatus, recordId, videos
1
list-videos
$sourceDescriptions.tiktokDisplayApi.listVideos
List the TikTok user's published videos via the Display API.
2
log-to-airtable
$sourceDescriptions.airtableApi.createRecords
Record a summary of the videos in Airtable.
3
email-digest
$sourceDescriptions.sendgridApi.SendMail
Email a digest of the latest TikTok videos via SendGrid.

Source API Descriptions

Arazzo Workflow Specification

soc-tiktok-display-videos-to-airtable-sendgrid-digest-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: TikTok Display Videos to Airtable and SendGrid Digest
  summary: List a TikTok user's videos, log them to Airtable, then email a digest via SendGrid.
  description: >-
    A content-roundup workflow that lists a TikTok user's published videos via
    the Display API, records a summary row in Airtable, and sends a digest email
    through SendGrid Mail Send. Demonstrates pulling content from a social
    platform into a database and emailing a recap in one Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: tiktokDisplayApi
    url: https://raw.githubusercontent.com/api-evangelist/tiktok-for-developers/refs/heads/main/openapi/tiktok-display-openapi.yml
    type: openapi
  - name: airtableApi
    url: https://raw.githubusercontent.com/api-evangelist/airtable/refs/heads/main/openapi/airtable-airtable-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: tiktok-videos-digest
    summary: List TikTok videos, log to Airtable, email a SendGrid digest.
    description: >-
      Lists a TikTok user's videos, records a summary record in Airtable, then
      emails a digest of the latest videos via SendGrid.
    inputs:
      type: object
      properties:
        baseId:
          type: string
        tableIdOrName:
          type: string
        digestEmail:
          type: string
    steps:
      - stepId: list-videos
        description: List the TikTok user's published videos via the Display API.
        operationId: $sourceDescriptions.tiktokDisplayApi.listVideos
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          videos: $response.body#/data/videos
      - stepId: log-to-airtable
        description: Record a summary of the videos in Airtable.
        operationId: $sourceDescriptions.airtableApi.createRecords
        requestBody:
          contentType: application/json
          payload:
            records:
              - fields:
                  Source: TikTok
                  VideoSummary: $steps.list-videos.outputs.videos
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          recordId: $response.body#/records/0/id
      - stepId: email-digest
        description: Email a digest of the latest TikTok videos via SendGrid.
        operationId: $sourceDescriptions.sendgridApi.SendMail
        requestBody:
          contentType: application/json
          payload:
            personalizations:
              - to:
                  - email: $inputs.digestEmail
                subject: Your TikTok video digest
            from:
              email: [email protected]
            content:
              - type: text/plain
                value: Your latest TikTok videos were logged to Airtable record $steps.log-to-airtable.outputs.recordId
        successCriteria:
          - condition: $statusCode == 202
        outputs:
          emailStatus: $statusCode
    outputs:
      videos: $steps.list-videos.outputs.videos
      recordId: $steps.log-to-airtable.outputs.recordId
      emailStatus: $steps.email-digest.outputs.emailStatus