# Send invites automatically from Lemon Squeezy

Connect your Lemon Squeezy store to Smart Invites so each new order sends that customer a testimonial request by email.

When someone buys from your Lemon Squeezy store, Lemon Squeezy can tell ReTestimonial, and Smart Invites then emails that customer a request for a testimonial. You create a webhook in ReTestimonial, then add its URL to a webhook in Lemon Squeezy. Smart Invites are on Premium and Business.

1. **Create the webhook in ReTestimonial**

   Follow [Send invites automatically with a webhook](/help/collect/send-invites-automatically-with-a-webhook) and pick **Lemon Squeezy** under **Where do your customers buy?**. The fields come filled in for Lemon Squeezy's `order_created` event:

   | Field                           | Filled in with                                           |
   | ------------------------------- | -------------------------------------------------------- |
   | **Email path**                  | `data.attributes.user_email`                             |
   | **Name path**                   | `data.attributes.user_name`, the customer's full name    |
   | **Company path**                | Empty: Lemon Squeezy orders don't include a company name |
   | **Only invite when (optional)** | `meta.event_name` **equals** `order_created`             |

   Choose the form, the emails and the timing, then click **Create webhook**. On the next page, click **Copy** next to **Your webhook URL**, and keep the page open.

2. **Add the webhook in Lemon Squeezy**

   In your Lemon Squeezy dashboard, open **Settings** > **Webhooks** and add a webhook. Lemon Squeezy's [webhooks guide](https://docs.lemonsqueezy.com/help/webhooks) shows each field.

   1. Paste your webhook URL as the **Callback URL**.
   2. Type a **Signing secret** of your own, between 6 and 40 characters, and keep a copy of it.
   3. In the list of events, select `order_created`.
   4. Save the webhook.

3. **Paste the same signing secret**

   Back in ReTestimonial, paste the secret into **Lemon Squeezy signing secret (recommended)** and click **Save**. It must match the one in Lemon Squeezy exactly. The field then reads **Signature verification is on — unsigned events are rejected.** A saved secret can't be viewed again; to change it, click **Replace secret** on the webhook's **Setup** tab.

4. **Wait for the first order**

   The page shows **Listening for the first event…** until Lemon Squeezy sends an order, then **Event received — it works** once a customer is invited. To check it before a real customer buys, see [Test mode](#test-mode).

## Test mode

Lemon Squeezy keeps test-mode and live-mode webhooks apart: a test-mode webhook fires only for test orders, and a live one only for real orders ([Lemon Squeezy's guide](https://docs.lemonsqueezy.com/help/webhooks/simulate-webhook-events)). Add the URL in live mode for your real customers. If you add it in test mode too, give both Lemon Squeezy webhooks the same signing secret, because a ReTestimonial webhook checks only one.

In test mode you can place a test order, or have Lemon Squeezy simulate `order_created` for an existing test order.

> **Warning:** ReTestimonial recognizes a test-mode order: the event shows up as skipped, with the reason "A test event from the platform, so nobody was invited and no invite was used". Nobody is emailed, so a test order checks the connection. Only live orders invite their customers.

To check the paths without inviting anyone, use the webhook's **Test** tab instead. Lemon Squeezy's webhooks page shows the full payload of each recent request: copy one into **Event payload** and click **Run test**. Nothing is saved and no email is sent. See [Test a Smart Invites webhook](/help/collect/test-a-smart-invites-webhook).

## Subscriptions

Lemon Squeezy sends `order_created` for a subscription's first payment too, but not for its renewals ([event types](https://docs.lemonsqueezy.com/help/webhooks/event-types)). So with the default setup, each new subscriber is invited once.

If your store sells only subscriptions, you can select `subscription_created` in Lemon Squeezy instead. Then click **Settings** on the webhook's page, change the filter's **Value** to `subscription_created` and click **Save changes**. The email and name paths stay the same.

## Skipped and failed Lemon Squeezy events

- **Other events are skipped.** Any event other than the one in your filter, such as `order_refunded` or a subscription event you also selected, shows as **Skipped** with "Didn't match your “only invite when” filter". If you select both `order_created` and `subscription_created`, a new subscriber is still invited only once.
- **A refund doesn't stop the emails.** The customer was invited when the order came in. To stop the rest of their emails, open the webhook's campaign on the **Campaigns** tab and choose **Cancel remaining emails** on their row. See [Track invite campaigns](/help/collect/track-invite-campaigns).
- **Repeat buyers are skipped** if they were invited in this project within the webhook's **Re-invite cooldown (days)**, so a customer who orders again soon isn't asked twice.
- **Signature failures.** When the secrets don't match, the event shows as **Failed** with "The signature didn't match". Set the same secret in Lemon Squeezy and with **Replace secret** on the **Setup** tab. Lemon Squeezy retries a rejected request up to three more times, so one order can show as several failed events.

## Related articles

- [Send invites automatically with a webhook](/help/collect/send-invites-automatically-with-a-webhook)
- [Smart Invites](/help/collect/smart-invites)
- [Track invite campaigns](/help/collect/track-invite-campaigns)
- [Invite emails not sending](/help/troubleshooting/invite-emails-not-sending)
