Integrations
Health and monitoring
formbase keeps your integrations running behind the scenes — refreshing tokens before they expire, pausing when something breaks, and showing you exactly what happened so you can fix it fast.
Proactive token refresh
A daily background job checks the OAuth connections in your workspace, including Cal.com. If a token expires within the next 24 hours, formbase refreshes it automatically — no action needed from you.
This applies to Google, Slack, Linear, Airtable, and Cal.com. Notion and GitHub issue tokens that don’t expire, so they’re skipped. Discord tokens expire after about 7 days and are refreshed on demand right before each delivery rather than by the daily job.
If a refresh fails — for example because the connection was revoked on the provider side — formbase marks the connection as expired and moves every integration that shares it into an error state. You’ll see a warning on each affected integration and receive a notification email.
Health states
Each integration card carries a status badge, and opening the integration shows a banner explaining what to do. The badge says Active, Paused, or Delivery error; the banner is more specific.
| What you see | What it means | What to do |
|---|---|---|
| Active | Working normally. Submissions are delivered as they come in. | Nothing — you're all set. |
| Paused | Either you paused it, or formbase paused it after 5 failures in a row. | Fix the cause, then press Resume. Delivery picks up from the next new submission. |
| Connection expired | The OAuth token could not be refreshed. This takes priority over any delivery error. | Press Reconnect on the integration card or in the detail panel. |
| Lost access to the destination | The connected account can no longer write there. | Re-share the destination with that account, or reconnect with one that has access. |
| Destination not found | The spreadsheet, database, or channel no longer exists. | Delete the integration and create a new one. Sheets, Notion, Airtable, Slack, and Discord destinations are fixed at setup; a Linear team or GitHub repository can be changed in place. |
| Delivery failed | Recent deliveries failed for an unexpected reason. | Check the event log in the detail panel for the error message. |
Connection problems always take priority. If a token expired, reconnecting fixes every integration that shares that account at once — no need to address each one separately.
Error indicators
When something goes wrong, formbase shows it in two places:
Integration card — the card shows a status badge and a colored border: orange for a connection problem, red for a delivery error. When the connection expired, a Reconnect button appears on the card itself.
Detail panel — open the integration to see a banner naming what happened and how to fix it.
Auto-pause after repeated failures
If an integration fails 5 times in a row, formbase pauses it so a broken destination cannot keep burning deliveries. An authentication, permission, or not-found error skips the counter and stops the integration immediately, because retrying cannot fix it.
Either way, an email goes to the person who set the integration up — or to the workspace owner when that address is unavailable. It is sent at most once per integration per 24 hours, so one broken destination cannot flood your inbox.
Fix the underlying issue, then press Resume. Delivery picks up from the next new submission.
Event log
Each integration lists its last 20 events under Recent events — deliveries, connection tests, and backfill exports, each marked as passed or failed. A failed entry shows the destination’s own error message, so a Notion validation error reads exactly as Notion worded it. A failed backfill also gets a Retry button that restarts the export.
Failed deliveries and retries
Every delivery gets up to 5 attempts, waiting at least 1, 2, 4, and 8 minutes between them, or longer when the destination asks for more
time through a Retry-After header. formbase looks for due retries every 30 minutes, so each retry can come up to half an hour
later, and the last attempt about two hours after the first.
Submissions that use up all 5 attempts are counted in a banner at the top of the integration: “3 submissions failed to deliver”. Retry all re-queues every one of them and reactivates the integration if it was paused or errored. The banner is hidden when nothing has failed.
Analytics destinations are separate
Everything on this page covers submission integrations. Analytics event forwarding is best-effort and never retried, and Axiom answer streaming stops on its own after 20 consecutive failures. See Analytics streaming.
Reconnecting an expired credential
When a connection expires, click Reconnect on the integration card or in the detail panel. This re-runs the OAuth flow with the same provider. Once authorized, the credential is restored and all integrations using that account resume automatically.
You can also switch to a different connected account from the detail panel if the original account is no longer available.
FAQ
Once a day. Tokens expiring within 24 hours are refreshed automatically. If you suspect an issue sooner, open the integration detail panel — the health state updates in real time based on delivery results.
No. Submissions are always saved in formbase regardless of integration status. Failed deliveries are queued and can be retried from the detail panel once the issue is resolved.
formbase refreshes tokens proactively, so in most cases you won’t notice. If the refresh fails, you receive an email notification immediately — typically before the token actually expires.
The integration switches to the new account. Make sure the new account has access to the same destination (spreadsheet, database, channel). If the destination doesn’t exist in the new account, you’ll need to update the integration settings.