with one click
sendgrid
Send transactional or marketing emails via SendGrid
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Send transactional or marketing emails via SendGrid
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Read or update contacts, opportunities, notes, and conversations in GoHighLevel
Save or retrieve records from Airtable bases
Send emails, SMS, or manage contacts via Brevo (formerly Sendinblue)
Manage bookings, availability, and event types in Cal.com
Check availability, create scheduling links, or list upcoming events in Calendly
Create or update tasks and lists in ClickUp
Based on SOC occupation classification
| name | sendgrid |
| display_name | SendGrid |
| description | Send transactional or marketing emails via SendGrid |
| auth_type | api_key |
| category | marketing |
When the user wants their voice agent to send emails via SendGrid after or during a call. Common triggers:
Check connection via check_connection("sendgrid").
If not connected: Use secret("sendgrid") in tool scripts. The system
will automatically emit the correct action card based on the platform
configuration. Do NOT emit action cards manually.
Ask for sender email: SendGrid requires a verified sender address.
Ask the user for their verified from email address.
{
"name": "sendgrid.send_email",
"description": "Send a transactional email via SendGrid",
"params": [
{"name": "to_email", "description": "Recipient email address", "type": "string", "required": true},
{"name": "subject", "description": "Email subject line", "type": "string", "required": true},
{"name": "text_body", "description": "Plain text email body", "type": "string", "required": true},
{"name": "from_email", "description": "Verified sender email address", "type": "string", "required": true}
],
"script": "let key = secret('sendgrid');\nlet payload = {personalizations: [{to: [{email: to_email}]}], from: {email: from_email}, subject: subject, content: [{type: 'text/plain', value: text_body}]};\nlet resp = http_post_h('https://api.sendgrid.com/v3/mail/send', payload, {'Authorization': 'Bearer ' + key, 'Content-Type': 'application/json'});\nif (resp.status === 202 || (resp.status >= 200 && resp.status < 300)) { return 'Email sent.'; }\nthrow new Error(`SendGrid ${resp.status}: ${resp.body}`);",
"side_effect": true
}
secret("sendgrid") for credentials/mail/send returns HTTP 202 Accepted on successfrom_email must be a verified sender in the SendGrid accountthrow using resp.status/resp.body