Email Delivery Skill
Delivers tax reports, compliance deadline alerts, and organisation invitations via the SendGrid API. Handles template rendering, attachment management, delivery status tracking, and bounce/complaint monitoring.
When to Use
-
Sending accountant reports (PDF/Excel attachments) via the send-to-accountant workflow
-
Delivering compliance deadline alerts to entity contacts
-
Sending organisation invitation emails to team members
-
Notifying users of completed forensic analysis results
-
Distributing shared report links
-
Sending amendment period expiry warnings
SendGrid Configuration
Environment Variables
Variable Purpose Required
SENDGRID_API_KEY
API authentication (SG.xxx format) Yes
NEXT_PUBLIC_APP_URL
Base URL for links in emails Yes
API Endpoint
POST https://api.sendgrid.com/v3/mail/send Authorization: Bearer $SENDGRID_API_KEY Content-Type: application/json
Sender Requirements
-
Sender email must be verified in SendGrid account
-
Use a noreply@ or reports@ address for automated emails
-
Include reply-to address for accountant communications
Email Templates
- Accountant Report Delivery
Field Content
Subject Tax Analysis Report — {Entity Name} — {FY}
From reports@{app-domain}
To Accountant email (from user input)
Body Summary of key findings + link to full dashboard
Attachments PDF report + Excel data export
Disclaimer TASA 2009 disclaimer in email footer
- Compliance Alert
Field Content
Subject [{Severity}] Tax Deadline: {Obligation} — Due {Date}
From alerts@{app-domain}
To Entity admin email
Body Deadline details, penalty information, action required
CTA "View in Dashboard" button linking to calendar page
- Organisation Invitation
Field Content
Subject You've been invited to {Organisation Name} on ATO Tax Optimizer
From invites@{app-domain}
To Invitee email
Body Invitation details, role description, accept/decline links
CTA "Accept Invitation" button with signed token
Expiry Invitation link expires after 7 days
- Analysis Complete Notification
Field Content
Subject Forensic Analysis Complete — {Entity Name}
From notifications@{app-domain}
To User email
Body Summary: X opportunities found, $X estimated value
CTA "View Results" button linking to recommendations page
Attachment Handling
Format Max Size MIME Type Use
PDF 20MB application/pdf
Tax analysis reports
Excel (.xlsx) 20MB application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Transaction data exports
CSV 10MB text/csv
Raw data exports
SendGrid limits: 30MB total per email (including encoding overhead).
Attachment Security
-
Never attach files containing raw Xero OAuth tokens
-
Never include TFN or sensitive personal information in attachments
-
PDF reports must include TASA 2009 disclaimer
-
Excel exports must include "ESTIMATE ONLY" header row
Delivery Tracking
Event Action
delivered
Log successful delivery
bounce
Flag email address, notify user
dropped
Investigate and notify user
spam_report
Remove from mailing list immediately
open
Track engagement (optional)
click
Track CTA engagement (optional)
Rate Limits
SendGrid Plan Daily Limit Rate Limit
Free 100/day N/A
Essentials 100K/month N/A
Pro 1.5M/month N/A
For this application, expected volume is low (< 50 emails/day). Free tier is sufficient for development.
Output Format
<email_delivery_result> <message_id>sg_abc123def456</message_id> <template>accountant_report</template> <to>accountant@example.com</to> <subject>Tax Analysis Report — DR Pty Ltd — FY2024-25</subject> <status>accepted</status> <sent_at>2026-02-13T10:30:00+11:00</sent_at> <attachments> <attachment name="DR-Pty-Ltd-Tax-Analysis-FY2024-25.pdf" size_kb="245" /> <attachment name="DR-Pty-Ltd-Transactions-FY2024-25.xlsx" size_kb="180" /> </attachments> <includes_disclaimer>true</includes_disclaimer> </email_delivery_result>
Best Practices
-
Always include TASA 2009 disclaimer in email body and attachments
-
Never send unsolicited emails — only send to users who opted in or were explicitly invited
-
Handle bounces immediately — remove bounced addresses to protect sender reputation
-
Use signed URLs for dashboard links — prevents unauthorized access
-
Limit attachment size — prefer dashboard links over large attachments
-
Log all sends for audit trail (who, when, what, to whom)
-
Respect unsubscribe — include unsubscribe link in all non-transactional emails
-
Test in sandbox first — SendGrid sandbox mode prevents accidental sends