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
Free includes 1 trial scheduled report (5 successful runs/month). Paid Pro, Team, or Agency plans unlock more capacity (pricing).
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).