Cross-Provider Workflow

Ramp Statements to Slack Summary

Version 1.0.0

Read Ramp statements and post a billing-cycle spend summary to Slack.

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

Providers Orchestrated

ramp slack

Workflows

statements-to-slack
List Ramp statements, then post a spend summary to Slack.
Retrieves Ramp statements and posts a billing-cycle spend summary to a Slack channel.
2 steps inputs: channel, pageSize outputs: messageTs, statements
1
list-statements
$sourceDescriptions.rampApi.listStatements
Retrieve Ramp statements.
2
post-summary
$sourceDescriptions.slackChatApi.postChatPostmessage
Post a billing-cycle spend summary to Slack.

Source API Descriptions

Arazzo Workflow Specification

fin-ramp-statements-to-slack-summary.yml Raw ↑
arazzo: 1.0.1
info:
  title: Ramp Statements to Slack Summary
  summary: Read Ramp statements and post a billing-cycle spend summary to Slack.
  description: >-
    A spend-summary workflow that pulls Ramp statements and posts a
    billing-cycle summary to a Slack channel so finance and budget owners see
    closed-cycle spend without opening Ramp. Demonstrates surfacing
    spend-management statement data directly into a team chat channel.
  version: 1.0.0
sourceDescriptions:
  - name: rampApi
    url: https://raw.githubusercontent.com/api-evangelist/ramp/refs/heads/main/openapi/ramp-developer-api-openapi.yml
    type: openapi
  - name: slackChatApi
    url: https://raw.githubusercontent.com/api-evangelist/slack/refs/heads/main/openapi/slack-chat-openapi.yml
    type: openapi
workflows:
  - workflowId: statements-to-slack
    summary: List Ramp statements, then post a spend summary to Slack.
    description: >-
      Retrieves Ramp statements and posts a billing-cycle spend summary to a
      Slack channel.
    inputs:
      type: object
      properties:
        pageSize:
          type: integer
        channel:
          type: string
    steps:
      - stepId: list-statements
        description: Retrieve Ramp statements.
        operationId: $sourceDescriptions.rampApi.listStatements
        parameters:
          - name: page_size
            in: query
            value: $inputs.pageSize
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          statements: $response.body#/data
      - stepId: post-summary
        description: Post a billing-cycle spend summary to Slack.
        operationId: $sourceDescriptions.slackChatApi.postChatPostmessage
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            channel: $inputs.channel
            text: Ramp statements for the latest billing cycle are available.
        successCriteria:
          - condition: $statusCode == 200
          - condition: $response.body#/ok == true
        outputs:
          messageTs: $response.body#/ts
    outputs:
      statements: $steps.list-statements.outputs.statements
      messageTs: $steps.post-summary.outputs.messageTs