Cross-Provider Workflow

TikTok Publish Video to Notion Log and SendGrid Email

Version 1.0.0

Publish a video to TikTok, log the publish to Notion, then email a confirmation via SendGrid.

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

Providers Orchestrated

tiktok-for-developers notion sendgrid

Workflows

publish-tiktok-log-notion-email
Publish a TikTok video, log to Notion, email confirmation via SendGrid.
Initiates a TikTok video publish, captures the returned publish id, records it as a Notion page, then sends a SendGrid confirmation email to the author.
3 steps inputs: authorEmail, notionDatabaseId, title, videoUrl outputs: emailStatus, pageId, publishId
1
publish-video
$sourceDescriptions.tiktokContentApi.initVideoPublish
Initiate publishing a video to TikTok from a source URL.
2
log-to-notion
$sourceDescriptions.notionApi.createPage
Record the publish event as a new Notion page.
3
email-confirmation
$sourceDescriptions.sendgridApi.SendMail
Send a publish confirmation email via SendGrid.

Source API Descriptions

Arazzo Workflow Specification

soc-tiktok-publish-video-notion-log-sendgrid-email-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: TikTok Publish Video to Notion Log and SendGrid Email
  summary: Publish a video to TikTok, log the publish to Notion, then email a confirmation via SendGrid.
  description: >-
    A content publishing workflow that initiates a video publish on TikTok via
    the Content Posting API, records the publish event as a page in a Notion
    database, and sends a confirmation email through SendGrid Mail Send.
    Demonstrates chaining a social platform publish with a knowledge-base log
    and a transactional email in one Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: tiktokContentApi
    url: https://raw.githubusercontent.com/api-evangelist/tiktok-for-developers/refs/heads/main/openapi/tiktok-content-posting-openapi.yml
    type: openapi
  - name: notionApi
    url: https://raw.githubusercontent.com/api-evangelist/notion/refs/heads/main/openapi/notion-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: publish-tiktok-log-notion-email
    summary: Publish a TikTok video, log to Notion, email confirmation via SendGrid.
    description: >-
      Initiates a TikTok video publish, captures the returned publish id, records
      it as a Notion page, then sends a SendGrid confirmation email to the author.
    inputs:
      type: object
      properties:
        videoUrl:
          type: string
        title:
          type: string
        notionDatabaseId:
          type: string
        authorEmail:
          type: string
    steps:
      - stepId: publish-video
        description: Initiate publishing a video to TikTok from a source URL.
        operationId: $sourceDescriptions.tiktokContentApi.initVideoPublish
        requestBody:
          contentType: application/json
          payload:
            post_info:
              title: $inputs.title
              privacy_level: PUBLIC_TO_EVERYONE
            source_info:
              source: PULL_FROM_URL
              video_url: $inputs.videoUrl
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          publishId: $response.body#/data/publish_id
      - stepId: log-to-notion
        description: Record the publish event as a new Notion page.
        operationId: $sourceDescriptions.notionApi.createPage
        requestBody:
          contentType: application/json
          payload:
            parent:
              database_id: $inputs.notionDatabaseId
            properties:
              Name:
                title:
                  - text:
                      content: $inputs.title
              PublishId:
                rich_text:
                  - text:
                      content: $steps.publish-video.outputs.publishId
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          pageId: $response.body#/id
      - stepId: email-confirmation
        description: Send a publish confirmation email via SendGrid.
        operationId: $sourceDescriptions.sendgridApi.SendMail
        requestBody:
          contentType: application/json
          payload:
            personalizations:
              - to:
                  - email: $inputs.authorEmail
                subject: Your TikTok video is publishing
            from:
              email: [email protected]
            content:
              - type: text/plain
                value: Your video is publishing. Logged to Notion page $steps.log-to-notion.outputs.pageId
        successCriteria:
          - condition: $statusCode == 202
        outputs:
          emailStatus: $statusCode
    outputs:
      publishId: $steps.publish-video.outputs.publishId
      pageId: $steps.log-to-notion.outputs.pageId
      emailStatus: $steps.email-confirmation.outputs.emailStatus