Cross-Provider Workflow

Ramp Transactions to Google Sheet and Slack

Version 1.0.0

Export Ramp card transactions to a Google Sheet, then post a spend summary to Slack.

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

Providers Orchestrated

ramp google-sheets slack

Workflows

export-transactions-and-notify
List Ramp transactions, append to a sheet, then notify Slack.
Retrieves Ramp transactions, writes them into a Google Sheet range, and posts a spend summary to a Slack channel.
3 steps inputs: channel, pageSize, range, spreadsheetId outputs: messageTs, updatedRange
1
list-transactions
$sourceDescriptions.rampApi.listTransactions
Retrieve recent Ramp card transactions.
2
append-to-sheet
$sourceDescriptions.googleSheetsApi.appendValues
Append the transactions as rows to a Google Sheet.
3
post-summary
$sourceDescriptions.slackChatApi.postChatPostmessage
Post a spend summary message to Slack.

Source API Descriptions

Arazzo Workflow Specification

fin-ramp-transactions-to-sheet-slack.yml Raw ↑
arazzo: 1.0.1
info:
  title: Ramp Transactions to Google Sheet and Slack
  summary: Export Ramp card transactions to a Google Sheet, then post a spend summary to Slack.
  description: >-
    A spend-visibility workflow that pulls recent card transactions from Ramp,
    appends them as rows to a Google Sheet for finance review, and posts a
    summary message to a Slack channel so the team sees new spend activity.
    Demonstrates fanning a corporate-card data source out to a spreadsheet and a
    chat channel in one pass.
  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: googleSheetsApi
    url: https://raw.githubusercontent.com/api-evangelist/google-sheets/refs/heads/main/openapi/google-sheets-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: export-transactions-and-notify
    summary: List Ramp transactions, append to a sheet, then notify Slack.
    description: >-
      Retrieves Ramp transactions, writes them into a Google Sheet range, and
      posts a spend summary to a Slack channel.
    inputs:
      type: object
      properties:
        pageSize:
          type: integer
        spreadsheetId:
          type: string
        range:
          type: string
        channel:
          type: string
    steps:
      - stepId: list-transactions
        description: Retrieve recent Ramp card transactions.
        operationId: $sourceDescriptions.rampApi.listTransactions
        parameters:
          - name: page_size
            in: query
            value: $inputs.pageSize
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          transactions: $response.body#/data
      - stepId: append-to-sheet
        description: Append the transactions as rows to a Google Sheet.
        operationId: $sourceDescriptions.googleSheetsApi.appendValues
        parameters:
          - name: spreadsheetId
            in: path
            value: $inputs.spreadsheetId
          - name: range
            in: path
            value: $inputs.range
          - name: valueInputOption
            in: query
            value: USER_ENTERED
        requestBody:
          contentType: application/json
          payload:
            range: $inputs.range
            majorDimension: ROWS
            values:
              - - Ramp Transactions Export
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          updatedRange: $response.body#/updates/updatedRange
      - stepId: post-summary
        description: Post a spend summary message to Slack.
        operationId: $sourceDescriptions.slackChatApi.postChatPostmessage
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            channel: $inputs.channel
            text: New Ramp transactions exported to the finance sheet.
        successCriteria:
          - condition: $statusCode == 200
          - condition: $response.body#/ok == true
        outputs:
          messageTs: $response.body#/ts
    outputs:
      updatedRange: $steps.append-to-sheet.outputs.updatedRange
      messageTs: $steps.post-summary.outputs.messageTs