Skip to main content

Automation Platform Integration

Connect Loyalteez to automation platforms like Zapier, Make, IFTTT, n8n, and Pipedream for no-code reward distribution.

Overview​

This guide covers platform-specific integration details. For comprehensive automation patterns and workflows, see the Automation Guide.

Supported Platforms​

PlatformTypeDifficultyBest For
ZapierCloudEasyBusiness users, quick setup
MakeCloudEasyVisual workflows, complex logic
IFTTTCloudVery EasySimple triggers, social media
n8nSelf-hostedMediumPrivacy, custom hosting
PipedreamCloudMediumDevelopers, serverless

Platform Integrations​

Zapier​

Setup:

  1. Trigger: Choose app (e.g., "New Email in Gmail")
  2. Action: "Webhooks by Zapier" → "POST"
  3. URL: https://api.loyalteez.app/loyalteez-api/manual-event
  4. Payload Type: JSON
  5. Data: See Automation Guide

Templates:

  • Newsletter signup rewards
  • E-commerce purchase rewards
  • CRM activity rewards
  • Form submission rewards

Make (Integromat)​

Setup:

  1. Add "HTTP" module
  2. Method: "Make a request"
  3. URL: https://api.loyalteez.app/loyalteez-api/manual-event
  4. Method: POST
  5. Body type: Raw
  6. Content type: JSON

Use Cases:

  • Multi-step workflows
  • Conditional rewards
  • Data transformation
  • Error handling

IFTTT​

Setup:

  1. Choose trigger service
  2. Action: "Webhooks" → "Make a web request"
  3. URL: https://api.loyalteez.app/loyalteez-api/manual-event
  4. Method: POST
  5. Content Type: application/json

Best For:

  • Social media triggers
  • IoT device triggers
  • Location-based rewards
  • Simple automations

n8n​

Setup:

  1. Add "HTTP Request" node
  2. Method: POST
  3. URL: https://api.loyalteez.app/loyalteez-api/manual-event
  4. Authentication: None
  5. Send Body: Yes
  6. Body Content Type: JSON

Advantages:

  • Self-hosted (full control)
  • Open source
  • No vendor lock-in
  • Custom nodes

Pipedream​

Setup:

export default defineComponent({
async run({ steps, $ }) {
await $.send.http({
method: 'POST',
url: 'https://api.loyalteez.app/loyalteez-api/manual-event',
headers: {
'Content-Type': 'application/json'
},
data: {
brandId: process.env.LOYALTEEZ_BRAND_ID,
eventType: steps.trigger.event.type,
userEmail: steps.trigger.event.user.email,
domain: 'yourdomain.com',
metadata: {
source: 'pipedream'
}
}
});
}
});

Advantages:

  • Serverless
  • Code + no-code
  • Built-in OAuth
  • Event sources

Request Format​

All platforms use the same API format:

{
"brandId": "YOUR_BRAND_ID",
"eventType": "event_name",
"userEmail": "[email protected]",
"domain": "yourdomain.com",
"metadata": {
"source": "platform_name",
"custom_field": "value"
}
}

Common Integration Patterns​

For detailed workflow examples, see the Automation Guide:

  • Email Marketing - Newsletter signup rewards
  • E-Commerce - Purchase and review rewards
  • CRM - Deal and activity rewards
  • Social Media - Content and engagement rewards
  • Project Management - Task completion rewards

Platform Comparison​

FeatureZapierMakeIFTTTn8nPipedream
Price$$$$Free/$FreeFree/$
ComplexityLowMediumLowMediumHigh
HostingCloudCloudCloudSelfCloud
Code SupportLimitedLimitedNoYesYes
Error HandlingGoodGreatBasicGreatGreat
Rate LimitsPlan-basedPlan-basedLimitedNoneGenerous

Best Practices​

1. Use Environment Variables​

// Instead of hardcoding
const BRAND_ID = process.env.LOYALTEEZ_BRAND_ID;
const DOMAIN = process.env.DOMAIN;

2. Add Retry Logic​

// Example for Pipedream
export default defineComponent({
async run({ steps, $ }) {
let attempts = 0;
const maxAttempts = 3;

while (attempts < maxAttempts) {
try {
await rewardUser(...);
break;
} catch (error) {
attempts++;
if (attempts === maxAttempts) throw error;
await $.sleep(1000 * attempts);
}
}
}
});

3. Validate Data​

// Validate before sending
if (!email || !email.includes('@')) {
throw new Error('Invalid email');
}

if (!eventType || eventType.length > 50) {
throw new Error('Invalid event type');
}

4. Log Everything​

// Track for debugging
console.log('Rewarding user:', { email, eventType, metadata });

// Log responses
console.log('API response:', response.data);

Troubleshooting​

Connection Errors​

Problem: "Failed to connect to API"

Solutions:

  1. Check API URL is correct
  2. Verify internet connectivity
  3. Check for firewall blocks
  4. Retry with exponential backoff

Authentication Errors​

Problem: "Domain not authorized"

Solutions:

  1. Verify domain in Partner Portal settings
  2. Check domain format (no protocol/slash)
  3. Use exact domain from website_url

Rate Limit Errors​

Problem: "Too many requests"

Solutions:

  1. Add delays between requests
  2. Implement queuing
  3. Contact support for limit increase

Next Steps​

Support​