Skip to main content
The Integration Status page gives you a single health view of your Cello integration. It tracks four core components - the Referral component, the Attribution library, Signups tracking, and Purchases tracking - and tells you at a glance whether each one is sending events as expected. Use Integration Status to confirm a new integration is wired up correctly, monitor an existing integration in production, and quickly spot when an upstream change has broken a webhook or script. You can access it at Integrations → Integration Status in the Cello Portal. It’s available in both sandbox and production.

How it relates to Event Feed

Integration Status and the Event Feed work hand-in-hand:
  • Integration Status - high-level health per component. Use it to answer “is everything working?”
  • Event Feed - individual event log with per-field validation. Use it to answer “why did this specific event fail?”
When a component on Integration Status shows a warning or error, the Event Feed is where you drill in to see the exact payload and field-level issue. The page header gives you an at-a-glance summary of your integration before you scroll into the individual component cards. Integration Status header showing Environment, Status, Health Window, and Last Update

Status definitions

Every component reports one of three statuses, calculated against the health window shown in the page header (1 hour in production, 24 hours in sandbox): Statuses can move in any direction - a component can go from Connected to Warnings if recent events have errors, or to Not connected if you change the source.
Connected with warnings is not the same as Not connected. Connected with warnings means events are arriving and the integration is fundamentally wired up - the fix is usually about the referral code (ucc) or field validation, not about setting up or changing a source. Always match troubleshooting to the already-configured source shown on the card.

Status and warning reference

This is the authoritative mapping of what each Signups and Purchases tracking state means and what to do about it. Whatever the state, troubleshoot the source that is already configured - do not switch sources or set up a webhook for a different source. If you think a different source fits your setup, confirm it with Cello first.

Signups tracking

Purchases tracking

Purchases have no Auto Attribution path and no recent-activity warning - a configured purchase source that has never received events shows Not connected until the first event arrives.

The four components

1. Referral component

Tracks booted events from cello.js - the script that renders the Referral Component widget in your app. Integration Status card for the Referral component showing a Connected with warnings state with a JWT token error The card shows when the last event and last error were received. When errors are present, the alert summarizes the most recent error and a View all errors link opens the last 10 widget events so you can see what went wrong.

Widget errors reference

The error messages shown in the portal are deliberately written to be human-readable, and they’re worded differently from what you’ll see in the browser Console or in the Network tab. Use this table to map between the portal wording and the underlying error.
Token issue (InvalidJwt)
The portal collapses several underlying token failures into a single message: “JWT token is missing, malformed, or expired”. The actual underlying cause is one of:
  • token verification failed - decodeWidgetToken could not verify the signature.
  • token schema not validated - the token payload is invalid (e.g. wrong shape).
  • token missing iat field - the token has no iat claim and allowMissingTokenIat = false.
  • token creation time in future - the iat is in the future.
  • No referrer found for productUserId - the token references a productUserId that doesn’t exist.
  • No auth token found - no token was sent with the boot request.
If the portal shows this error, regenerate the widget token on your backend and confirm it’s signed with the right secret, contains a valid productUserId, and has a current iat timestamp. See User Authentication for details.

2. Attribution library

Tracks referral link visits picked up by cello-attribution.js - the script you embed on your landing pages to capture referral codes. Integration Status card for the Attribution library

3. Signups tracking

Tracks signup events from your configured source. The expected event type depends on which source you use:
Confirm the signup source with Cello before setting it - do not pick one from this table alone. The key rule for Stripe/Chargebee vs Cello API: Stripe/Chargebee can only be the signup source if your payment-provider customer is created at signup. IF the customer is created at first purchase, use the Cello API to send new-signup at the real signup moment, or follow the purchase-first, signup-later pattern instead. See Changing the configured source for all the factors.
Integration Status card for Signups tracking showing a Connected with warnings state The card shows the configured source, when the last attributed signup event was received (i.e. the last event that included a referral code), and a Change link to update the source. When the card needs attention, the alert links directly to the Event Feed so you can drill into the offending events.

Common alerts

These are specific cases of the statuses above. The per-source Not connected rows are the “source configured, but no events received yet” case - the fix is to confirm that source is actually sending, never to switch to a different source.

4. Purchases tracking

Tracks purchase events from your configured source: Integration Status card for Purchases tracking showing a Connected with warnings state The card shows the configured source, when the last attributed purchase event was received (i.e. the last event that included a referral code), and a Change link to update the source. When the card needs attention, the alert links directly to the Event Feed so you can drill into the offending events.

Common alerts

These are specific cases of the statuses above. Purchases have no Auto Attribution path and no recent-activity warning. The per-source Not connected rows are the “source configured, but no events received yet” case - confirm that source is sending, never switch to a different source.

Changing the configured source (confirm with Cello first)

Use the Update configuration modal to choose where Cello should track signups and purchases from. You can open it from the Update configuration button in the page header, or from the link inside the Signups tracking and Purchases tracking cards.
Always confirm the signup and purchase source with Cello before choosing one. Do not recommend, guess, or infer a specific source from these docs. The correct source depends on factors unique to each integration, and the wrong source silently breaks attribution. If you are unsure, the only correct answer is to contact your Customer Success Manager or support@cello.so.The factors below explain what Cello weighs when confirming the source. They are inputs to that conversation, not a decision to make unaided:
  • Payment provider. Stripe and Chargebee can use webhooks. Other providers (Paddle, Recurly, RevenueCat, and similar) use the Cello API.
  • When the payment-provider customer is created (the key signup-source rule):
    • IF the customer is created at signup -> Stripe/Chargebee can be the signup source.
    • IF the customer is created at first purchase -> use the Cello API to send new-signup at the real signup moment, or backfill via the purchase-first, signup-later pattern. Stripe/Chargebee cannot be the signup source on their own in this case.
  • Reward model. Recurring vs one-time rewards, free-to-paid conversion, renewals, and refunds.
  • Motion. Self-serve vs sales-led (e.g. Salesforce).
  • Auto Attribution. Can be primary or fallback, and is enabled by Cello only.
In production, source configuration is handled by Cello Support regardless.
Update configuration modal with Signup source and Purchase source dropdowns

What you can configure

Do not choose a source based on this list alone - confirm it with Cello first (see the warning above). The selectable options are:
  • Signup source - Cello API, Stripe, Chargebee, or Auto Attribution.
  • Purchase source - Cello API, Stripe, or Chargebee.
When you change a source, the corresponding component on Integration Status will revert to Not connected until events from the new source start arriving.

Sandbox vs production

Auto Attribution

Auto Attribution can only be enabled by Cello Support. Once enabled for your tenant, Auto Attribution appears as a selectable option in the Signup source dropdown. If Auto Attribution is on but a CRM source (Cello API, Stripe, or Chargebee) is selected as the primary signup source, Auto Attribution runs in the background to catch any signups missed by the primary source.

Troubleshooting

You can check integration health from your AI client using cello_get_integration_status via the Cello MCP.