Process inbound emails into tickets (POST)
const url = 'https://example.com/api/cron/inbound-email';const options = {method: 'POST'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/cron/inbound-emailScheduled hourly as the inbound-email stage of the hourly-sweeps
Slipstream schedule, via scripts/cron-inbound-email.sh. pg_cron is not
installed on this project, so a cron.schedule migration would be a
silent no-op. Protected by CRON_SECRET via the x-cron-secret header only.
Responses
Section titled “ Responses ”Inbound sweep result
object
False when any row errored or the ledger selection itself failed. A truncated batch is NOT a failure — the next hourly fire takes the rest.
object
Eligible ledger rows the selection returned.
Rows this sweep took the five-minute lease on.
Rows terminalized because the three-attempt ceiling was passed.
Rows another worker holds a LIVE lease on.
Rows already terminal.
Receipt outcomes by name (sent, failed, delivery_unknown, skipped, errored). A bad receipt never undoes ticket_created.
object
The batch cap or the internal deadline stopped the sweep with work left over.
object
Missing or invalid CRON_SECRET