Skip to content

Integrations Guide

Backflow supports 50+ integrations via built-in connectors and custom configurations.

Built-in Integrations

  • JIRA - Issues, projects, sprints
  • GitHub - Issues, pull requests
  • Stripe - Payments, subscriptions
  • Slack - Messages, notifications
  • SendGrid - Email delivery
  • Twilio - SMS, WhatsApp
  • Polar - Subscriptions, benefits

Configuration

Global Credentials

json
{
  "credentials": {
    "stripe": {
      "secretKey": "{{env.STRIPE_SECRET_KEY}}"
    },
    "jira": {
      "baseUrl": "https://your-org.atlassian.net",
      "email": "{{env.JIRA_EMAIL}}",
      "apiToken": "{{env.JIRA_API_TOKEN}}"
    },
    "sendgrid": {
      "apiKey": "{{env.SENDGRID_API_KEY}}"
    },
    "slack": {
      "webhookUrl": "{{env.SLACK_WEBHOOK_URL}}"
    }
  }
}

Using in Routes

Direct Integration

json
{
  "path": "/notify",
  "method": "post",
  "integrations": [{
    "type": "slack",
    "action": "sendMessage",
    "params": {
      "channel": "#alerts",
      "text": "{{body.message}}"
    }
  }]
}

Chained Operations

json
{
  "path": "/order",
  "method": "post",
  "supabaseQueries": [{
    "table": "orders",
    "operation": "insert",
    "data": { "product_id": "{{body.product_id}}" }
  }],
  "integrations": [
    {
      "type": "stripe",
      "action": "createPaymentIntent",
      "params": { "amount": "{{body.amount}}" }
    },
    {
      "type": "sendgrid",
      "action": "sendEmail",
      "params": {
        "to": "{{body.email}}",
        "subject": "Order Confirmation"
      }
    }
  ]
}

Integration Actions

JIRA

ActionDescription
getIssueGet issue by key
createIssueCreate new issue
updateIssueUpdate issue fields
searchIssuesJQL search
getProjectsList projects
getTransitionsGet transitions
transitionIssueChange status

GitHub

ActionDescription
getIssueGet issue
createIssueCreate issue
listIssuesList issues
createPullRequestCreate PR
getPullRequestGet PR details

Stripe

ActionDescription
createPaymentIntentCreate payment
createCustomerCreate customer
createSubscriptionCreate subscription
listPaymentsList payments

SendGrid

ActionDescription
sendEmailSend email
sendTemplateSend template email

Slack

ActionDescription
sendMessageSend message
sendBlocksSend rich blocks

Twilio

ActionDescription
sendSmsSend SMS
sendWhatsAppSend WhatsApp

Custom Integrations

Define custom API integrations:

json
{
  "customIntegrations": [
    {
      "name": "myapi",
      "baseUrl": "https://api.example.com",
      "auth": {
        "type": "bearer",
        "token": "{{env.MY_API_KEY}}"
      },
      "actions": {
        "getData": {
          "method": "GET",
          "path": "/data"
        },
        "postData": {
          "method": "POST",
          "path": "/data",
          "body": "{{params}}"
        }
      }
    }
  ]
}

OAuth2 Integrations

json
{
  "credentials": {
    "salesforce": {
      "oauth2": {
        "clientId": "{{env.SF_CLIENT_ID}}",
        "clientSecret": "{{env.SF_CLIENT_SECRET}}",
        "accessToken": "{{env.SF_ACCESS_TOKEN}}",
        "refreshToken": "{{env.SF_REFRESH_TOKEN}}",
        "tokenUrl": "https://login.salesforce.com/services/oauth2/token"
      }
    }
  }
}

Integration Files

Store integrations in ./integrations/:

integrations/
├── jira.json
├── github.json
├── custom-api.json
└── salesforce.json

Endpoints

MethodEndpointDescription
GET/integrations/jira/issues/:keyGet JIRA issue
POST/integrations/jira/issuesCreate issue
GET/integrations/github/repos/:owner/:repo/issuesList issues
POST/integrations/stripe/payment-intentsCreate payment
POST/integrations/slack/messagesSend message

Released under the ISC License.