Skip to main content

Introduction

The Loops integration turns Dodo Payments events into Loops events, so payment confirmations, subscription updates, and failed payment notices go out as Loops emails. A transformation maps each payment event to a Loops event, and that event triggers the matching workflow in Loops.
You need a Loops API key. In Loops, go to Settings → API and generate a key.

Getting Started

1

Open the Webhook Section

In the Dodo Payments dashboard, go to Developer → Webhooks and click Add endpoint.
Add endpoint dialog with Loops selected in the Integration dropdown
2

Select Loops

In the Integration list, select Loops.
3

Enter API Key

Paste your Loops API key into the API key field. Dodo Payments sends it as an Authorization header on every delivery. The integration sets the destination URL, so the key is the only value you supply.
4

Configure Transformation

Edit the code under Transformation code so each event becomes a Loops event. Start from the examples below. Under Subscribed events, select the events your code handles.
5

Test & Create

Under Test this code, run the transformation against a sample payload, then click Create endpoint.
6

Done

Payment events now trigger emails through Loops.

Transformation Code Examples

Each example rewrites one event type into the body of the Loops Send an Event API: an eventName, the contact’s email, and eventProperties that your Loops emails can use.

Payment Confirmation Email

This example sends a payment_confirmation event when a payment succeeds.
payment_confirmation.js

Subscription Welcome Email

This example sends a subscription_welcome event when a subscription becomes active.
subscription_welcome.js

Payment Failure Notification

This example sends a payment_failed event with the error message and a retry link. Replace yourdomain.com with your own domain.
payment_failure.js

Tips

  • Give each event a descriptive name, such as payment_confirmation, so your Loops emails stay organized.
  • Include the customer properties your emails use for personalization.
  • In Loops, set up a workflow and email for each event name you send.
  • Use the same property names across events.
  • Test email delivery before you go live.

Troubleshooting

  • Check that the API key is correct and active.
  • Check that each event name matches the event that triggers your Loops workflow.
  • Check that recipient email addresses are valid.
  • Review your Loops sending limits and quotas.
  • Check that the payload matches the Loops API format: an eventName, plus an email or userId.
  • Check that all required fields are present.
  • Check that event names are formatted correctly.
  • Give each event property a string, number, boolean, or date value.
  • Check the API key’s permissions.
Last modified on September 26, 2026