SendGrid · api · fg-0414

SendGrid dynamic template placeholders render blank when the code uses substitutions

{{first_name}} renders empty in the delivered email

Verified 2026-10-15 · Confirmed by 0 builders · Trust 50/100

Cause

Dynamic templates read only dynamic_template_data, and substitutions are documented as not to be combined with them. Code written for legacy templates still sends substitutions.

Fix

Move every value into dynamic_template_data on each personalization and use Handlebars syntax in the template.

Apply

personalizations: [{ to: [{ email }], dynamic_template_data: { first_name: 'Ana' } }], template_id: 'd-xxxxxxxx'

Affects: SendGrid v3 Mail Send, dynamic templates (d- ids), as of 2026-10

Sources

Have your agent know this before it fails

claude mcp add --transport http footgun https://getfootgun.com/api/mcp