Skip to main content

Automation Guide

Automate reward distribution using no-code platforms like Zapier, Make, IFTTT, and n8n.

Overview

Connect Loyalteez to hundreds of platforms and services without writing code. Perfect for:

  • Marketing automation
  • CRM integrations
  • E-commerce workflows
  • Social media rewards
  • Customer onboarding
  • Content creation rewards

Platform Integrations

Zapier Integration

Quick Start

  1. Create a Zap

    • Trigger: Choose your trigger app (e.g., "New Email Subscriber" in Mailchimp)
    • Action: Choose "Webhooks by Zapier" → "POST"
  2. Configure Webhook

    • URL: https://api.loyalteez.app/loyalteez-api/manual-event
    • Method: POST
    • Headers:
      Content-Type: application/json
    • Body:
      {
      "brandId": "YOUR_BRAND_ID",
      "eventType": "newsletter_signup",
      "userEmail": "{{email}}",
      "domain": "yourdomain.com",
      "metadata": {
      "source": "zapier",
      "trigger": "mailchimp"
      }
      }

Example Workflows

Mailchimp Newsletter Signup

Trigger: New Subscriber in Mailchimp

Filter: Status is "subscribed"

Action: POST to Loyalteez
{
"brandId": "YOUR_BRAND_ID",
"eventType": "newsletter_signup",
"userEmail": "{{subscriber_email}}",
"metadata": {
"list_name": "{{list_name}}",
"signup_date": "{{timestamp}}"
}
}

Result: User receives 25 LTZ automatically!

Shopify Purchase Rewards

Trigger: New Order in Shopify

Filter: Order status is "paid"

Action: POST to Loyalteez
{
"brandId": "YOUR_BRAND_ID",
"eventType": "purchase",
"userEmail": "{{customer_email}}",
"metadata": {
"order_id": "{{order_id}}",
"amount": "{{total_price}}",
"items": "{{line_items}}"
}
}

Airtable Task Completion

Trigger: New Record in Airtable View

Filter: Status is "Completed"

Action: POST to Loyalteez
{
"brandId": "YOUR_BRAND_ID",
"eventType": "task_completed",
"userEmail": "{{email_field}}",
"metadata": {
"task_name": "{{name}}",
"category": "{{category}}",
"points_earned": "{{base_reward}}"
}
}

Make (Integromat) Integration

Module Setup

  1. Add HTTP Module

    • Choose "Make an API Call"
    • Method: POST
    • URL: https://api.loyalteez.app/loyalteez-api/manual-event
  2. Configure Headers

    {
    "Content-Type": "application/json"
    }
  3. Configure Body

    {
    "brandId": "{{YOUR_BRAND_ID}}",
    "eventType": "{{event_type}}",
    "userEmail": "{{user_email}}",
    "domain": "yourdomain.com",
    "metadata": {
    "source": "make",
    "workflow_id": "{{scenario.id}}"
    }
    }

Example Scenario

Google Sheets to Rewards

Watch Rows (Google Sheets)

Router
├─ If status = "completed" → Reward user
├─ If status = "premium" → Bonus reward
└─ If status = "referral" → Referral reward

HTTP Request (Loyalteez)

Update Row (Mark as rewarded)

IFTTT Integration

Create Applet

  1. Choose Trigger

    • Example: "New post on Medium"
    • Or: "New tweet with hashtag"
  2. Choose Action: Webhooks

    • Action: "Make a web request"
    • URL: https://api.loyalteez.app/loyalteez-api/manual-event
    • Method: POST
    • Content Type: application/json
    • Body:
      {
      "brandId": "YOUR_BRAND_ID",
      "eventType": "content_created",
      "userEmail": "{{CreatorEmail}}",
      "metadata": {
      "platform": "medium",
      "post_title": "{{Title}}",
      "post_url": "{{Url}}"
      }
      }

Example Applets

Twitter Engagement Rewards

IF: New tweet with #YourBrand
THEN: POST to Loyalteez API
eventType: "social_engagement"
metadata: { platform: "twitter", tweet_id: "..." }

Instagram Post Rewards

IF: New Instagram post
THEN: POST to Loyalteez API
eventType: "content_creation"
metadata: { platform: "instagram", post_url: "..." }

n8n (Self-Hosted) Integration

Workflow Setup

  1. Add HTTP Request Node

    • Method: POST
    • URL: https://api.loyalteez.app/loyalteez-api/manual-event
  2. Configure JSON Body

    {
    "brandId": "{{ $env.LOYALTEEZ_BRAND_ID }}",
    "eventType": "{{ $node['Trigger'].json['event_type'] }}",
    "userEmail": "{{ $node['Trigger'].json['email'] }}",
    "domain": "{{ $env.DOMAIN }}",
    "metadata": {
    "source": "n8n",
    "workflow_id": "{{ $workflow.id }}",
    "execution_id": "{{ $execution.id }}"
    }
    }
  3. Add Error Handling

    • Use "Error Trigger" node
    • Log failures to database
    • Send alerts on critical errors

Advanced Workflow Example

Webhook Trigger (User signup)

Code Node (Validate data)

Switch Node (Check user type)
├─ Premium → Reward 500 LTZ
├─ Standard → Reward 100 LTZ
└─ Trial → Reward 50 LTZ

HTTP Request (Loyalteez API)

If Error
├─ Retry (3x with delay)
└─ Send Alert (Slack/Email)

Database (Log reward)

Email Node (Confirmation)

Common Automation Patterns

1. Email Marketing Integration

Reward Newsletter Signups

// Mailchimp → Loyalteez
Trigger: New Subscriber
Action: Reward 25 LTZ
Metadata: List name, source, campaign

Reward Email Opens

// SendGrid → Loyalteez
Trigger: Email Opened
Filter: First open only
Action: Reward 5 LTZ

2. E-Commerce Integration

Purchase Rewards

// Shopify/WooCommerce → Loyalteez
Trigger: New Order
Filter: Payment completed
Action: Reward 1 LTZ per $1 spent
Metadata: Order ID, items, total

Review Submission

// Judge.me/Reviews → Loyalteez
Trigger: New Review
Filter: 4+ stars
Action: Reward 50 LTZ

3. CRM Integration

Deal Closed Rewards

// HubSpot/Salesforce → Loyalteez
Trigger: Deal Stage Changed
Filter: Stage = "Closed Won"
Action: Reward sales rep
Metadata: Deal value, client name

Contact Engagement

// Pipedrive → Loyalteez
Trigger: Activity Completed
Filter: Type = "Meeting"
Action: Reward 10 LTZ

4. Social Media Rewards

Content Creation

// Buffer/Hootsuite → Loyalteez
Trigger: Post Published
Action: Reward 15 LTZ
Metadata: Platform, engagement

Community Moderation

// Discord/Slack → Loyalteez
Trigger: Message contains "helpful"
Action: Reward 5 LTZ
Metadata: Channel, message ID

5. Project Management

Task Completion

// Asana/Trello → Loyalteez
Trigger: Task Moved to "Done"
Action: Reward based on priority
Metadata: Task name, assignee

Sprint Goals

// Jira → Loyalteez
Trigger: Sprint Completed
Filter: Velocity > target
Action: Bonus rewards for team

Best Practices

1. Use Metadata Extensively

{
"brandId": "YOUR_BRAND_ID",
"eventType": "custom_event",
"userEmail": "[email protected]",
"metadata": {
"source": "zapier",
"workflow_name": "Newsletter Signup Flow",
"trigger_app": "mailchimp",
"list_name": "Main Newsletter",
"signup_source": "website_footer",
"timestamp": "2025-11-17T10:00:00Z",
"user_country": "US",
"referrer": "google"
}
}

Why?

  • Debugging & analytics
  • Attribution tracking
  • Custom reporting
  • A/B testing insights

2. Implement Error Handling

HTTP Request (Loyalteez)

IF Success
├─ Log to database
└─ Send confirmation
ELSE
├─ Retry (3x)
├─ Log error
└─ Alert admin

3. Use Filters to Prevent Duplicates

Trigger: New Order

Filter: Order status = "paid" AND
NOT previously rewarded

Action: Reward user

Update: Mark as rewarded in database

4. Test with Sandbox Data

{
"brandId": "YOUR_BRAND_ID",
"eventType": "test_event",
"userEmail": "[email protected]",
"metadata": {
"test_mode": true,
"workflow": "my_workflow_test"
}
}

5. Monitor & Optimize

  • Track success rates in automation platform
  • Set up alerts for failures
  • Monitor reward costs in Partner Portal
  • A/B test different reward amounts

Security Considerations

Protect Your Brand ID

# Use environment variables
LOYALTEEZ_BRAND_ID=0x47511fc1c6664c9598974cb112965f8b198e0c725e

# Don't hardcode in shared workflows

Validate Domain

{
"brandId": "YOUR_BRAND_ID",
"eventType": "event",
"userEmail": "[email protected]",
"domain": "yourdomain.com", // ← Always include!
"metadata": {}
}

Rate Limiting

  • Implement cooldown periods in your workflows
  • Use filters to prevent duplicate rewards
  • Monitor for abuse patterns

Troubleshooting

Events Not Appearing

Check:

  1. ✅ Brand ID is correct
  2. ✅ Domain matches Partner Portal settings
  3. ✅ Email format is valid
  4. ✅ Event type exists in your configuration

Debug:

{
"debug": true,
"brandId": "YOUR_BRAND_ID",
"eventType": "test_event",
"userEmail": "[email protected]"
}

Rate Limit Errors

Solution:

  • Add delays between bulk actions
  • Implement retry logic with exponential backoff
  • Contact support to increase limits

Domain Not Authorized

Fix:

  1. Go to Partner Portal → Settings
  2. Update website_url field
  3. Ensure domain matches exactly (no protocol, no trailing slash)

Advanced Patterns

Multi-Step Rewards

User signs up (50 LTZ)
↓ Wait 24 hours
User verifies email (50 LTZ)
↓ Wait 7 days
User makes first purchase (200 LTZ)

Total: 300 LTZ earned

Conditional Rewards

IF purchase_amount > $100
THEN reward = 200 LTZ
ELSE IF purchase_amount > $50
THEN reward = 100 LTZ
ELSE
THEN reward = 50 LTZ

Referral Tracking

Trigger: New user signup

Check: Has referral code?
├─ YES → Reward referrer 100 LTZ
└─ NO → Continue

Reward new user 50 LTZ

Platform-Specific Tips

Zapier

  • Use "Code by Zapier" for complex logic
  • Implement webhook queues for high-volume
  • Use Zapier's built-in retry logic

Make

  • Use routers for conditional logic
  • Implement error branches on HTTP modules
  • Use data stores for deduplication

n8n

  • Self-hosted = full control
  • Use environment variables for secrets
  • Implement comprehensive logging

IFTTT

  • Great for simple triggers
  • Limited error handling
  • Best for social media integrations

Example Use Cases

Content Creator Platform

New article published → Reward 100 LTZ
Article gets 100 views → Reward 50 LTZ
Article shared → Reward 25 LTZ

SaaS Onboarding

Account created → Reward 50 LTZ
Profile completed → Reward 50 LTZ
First project created → Reward 100 LTZ
Invited team member → Reward 100 LTZ

Community Engagement

Discord message → Reward 5 LTZ
Helpful reaction → Reward 10 LTZ
Weekly active → Reward 50 LTZ
Monthly MVP → Reward 500 LTZ

Next Steps

Support

  • Zapier Template: [Coming Soon]
  • Make Blueprint: [Coming Soon]
  • n8n Workflow: [Coming Soon]
  • Email: [email protected]