Cross-Provider Workflow

Claude Summarize to Notion Page

Version 1.0.0

Summarize text with Claude, then write the summary into a Notion page.

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

Providers Orchestrated

claude notion

Workflows

summarize-and-store
Summarize source text with Claude and store it as a Notion page.
Calls Claude to produce a concise summary of the supplied text, then creates a Notion page in the target database carrying the summary as its title.
2 steps inputs: databaseId, model, sourceText outputs: pageId, summaryText
1
summarize-text
$sourceDescriptions.claudeApi.createMessage
Ask Claude to summarize the supplied source text.
2
store-in-notion
$sourceDescriptions.notionApi.createPage
Create a Notion page holding the generated summary.

Source API Descriptions

Arazzo Workflow Specification

ai-claude-summarize-to-notion-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Claude Summarize to Notion Page
  summary: Summarize text with Claude, then write the summary into a Notion page.
  description: >-
    A cross-provider AI enrichment chain that sends raw text to Anthropic's Claude
    Messages API for summarization, then persists the generated summary as a new
    page in a Notion database. Demonstrates pairing an LLM provider with a
    knowledge-base sink in a single Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: claudeApi
    url: https://raw.githubusercontent.com/api-evangelist/claude/refs/heads/main/openapi/claude-messages-api.yml
    type: openapi
  - name: notionApi
    url: https://raw.githubusercontent.com/api-evangelist/notion/refs/heads/main/openapi/notion-openapi.yml
    type: openapi
workflows:
  - workflowId: summarize-and-store
    summary: Summarize source text with Claude and store it as a Notion page.
    description: >-
      Calls Claude to produce a concise summary of the supplied text, then creates
      a Notion page in the target database carrying the summary as its title.
    inputs:
      type: object
      properties:
        sourceText:
          type: string
        databaseId:
          type: string
        model:
          type: string
    steps:
      - stepId: summarize-text
        description: Ask Claude to summarize the supplied source text.
        operationId: $sourceDescriptions.claudeApi.createMessage
        requestBody:
          contentType: application/json
          payload:
            model: $inputs.model
            max_tokens: 512
            messages:
              - role: user
                content: "Summarize the following text in three sentences: $inputs.sourceText"
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          summaryText: $response.body#/content/0/text
          messageId: $response.body#/id
      - stepId: store-in-notion
        description: Create a Notion page holding the generated summary.
        operationId: $sourceDescriptions.notionApi.createPage
        requestBody:
          contentType: application/json
          payload:
            parent:
              database_id: $inputs.databaseId
            properties:
              Name:
                title:
                  - text:
                      content: $steps.summarize-text.outputs.summaryText
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          pageId: $response.body#/id
    outputs:
      summaryText: $steps.summarize-text.outputs.summaryText
      pageId: $steps.store-in-notion.outputs.pageId