Email groups
An email group turns an address on a receiving domain, such as [email protected], into a shared address: every message sent to it is forwarded to each member, like a Google Workspace group. Create groups under Email → Email groups.
An email group turns an address on a receiving domain, such as [email protected], into a shared address: every message sent to it is forwarded to each member, like a Google Workspace group. Create groups under Email → Email groups.
A support email channel whose address is on a domain that already receives mail at Ha Tang (Email → Domains → Receiving) now needs no setup: mail to that address goes straight to the Inbox, with no forwarding and no separate MX subdomain.
The Email API now checks the scopes of the key, as the dashboard has always described them:
POST /emails, POST /emails/batch, the SMTP relay) and changing a scheduled send (PATCH /emails/{id}, POST /emails/{id}/cancel) need email:send.GET /emails, GET /emails/{id}, GET /emails/{id}/events) needs email:read; email:send and email:write include it.Before, any valid key could call these endpoints. A key without the scope now gets 401 restricted_api_key (550 5.7.1 over SMTP). Keys with full access (*), email:* or email:send are not affected. If a key that sends email has only other scopes, such as email:write or chat:*, add email:send to it under API Keys in the dashboard.
@hatang/sdk 0.4.0 calls https://api.hatang.dev by default. Before, a client created without baseUrl or HATANG_BASE_URL called http://localhost:3001; local development now passes baseUrl (or sets HATANG_BASE_URL) instead.
New calls:
templates.create/get/list/update/remove/publish/duplicate, and emails.send({ to, template: { id, variables } }).contacts.* without audience_id, by id or email, with properties, segments and topics; new segments, topics and contactProperties namespaces. audience_id still uses the older audience routes.events.*, automations.* and automations.runs.*.emails.metrics(), logs.list/get and usage.get.The blog namespace is removed. See the Node.js guide.
@hatang/sdk 0.3.0 reads received email: emails.receiving.list(), .get(id), and the attachments with signed download URLs (valid for an hour). Domains gain capabilities, so domains.update({ id, capabilities: { receiving: "enabled" } }) turns receiving on. Canned responses gain subject and is_private, and payment links gain qr_payload for apps that draw the VietQR code themselves.