Send transactional emails from your app. Manage sender identities and track delivery from Dashboard > Emails or the SDK.
Every Proyecta app can send transactional email. Verify a sender identity, then send from your app code — no separate email provider account required.
The Emails tab
Section titled “The Emails tab”Open Dashboard > Emails in the builder. The tab has two sub-tabs:
| Tab | What it’s for |
|---|---|
| Identities | Add and verify sender email addresses or domains |
| Sent | Browse sent emails with delivery status (sent, delivered, bounced, etc.) |
You can add a new sender identity and browse your email delivery history — all without writing code.
The two-step setup
Section titled “The two-step setup”- Create and verify a sender identity (an email address or a domain)
- Call
proyecta.email.send()with the verified address in thefromfield
Verify an email address
Section titled “Verify an email address”The simplest path is to verify a single email address.
import Proyecta from '@proyecta-ai/sdk';
const proyecta = new Proyecta({ apiKey: process.env.PROYECTA_API_KEY });
const identity = await proyecta.email.identities.create({ type: 'email', value: 'hello@myapp.com',});
// identity.status === 'verified' immediately upon creationTo re-trigger the verification check:
await proyecta.email.identities.verify({ identityId: identity.id });Verify a whole domain
Section titled “Verify a whole domain”For production apps, verify the entire domain so you can send from any address at it (hello@, support@, noreply@, etc.).
const identity = await proyecta.email.identities.create({ type: 'domain', value: 'myapp.com',});
// identity.status === 'verified' immediately upon creationDNS-based domain verification (SPF/DKIM record generation and recheck) is planned but not yet implemented.
Send an email
Section titled “Send an email”Once your identity is verified, send with:
await proyecta.email.send({ from: 'Acme <hello@myapp.com>', to: 'customer@example.com', subject: 'Your receipt from Acme', html: '<p>Thanks for your order — here are the details.</p>', text: 'Thanks for your order — here are the details.',});send returns the full sent email object (including id, last_event, and the message fields), which you can use to look up delivery status later.
Recipients. to, cc, and bcc all accept a single address or an array.
Content. Provide html, text, or both. For best deliverability, include a plain-text version.
Reply-to, custom headers, metadata tags. reply_to is supported (first address used). Custom headers and metadata tags are accepted by the API but are not yet forwarded to the delivery provider.
Track delivery
Section titled “Track delivery”List sent emails (paginated) with their latest delivery event:
const { data: emails } = await proyecta.email.list({ limit: 20 });for (const email of emails) { console.log(email.subject, '→', email.last_event); // last_event: 'sent' | 'delivered' | 'opened' | 'clicked' | 'bounced' | 'complained'}Fetch a single email with its full HTML/text body:
const full = await proyecta.email.get('email_abc123');console.log(full.html, full.text, full.last_event);Let the AI wire it up
Section titled “Let the AI wire it up”You don’t need to write this by hand:
"Verify hello@myapp.com as a sending identity.""Send a welcome email with Proyecta Email whenever a new user signs up. Use a nice HTML template.""After a successful checkout, send the customer a receipt using proyecta.email.send.""Show me the last 20 emails we've sent and whether they bounced."
Caveats
Section titled “Caveats”- The
fromaddress must be a verified identity. Sending with an unverified address returns an error. - Monthly limits apply based on your Proyecta plan.
Coming soon
Section titled “Coming soon”- Template editor — design transactional templates visually in the builder
- Bulk/batch send endpoint for mass mailings