Cross-Provider Workflow

NVIDIA NIM Summary to SendGrid Digest

Version 1.0.0

Summarize content with NVIDIA NIM, then email the digest via SendGrid.

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

Providers Orchestrated

nvidia-nim sendgrid

Workflows

summarize-and-email
Summarize content with NVIDIA NIM and email it via SendGrid.
Sends content to NVIDIA NIM chat completions for a digest summary, captures the summary, and emails it to the subscriber through SendGrid.
2 steps inputs: content, model, subscriberEmail outputs: digest, mailStatus
1
summarize-content
$sourceDescriptions.nvidiaNimApi.createChatCompletion
Ask NVIDIA NIM to summarize the content into a digest.
2
email-digest
$sourceDescriptions.sendgridApi.SendMail
Email the digest to the subscriber via SendGrid.

Source API Descriptions

Arazzo Workflow Specification

ai-nvidia-summarize-to-sendgrid-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: NVIDIA NIM Summary to SendGrid Digest
  summary: Summarize content with NVIDIA NIM, then email the digest via SendGrid.
  description: >-
    A cross-provider AI enrichment chain that summarizes a block of content with
    NVIDIA NIM chat completions and emails the digest to a subscriber through
    SendGrid. Demonstrates an AI-generated newsletter digest spanning two
    providers in one Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: nvidiaNimApi
    url: https://raw.githubusercontent.com/api-evangelist/nvidia-nim/refs/heads/main/openapi/nvidia-nim-chat-completions-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: summarize-and-email
    summary: Summarize content with NVIDIA NIM and email it via SendGrid.
    description: >-
      Sends content to NVIDIA NIM chat completions for a digest summary, captures
      the summary, and emails it to the subscriber through SendGrid.
    inputs:
      type: object
      properties:
        content:
          type: string
        model:
          type: string
        subscriberEmail:
          type: string
    steps:
      - stepId: summarize-content
        description: Ask NVIDIA NIM to summarize the content into a digest.
        operationId: $sourceDescriptions.nvidiaNimApi.createChatCompletion
        requestBody:
          contentType: application/json
          payload:
            model: $inputs.model
            messages:
              - role: user
                content: "Summarize the following content into a short email digest: $inputs.content"
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          digest: $response.body#/choices/0/message/content
      - stepId: email-digest
        description: Email the digest to the subscriber via SendGrid.
        operationId: $sourceDescriptions.sendgridApi.SendMail
        requestBody:
          contentType: application/json
          payload:
            personalizations:
              - to:
                  - email: $inputs.subscriberEmail
                subject: Your content digest
            from:
              email: [email protected]
            content:
              - type: text/plain
                value: $steps.summarize-content.outputs.digest
        successCriteria:
          - condition: $statusCode == 202
        outputs:
          mailStatus: $statusCode
    outputs:
      digest: $steps.summarize-content.outputs.digest
      mailStatus: $steps.email-digest.outputs.mailStatus