Scheduled reports — hosting checklist
Ilka uses Inngest on a 15‑minute UTC cron to sweep due schedules — not Vercel Cron. Share this page with whoever deploys or audits your production environment.
1. Subscription
Scheduled reporting requires an active Pro or Team plan (pricing). Free workspaces can build workbooks manually only.
2. Encrypting stored connection secrets
ILKA_SECRETS_KEY— exactly 64 hexadecimal characters (32 bytes). Generate locally:openssl rand -hex 32- Required when saving Airtable PATs and other encrypted fields.
3. Inngest (scheduled sweeps)
- Expose
POST /api/inngest(and sync the app in the Inngest dashboard). - Set
INNGEST_SIGNING_KEY(andINNGEST_EVENT_KEYif your deploy flow needs it) per Inngest’s Vercel docs. - Due reports run on about a 15‑minute cadence; allow a short delay after the cron time you picked.
4. Email delivery (Resend)
RESEND_API_KEYmust be set in production.- Verify your sending domain in Resend and align from-address with that domain to avoid spam.
5. Google Sheets connections
GOOGLE_OAUTH_CLIENT_ID,GOOGLE_OAUTH_CLIENT_SECRETNEXT_PUBLIC_SITE_URL— must match the public origin used in OAuth redirect URIs.- If you add Drive upload to a schedule, users may need to re-authorize after scope changes.
6. Optional: webhooks & signed download links
If failures mention download signing, set SCHEDULED_RUN_DOWNLOAD_SECRET or ensure ILKA_SECRETS_KEY is valid — see in-app run errors and FAQ.
7. First successful run (in-app)
From Scheduled reports: save a connection, use Test until it passes, create a schedule, then use Run now for an immediate verification (the automatic sweep follows the Inngest cron).