Developer Docs

Integrations

Managing Stripe subscriptions, Slack notifications, and other third-party service integrations via the ds CLI.

Integrations

The ds integrations commands manage third-party service provisioning — syncing Stripe products and customers, setting up Slack notifications, and ensuring external services match the application state.

Stripe

DevStride uses Stripe for subscription billing. The CLI provides commands to sync product definitions, provision customers, and audit seat counts.

Sync Products

ds integrations stripe sync-products

Creates or updates Stripe products and prices to match DevStride's subscription tiers:

ProductPricing
ProfessionalMonthly and yearly plans
BusinessMonthly and yearly plans
DevStride FreeFree tier

Also creates corresponding DevStride product records in the database with feature limits per tier.

When to run:

  • After changing subscription tier definitions
  • When setting up a new stage for the first time
  • If Stripe products are out of sync

Sync Customers

# Sync all organizations
ds integrations stripe sync-customers

# Sync a specific organization
ds integrations stripe sync-customers -o org_abc123

For each organization that doesn't have a Stripe customer record:

  1. Creates a Stripe customer
  2. Assigns the DevStride Free subscription
  3. Sets the seat quantity to the active member count

Check Seat Quantities

# Audit all organizations
ds integrations stripe check-quantities

# Audit a specific organization
ds integrations stripe check-quantities -o org_abc123

Exports a CSV (subscription_quantity.csv) comparing:

  • Active member count in DevStride
  • Subscription seat quantity in Stripe
  • Whether they match

Mismatches are listed first for easy identification. Internal @devstride.com users are excluded from counts by default (unless an organization has overridden this).

Slack

Backfill Notifications

ds integrations slack backfill-notifications

Provisions Slack notification workflows for all users:

WorkflowTrigger
Due Date ApproachingItem due date is approaching
Due Date ArrivedItem due date is today
OverdueItem is past due date

Each workflow:

  • Has role-based conditions (triggers based on whether the user is assignee, creator, or watcher)
  • Sends at 7am in the user's timezone
  • Auto-disables for inactive organization members
  • Preserves existing workflows (doesn't duplicate)

Also enables Slack mention mode in each user's notification configuration.

When to run:

  • After onboarding a new organization with Slack integration
  • When notification workflows need to be reprovisioned
  • After changes to the notification workflow definitions

Next Steps