Skip to content
Back to KickoffLabs

Award entries or points for Shopify purchases

Last reviewed: 2026-10-20

You can give entrants bonus entries (or leaderboard points) automatically when they buy from your Shopify store. A Shopify Flow workflow or a Zap sends the buyer’s email and the number of entries to the KickoffLabs Points API on every paid order. The entries go to the entrant with the same email, add up across orders, and count in the weighted winner draw with free and referral entries.

| Rule | Example | How | | --- | --- | --- | | Spend tiers | $250 = 10 entries, $500 = 20, $1,000 = 50 | Formula A below | | Entries per amount | 20 entries for every $500 spent | Formula B below | | Entries per dollar | 1 entry for every $10 spent | Formula C below | | Flat per order | 5 entries for any purchase | Put 5 as the points value |

Tiers and amounts are judged per order. Two $300 orders earn the $250 tier twice, not the $500 tier.

  • Find your Campaign ID and Campaign API key under Leads → Lead delivery → Zapier → Connect. Keep the key private.
  • The Points API needs a paid KickoffLabs plan.
  • Ask people to enter the giveaway with the email they use at checkout. A purchase from an email that never entered is not awarded (the API returns “No leads found”).

Shopify Flow’s Send HTTP request action is available on the Grow plan and higher.

  1. In Shopify admin, open Apps → Flow and create a workflow.

  2. Choose the trigger Order paid.

  3. Optional: add a condition so only orders above your smallest tier continue.

  4. Add the action Send HTTP request with method POST, URL https://api.kickofflabs.com/v2/CAMPAIGN_ID/points, and header Content-Type: application/json.

  5. Use this body, replacing CAMPAIGN_API_KEY and POINTS (see the formulas below):

    {"api_key": "CAMPAIGN_API_KEY", "email": {{ order.email | json }}, "points": "POINTS", "message": {{ "Shopify order " | append: order.name | json }}}
  6. Turn the workflow on, place a real test order with an email that has already entered, and check that lead’s points in KickoffLabs.

These use the order subtotal, which leaves out shipping and tax. Swap currentSubtotalPriceSet for currentTotalPriceSet to count the full total.

Formula A, spend tiers ($250 = 10, $500 = 20, $1,000 = 50):

{% assign t = order.currentSubtotalPriceSet.shopMoney.amount | plus: 0 %}{% if t >= 1000 %}50{% elsif t >= 500 %}20{% elsif t >= 250 %}10{% else %}0{% endif %}

Formula B, 20 entries for every $500:

{{ order.currentSubtotalPriceSet.shopMoney.amount | divided_by: 500 | floor | times: 20 }}

Formula C, 1 entry for every $10:

{{ order.currentSubtotalPriceSet.shopMoney.amount | divided_by: 10 | floor }}

Use this on any Shopify plan.

  1. Create a Zap with the Shopify trigger New Paid Order.
  2. Add a Formatter → Numbers or Code step to work out the entries from the order subtotal, using the same rule as above.
  3. Add Webhooks by Zapier → POST to https://api.kickofflabs.com/v2/CAMPAIGN_ID/points with the data fields api_key, email (the order email), points (from step 2) and message.
  4. Test with a real order from an email that has already entered, then turn on the Zap.
  • This recipe doesn’t check order numbers, so the same order can be awarded twice. That happens if you replay old orders through the workflow, or if Shopify Flow or Zapier retries a request after a timeout. Check a buyer’s points history if a total looks high, and remove duplicates with a negative adjustment.
  • Refunds and cancellations don’t remove entries automatically. Remove them from the lead’s page with a negative manual point adjustment.
  • To pick a winner with purchase entries counted, use Pick a winner with the draw method Weight by contest score. Each entry improves that person’s odds.
  • Referrers are not credited for their friends’ purchases with this workflow.

See the full request format in Add Points.

Need help? Email support@kickofflabs.com with the campaign URL, the test order number, and the email used. Keep API keys private.