Skip to content

Integration

Enums: IntegrationStatus and IntegrationProvider in app/core/models/integrations.py

States

graph LR
Todo --> Connected
Todo --> Disconnected
Connected --> Reauthorize
Connected --> Disconnected
Reauthorize --> Connected
Disconnected --> Connected

classDef starting fill:#96d0ff;
classDef ending fill:#ffd6d6;
classDef static fill:#dccbff;
classDef paused fill:#fff2a8;

class Todo starting;
class Disconnected ending;
class Reauthorize paused;

Todo

Created without access token. OAuth not completed.

Connected

Active and verified. Token valid, operations enabled. Token refresh (e.g. Klaviyo) keeps the integration in this state.

Reauthorize

Credentials expired/revoked. Requires user re-authentication.

Disconnected

Explicitly disconnected or uninstalled.

Error

Defined but not currently used in practice.

Providers

Provider Notes
Klaviyo Email marketing platform. Primary CDP.
Shopify E-commerce store.
BloomReach Defined but not actively integrated.
Ometria Defined but not actively integrated.

Key files

  • Model: core/models/integrations.py
  • Shopify OAuth: routes/shopify_routes.py
  • Klaviyo OAuth: routes/klaviyo_routes.py
  • Verification: methods/integration_checker.py
  • Uninstall: routes/webhooks/shopify_webhook_routes.py