Everything you need to build powerful AI workflows.
Ferio turns your inbox into a programmable AI assistant. Three steps to your first Spark:
Today, Ferio supports five trigger types:
You can narrow which emails trigger a workflow:
invoices@acme.com or just acme.com).Your AI prompt tells Claude what to do with each email. Keep it specific.
Process this email
Extract the invoice number, vendor name, and total amount from this email. Format the output as JSON with keys: invoice_number, vendor, total. If any field is missing, use null.
Claude automatically receives the email's from, to, subject, date, and body as context — you don't need to mention these.
More integrations coming: Slack messages, Notion pages, Google Calendar.
Action params support placeholders that get resolved at runtime:
{{trigger.subject}} — the email subject (or any field from the trigger){{trigger.from}} — the sender's email{{ai}} — Claude's full outputExample label: Invoices/{{trigger.from}} dynamically organizes by sender.
Open any workflow and click the ▶ Test run button (top right). This fires a Spark immediately with mock email data, so you can:
Test Sparks count toward your monthly limit. They appear in your Sparks history just like real ones.
Counts reset on the 1st of each month at 00:00 UTC. We email you when you hit 80% and 100%.
You can manage workflows and Sparks programmatically with API tokens. Create a token from Settings → API tokens.
Send your token as a Bearer header:
Authorization: Bearer ign_<your-token>
curl https://api.sparkferio.com/api/workflows \ -H "Authorization: Bearer ign_xxx"
If you have a webhook-triggered workflow, you can also POST directly to its public URL (no auth needed beyond the secret in the URL):
curl https://api.sparkferio.com/webhooks/trigger/<webhook-secret> \
-X POST \
-H "Content-Type: application/json" \
-d '{"any":"data"}'GET /api/workflows — list workflowsPOST /api/workflows — create workflowGET /api/workflows/:id — get workflowPATCH /api/workflows/:id — update workflowDELETE /api/workflows/:id — delete workflowPOST /api/workflows/:id/test — fire test SparkGET /api/sparks — list SparksPOST /api/sparks/:id/retry — retry a failed Spark/folders/ in the Drive URL. Make sure your Google account has write access to it.