Docs/Development

Integrations

Connect with authentication providers, payment gateways, email services, and more.

Integrations

Overview

AlgorithmShift integrates with popular services and provides extensible APIs for connecting to any external system.


Built-in Integrations

Authentication Providers

ProviderTypeFeatures
Email/PasswordNativeRegistration, login, password reset
GoogleOAuth 2.0Sign in with Google
GitHubOAuth 2.0Sign in with GitHub
MicrosoftOAuth 2.0Azure AD, Microsoft 365
AppleOAuth 2.0Sign in with Apple
SAMLEnterprise SSOCustom identity providers

Payment Gateways

ProviderFeatures
StripePayments, subscriptions, invoicing
PayPalStandard payments, PayPal checkout
SquarePOS, online payments

Email Services

ProviderFeatures
SendGridTransactional, marketing emails
Amazon SESHigh-volume email
MailgunTransactional emails
PostmarkTransactional emails

File Storage

ProviderFeatures
Amazon S3Object storage, CDN
Cloudflare R2S3-compatible storage
Google Cloud StorageObject storage

Webhooks

Outgoing Webhooks

Send data to external systems when events occur:

typescript
// Example: Sync orders to external ERP
{
  name: 'Sync Orders to ERP',
  entity: 'orders',
  event: 'create',
  condition: 'record.status === "paid"',

  url: 'https://erp.company.com/api/orders',
  method: 'POST',

  auth: {
    type: 'bearer',
    credentials: '${secrets.ERP_API_TOKEN}'
  },

  headers: {
    'Content-Type': 'application/json'
  },

  retryAttempts: 3,
  retryDelay: 60,
  enabled: true
}

Incoming Webhooks

typescript
// webhooks/stripe-payment.ts

export async function handleStripeWebhook(payload: any, context: WebhookContext) {
  const signature = context.headers['stripe-signature'];
  const event = stripe.webhooks.constructEvent(
    payload,
    signature,
    context.secrets.STRIPE_WEBHOOK_SECRET
  );

  switch (event.type) {
    case 'payment_intent.succeeded':
      const paymentIntent = event.data.object;
      await context.db.orders.update(
        { stripe_payment_intent: paymentIntent.id },
        { status: 'paid', paid_at: new Date() }
      );
      break;
  }

  return { received: true };
}

Payment Integration (Stripe)

Create Payment Intent

typescript
const paymentIntent = await services.stripe.createPaymentIntent({
  amount: 9999,  // in cents
  currency: 'usd',
  metadata: { orderId: 'order-uuid' }
});

return { clientSecret: paymentIntent.client_secret };

Subscriptions

typescript
// Create subscription
const subscription = await services.stripe.createSubscription({
  customerId: 'cus_xxx',
  priceId: 'price_xxx',
  trialDays: 14
});

// Cancel subscription
await services.stripe.cancelSubscription({
  subscriptionId: 'sub_xxx',
  immediately: false  // At period end
});

Integration Marketplace

Available Connectors

CategoryIntegrations
CRMSalesforce, HubSpot, Pipedrive
ERPSAP, NetSuite, Odoo
MarketingMailchimp, ActiveCampaign, Klaviyo
AnalyticsGoogle Analytics, Mixpanel, Amplitude
SupportZendesk, Intercom, Freshdesk
AccountingQuickBooks, Xero, FreshBooks
E-commerceShopify, WooCommerce, BigCommerce