Cross-Provider Workflow

Vantage Recommendations to SendGrid Digest

Version 1.0.0

Read Vantage cost recommendations and email a savings digest via SendGrid.

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

Providers Orchestrated

vantage sendgrid

Workflows

recommendations-to-email
Fetch Vantage recommendations, then email a savings digest.
Reads Vantage cost recommendations and emails a savings digest to the team via SendGrid.
2 steps inputs: fromEmail, teamEmail outputs: emailStatus, recommendations
1
get-recommendations
$sourceDescriptions.vantageCostApi.getRecommendations
Retrieve Vantage cost recommendations.
2
email-digest
$sourceDescriptions.sendgridApi.SendMail
Email a cost-savings digest via SendGrid.

Source API Descriptions

Arazzo Workflow Specification

fin-vantage-recommendations-to-sendgrid.yml Raw ↑
arazzo: 1.0.1
info:
  title: Vantage Recommendations to SendGrid Digest
  summary: Read Vantage cost recommendations and email a savings digest via SendGrid.
  description: >-
    A cost-optimization workflow that reads Vantage cost recommendations and
    emails a savings digest to the finance or platform team through SendGrid so
    actionable savings opportunities are surfaced without anyone logging into
    the Vantage console. Demonstrates routing FinOps recommendations into an
    email digest.
  version: 1.0.0
sourceDescriptions:
  - name: vantageCostApi
    url: https://raw.githubusercontent.com/api-evangelist/vantage/refs/heads/main/openapi/vantage-cost-management-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: recommendations-to-email
    summary: Fetch Vantage recommendations, then email a savings digest.
    description: >-
      Reads Vantage cost recommendations and emails a savings digest to the team
      via SendGrid.
    inputs:
      type: object
      properties:
        teamEmail:
          type: string
        fromEmail:
          type: string
    steps:
      - stepId: get-recommendations
        description: Retrieve Vantage cost recommendations.
        operationId: $sourceDescriptions.vantageCostApi.getRecommendations
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          recommendations: $response.body#/recommendations
      - stepId: email-digest
        description: Email a cost-savings digest via SendGrid.
        operationId: $sourceDescriptions.sendgridApi.SendMail
        requestBody:
          contentType: application/json
          payload:
            personalizations:
              - to:
                  - email: $inputs.teamEmail
                subject: Your weekly cloud savings digest
            from:
              email: $inputs.fromEmail
            content:
              - type: text/plain
                value: New cost-savings recommendations are available in Vantage.
        successCriteria:
          - condition: $statusCode == 202
        outputs:
          emailStatus: $statusCode
    outputs:
      recommendations: $steps.get-recommendations.outputs.recommendations
      emailStatus: $steps.email-digest.outputs.emailStatus