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