Recipe: Send email from Custom GPT & Claude Actions
Expose Notify as an OpenAPI action for Custom GPTs or Claude — POST /api/email/send with x-api-key.
Use this when a Custom GPT (ChatGPT Actions) or Claude tool/action should send transactional email without you writing an agent framework. Still transactional, not newsletters.
You publish a tiny OpenAPI surface that points at Notify. Auth is an API key header — never put the key in the model instructions.
Prerequisites
- An API key — either from Credentials or agent bootstrap (
/api/agent/bootstrap/*, no dashboard). Prefer a domain-locked sending_access key in production apps. - A verified domain for production custom
from(agent retrievesdnsRecords; you publish them at your host) - Access to Custom GPT Actions and/or Claude tool configuration for your workspace
You can also import the full OpenAPI (bootstrap + domains + send) instead of the minimal send-only sketch below.
OpenAPI sketch
ChatGPT Actions and many Claude tool UIs accept an OpenAPI document. Minimal shape:
openapi: 3.1.0
info:
title: Notify send
version: 1.0.0
servers:
- url: https://notify.cx
paths:
/api/email/send:
post:
operationId: sendEmail
summary: Send a transactional email
security:
- ApiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [to, from, subject, html]
properties:
to:
type: string
from:
type: string
subject:
type: string
html:
type: string
responses:
'200':
description: Send accepted
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: x-api-key
Full product schema also lives at https://notify.cx/openapi.yaml if your host can import it and you only enable the send operation.
Custom GPT (ChatGPT Actions)
- Create / edit a GPT → Actions → import the OpenAPI above (or paste it).
- Authentication: API Key, header name
x-api-key, paste your Notify key into the GPT’s auth settings (not the instructions). - In instructions, say clearly: use
sendEmailonly for transactional mail the user requested; never for newsletters or cold outreach. - Test with a send to yourself.
Claude (tool / action)
- Register an HTTPS tool that POSTs to
https://notify.cx/api/email/send. - Configure auth so Claude’s connector sends
x-api-keyfrom a secret store — not from the system prompt. - Tool description: transactional only; require
to,from,subject,html.
If you use Claude Code / desktop MCP instead of Actions, prefer the official Notify MCP.
Example body the action should send
{
"to": "user@example.com",
"from": "noreply@your-verified-domain.com",
"subject": "Your magic link",
"html": "<p>Click to continue.</p>"
}
html is preferred; message and text also work.
Sandbox vs production
Until the domain is verified, production custom from stays locked. Use sandbox vs production or POST /api/email/send/test for API rehearsal.
After you send
Check Email Logs or the logs API. Delivery events can go to a webhook on Pro+.