Skip to main content
“Your system triggers the gift, Snappy handles the experience, the recipient chooses what they want.” Use this recipe when you want to notify a recipient and let them select their own gift from a Collection, or when you want to send a specific gift but don’t have the recipient’s shipping address upfront. Common use cases include:
  • Employee Recognition & Retention
  • Sales Lead Nurturing
  • Client Onboarding & Appreciation
In this model, your system is responsible for creating the Gift. Snappy then takes over: notifying the recipient, presenting the gift experience, collecting their address, and fulfilling the order. Your integration only needs to handle two things - creating the gift, and listening for status updates via webhooks.

What you’re building

Four surfaces make up the end-to-end flow, three of them on Snappy’s side:

Trigger

Your system creates a gift via POST /gifts with recipient identity and campaign context.

Notify

Snappy emails the recipient a magic link to a personalized claim page (auto or manual).

Claim

Recipient chooses a gift, provides shipping details, and Snappy generates the order.

Track

Your backend consumes webhook events to follow the gift through claim and delivery.

Before you start

1

Have a Campaign ready

Every gift is created within a Campaign - a reusable template that carries the Collection or Product, budget, branding, and gift customization settings. Create one via the Snappy Dashboard or via the API (POST /campaigns). Campaigns created via the API are automatically assigned the Account’s default Billing Method.
2

Confirm your Account and Billing Method

The Account you’re sending under must have an active Billing Method. Discover the available methods via GET /v3/billing-methods (V3 endpoint - the funding source model is the same across V2 and V3).
3

Get your API key with the right scopes

All requests authenticate with an X-Api-Key header. For this guide you’ll want campaigns:read, gifts:create, and one of gifts:read:masked or gifts:read:unmasked depending on whether you display recipient details in your UI. See Authentication & Security.
Store your API key as an environment variable, keep it server-side, and never hardcode it or ship it in your frontend bundle. Rotate the key if it’s ever exposed.

Setting up your API client

Before making any API calls, initialize your HTTP client with your API key. This setup is used throughout the steps below.

Step 1 - Identify your Campaign

Every gift is created within a Campaign. Before making any API calls, you need the id of the Campaign you want to send under. Use GET /campaigns to retrieve your Campaign list and confirm the correct id. The endpoint paginates via skip / limit and returns each Campaign’s id, name, status, and Collection/Product configuration.
In production, cache the campaign lookup - Campaigns change infrequently, and you don’t want a GET /campaigns call on every gift send. A short TTL (a few minutes) is plenty.
Your Campaign should already have a Collection or Product assigned, along with your preferred Gift Customization settings.
For the full list of Campaign configuration options, see the Campaigns V2 Overview.

Step 2 - Create the Gift

Call POST /gifts with your Campaign ID and recipient details. This is the core action that initiates the entire gifting flow.
Snappy creates a Gift object and returns it in the response, including a unique link - the recipient’s personal claim URL. If your Campaign’s Notification Policy is configured to notify automatically, Snappy sends the recipient an email immediately. If not, you can use the link from the response to trigger your own notification.
Include a key for every recipient to prevent duplicate gifts. Send the same key twice and you get the same gift back, no duplicate. Use a stable identifier tied to the send occasion, like user-{userId}-anniversary-{year}. See Duplicate Gift Detection for details.
V2 uses firstname / lastname (lowercase, merged) in this endpoint. V3 uses firstName / lastName (camelCase). Match the casing per version.

Step 3 - Recipient claims the Gift

This step happens entirely within Snappy’s recipient experience - no API calls required from your side.
The recipient opens their claim link, browses the Collection (or sees their assigned Product), selects a variant, and enters their shipping address. Snappy automatically generates an Order once the selection is complete. From your integration’s perspective, the next signal you receive is a webhook (Step 4).

Step 4 - Track status via webhooks

Rather than polling the API, listen for webhook events to track the gift as it moves through its lifecycle. Key events to handle: Every webhook arrives in the same envelope - a webhookData block describing the event and an eventData block with the payload. Any metadata you attached at creation round-trips through the eventData, so you can always map an event back to your internal IDs.
For the full list of webhook events, payload shapes, and setup instructions, see Webhooks: Setup and Webhook Event Types.

Handle the errors people will actually hit

Most of your gift sends will succeed silently. The few that fail tend to fail for the same handful of reasons: Every failure uses the V2 error envelope - { status, errorCode, message } on non-400 responses, or { path, errorCode, message } on validation errors. Branch on errorCode, never on message.
For bulk sends, plan for partial failure from the start. When you send to 500 recipients and 3 fail, you want to log the 3 failures with enough context to retry them individually - not throw away the whole batch. The permanent idempotency key makes safe retries trivial: re-send with the same key and you get the same gift back, no duplicate.

Putting it together

The end-to-end shape:
  1. GET /campaigns - retrieve your campaign ID.
  2. POST /gifts - create the gift, get back the claim link.
  3. Snappy notifies the recipient, they select their gift, Snappy generates the Order automatically.
  4. Webhooks - track gift and order status through the fulfillment lifecycle.
That’s Triggered Gifting end to end. From here, common next steps are:
  • Adding a bulk send flow (multiple recipients per POST /gifts call, with idempotent keys per recipient).
  • Wiring HRIS or CRM triggers so gifts fire automatically on milestones instead of manually.
  • Layering status reporting on top of the webhook stream so your ops team can see program health at a glance.
Reach out to your Snappy representative for any questions, needs, or feedback.

API Reference

Full endpoint specs for the V2 Gifts and Campaigns endpoints used in this guide.
Last modified on July 14, 2026