> Plandalf has no SendGrid step. A Send Webhook step can call SendGrid's Mail Send API with a dynamic template after a Stripe-paid checkout, refund or failed payment.

Source: https://plandalf.com/apps/stripe/integrations/sendgrid
Last modified: 2026-10-26

Native on one side, webhook on the other

# Stripe + SendGrid integration

Stripe takes the payment, Plandalf runs the checkout, and Send Webhook asks SendGrid to send a dynamic template to the buyer.

[Start your 14-day free trial](https://admin.plandalf.dev/signup)[Jump to the setup](#setup)

No credit card required. No coding required.

**Stripe**

**SendGrid**

## Does Stripe integrate with SendGrid?

Plandalf has no SendGrid steps and does not sync Stripe customers into SendGrid. A Send Webhook step can post to SendGrid's Mail Send API with your API key and a dynamic template ID, so a paid Stripe checkout, a refund or a failed payment sends an email from your own SendGrid account.

## What moves between Stripe and SendGrid

Event

From and to

Through

What happens

Checkout completed

Plandalf (paid via Stripe)SendGrid

Webhook

A Send Webhook step posts to the Mail Send endpoint. The buyer's address goes in the first personalization, and `dynamic_template_data` carries the product, total and invoice number for the template.

Cart recovery

PlandalfSendGrid

Webhook

A declined card starts the trigger with a `retry_url`. Passing it in the template data puts the payment link in a SendGrid email.

Invoice refunded

StripeSendGrid

Webhook

A refund that succeeds in Stripe starts Invoice Refunded. Its refund amounts, such as `refund_amount_formatted`, can fill a refund confirmation template.

Countdown image in a template

PlandalfSendGrid

Checkout embed

A Plandalf promo image tag works in a dynamic template when the send call includes an `email` field in the template data to use as the `ref`.

## Send a SendGrid dynamic template after a paid checkout

You need a published Plandalf checkout on Stripe, a SendGrid API key with mail send permission, a verified sender and a dynamic template.

1.  ### Prepare the template
    
    In SendGrid create a dynamic template and note its ID, which starts with `d-`. Write Handlebars placeholders such as `{{name}}` and `{{total}}` where the order details go.
    
2.  ### Create the sequence
    
    In Plandalf open Automation, then My Sequences. Choose Plandalf, Checkout Completed, pick the offer and choose a recent checkout as the sample on the Test tab.
    
3.  ### Add Send Webhook
    
    Set POST and the URL `https://api.sendgrid.com/v3/mail/send`. Add an `Authorization` header that holds Bearer and your SendGrid key. Use the EU host instead if your regional subuser requires it.
    
4.  ### Write the JSON body
    
    Set `from` to your verified sender, `template_id` to your `d-` ID and `personalizations` to a list whose first item has `to` set to the buyer's `{{trigger.customer_email}}` and `dynamic_template_data` holding `name`, `total` and `invoice` values from trigger variables.
    
5.  ### Test and read the answer
    
    A step test sends a real email, so address it to yourself. SendGrid answers HTTP 202 when it accepts the message, which is acceptance, not proof of delivery.
    
6.  ### Rehearse with a test card
    
    Switch on Run on test purchases, buy through the test link with a Stripe test card, then check the Events view and your inbox before you switch the setting off.
    

## What sellers do with Stripe and SendGrid

### Order confirmation in the shop's house design

A seller who maintains one set of SendGrid templates reuses the same dynamic template for purchases made in Plandalf, so receipts look like every other message.

### Subscription dunning with a pay link

A software seller sends a failed-payment email from SendGrid that carries the `retry_url`, instead of using Plandalf's own recovery email.

### Refund notice for a high-value order

A refund sequence sends a confirmation with the refunded amount, and a second step posts to an internal address so the team sees it.

## Limits and gotchas

-   SendGrid's Mail Send API requires `personalizations` and `from`, and each personalization needs a `to`. Do not mix `substitutions` with `dynamic_template_data`, which is for `d-` templates only.
-   A 202 from SendGrid means the request was accepted. What happens to the message afterwards is visible in SendGrid, not in the Plandalf run.
-   Plandalf's Send Webhook waits 30 seconds, sends the payload as JSON and promises no retries. An error body from SendGrid appears in the step output in the Events view.
-   Plandalf has no SendGrid trigger, so anything that should flow back from SendGrid has to come through your own code or Zapier calling a Plandalf catch URL.
-   Put the SendGrid key in the step headers only. Rotate it if it has ever been pasted into a page or a shared message.

## Stripe and SendGrid: common questions

Does Stripe integrate with SendGrid?

Plandalf has no SendGrid app, so a paid Stripe checkout reaches SendGrid through a Send Webhook step that calls its Mail Send API. For other Stripe routes, check SendGrid's own integrations list.

How do I send Stripe purchase emails with SendGrid?

Build a dynamic template in SendGrid, then add a Send Webhook step to a Plandalf sequence on Checkout Completed that posts to the Mail Send endpoint with your API key and template ID.

Should I use SendGrid or Plandalf's Send Email?

Use Plandalf's Send Email if a plain message from a verified domain is enough. Use SendGrid when you already have templates, suppression lists or a sending reputation there.

Why does SendGrid return 202 but no email arrives?

202 means SendGrid accepted the request. Check the template ID and the verified sender, then look in SendGrid for what happened to the message after that.

## Guides for this pair

-   [Plandalf with Stripe](https://plandalf.com/platforms/stripe)
-   [Plandalf with SendGrid](https://plandalf.com/platforms/sendgrid)
-   [Automations overview](https://plandalf.com/docs/integrations/plandalf)
-   [Webhooks and catch URLs](https://plandalf.com/docs/api/webhooks)
-   [Create a promo](https://plandalf.com/docs/timers/create-promo)

[Start your 14-day free trial](https://admin.plandalf.dev/signup)

## More from Stripe and SendGrid

-   [**Stripe + Vue**A Vue 3 component renders a button, the browser SDK opens the checkout, and your Stripe account takes the payment.](https://plandalf.com/apps/stripe/integrations/vue-app)
-   [**Stripe + Webflow**Style the button in Webflow Designer, add one custom attribute, and a Plandalf checkout charging your Stripe account opens from it.](https://plandalf.com/apps/stripe/integrations/webflow)
-   [**Stripe + WordPress**WordPress stays the page; a Plandalf button or inline checkout on it takes payment through your connected Stripe account.](https://plandalf.com/apps/stripe/integrations/wordpress)
-   [**HubSpot + SendGrid**Plandalf does not sync HubSpot with SendGrid. It sits beside both: checkout events by webhook, countdown images in the emails each one sends.](https://plandalf.com/apps/hubspot/integrations/sendgrid)

Checked October 26, 2026 against Plandalf's own setup guides and the vendor documentation: [Twilio SendGrid docs: Mail Send API](https://www.twilio.com/docs/sendgrid/api-reference/mail-send/mail-send).
