Back to SayMail

REST API Integration

Route your spoken messages directly into any web service — calendars, task managers, messaging platforms, and beyond.

How It Works

Voice to API in three steps

SayMail transcribes your voice and sends an email. By adding a smart email-to-webhook relay as a CC recipient, that email is instantly converted to a structured JSON payload and posted to any REST API you choose — no custom server required.

🎙️
You speak
SayMail records
✉️
Email sent
CC to CloudMailin
JSON POST
CloudMailin fires
🔧
Your API
Do anything

The relay service of choice is CloudMailin, which provides a dedicated inbound email address and forwards every message to your endpoint as a clean JSON object. Their free tier covers 10,000 emails per month — more than enough for personal use.

Setup

Getting started

1

Create a free CloudMailin account

Sign up at cloudmailin.com. The free plan gives you a dedicated inbound email address and 10,000 messages per month at no cost.

2

Point CloudMailin at your endpoint

In the CloudMailin dashboard, set your Target URL to the REST endpoint you want to receive the data — a webhook on your own server, a Make (Integromat) scenario, a Zapier webhook, an n8n workflow, or any URL that accepts a POST request.

3

Add your CloudMailin address as a CC in SayMail

Copy the inbound email address CloudMailin assigned to you (it looks like abc123@cloudmailin.net) and paste it into the CC field in SayMail Settings. Every message you send will now be silently forwarded to your API as well.

4

Process the JSON payload

CloudMailin posts a JSON object to your endpoint. Your transcribed message is in the plain key (plain text) and the html key (formatted HTML). Parse whichever suits your use case and act on it however you like.

Example Payload

A simplified version of what CloudMailin posts to your endpoint:

{
  "headers": { "subject": "SayMail: Pick up milk on the way home — Apr 22, 10:14 AM" },
  "plain": "Pick up milk on the way home.",
  "html": "<div>Pick up milk on the way home.</div>",
  "envelope": { "from": "no-reply@saymail.me", "to": "abc123@cloudmailin.net" }
}

Ideas

What you can build

Once your spoken words arrive as structured data, the possibilities are limited only by your imagination. Here are a few starting points.

📅

Calendar entries

Parse dates and times from the transcription and create Google Calendar or Outlook events automatically.

Task lists

Append spoken items directly to Todoist, Things, Notion, or any task manager that has an API.

💬

Team messaging

Forward voice notes as messages to a Slack channel, Microsoft Teams thread, or Discord server.

🗒️

Personal notes

Append to a running Notion page, Obsidian vault via webhook, or a plain text log file on your server.

🤖

AI processing

Pipe the transcription through an LLM to summarise, categorise, or extract structured data before storing it.

📊

Custom dashboards

Write spoken data points directly to a database and visualise them in Grafana, Retool, or a spreadsheet.

From the Author

Tried and tested

The SayMail author has been using CloudMailin in production for over five years — originally to filter and process incoming Google Voice SMS messages via a REST endpoint. It is reliable, well-documented, and the free tier is genuinely generous. If you are comfortable writing a small amount of server-side code (or using a no-code tool like Make or Zapier), this integration opens up a remarkable amount of automation from a single spoken sentence.

No-code option: If you do not want to write any code, point your CloudMailin target URL at a Make or Zapier webhook. Both platforms can receive the JSON payload and route it to hundreds of apps — Google Sheets, Airtable, Trello, Slack, and many more — without writing a single line of code.