Skip to content

Make Actions

This document describes how to use the WhiteLabelCRO Integration API actions in Make scenarios.

How Actions Work

In Make, actions are implemented using HTTP modules that call the Integration API to create or modify records. Each action maps to a specific API endpoint and supports idempotency for safe retries.

Available Actions (9)

Lead Actions

Create Lead - Creates a new lead with status "Lead - New" - Endpoint: POST /api/v1/integrations/leads - Required: first_name, last_name, email - Optional: phone, city, state, zip, package_keyword, affiliate_id, external_id - Returns: client_id, status, created_utc

Update Lead - Modifies an existing lead's information - Endpoint: PATCH /api/v1/integrations/leads/{client_id} - Required: client_id - Optional: first_name, last_name, email, phone, city, state, zip, employee_id, affiliate_id, external_id - Returns: success, updated_utc, client_id

Update Lead Status - Changes a lead's status (must remain a Lead status) - Endpoint: PATCH /api/v1/integrations/leads/{client_id}/status - Required: client_id, new_status or new_status_id - Optional: changed_by_employee_id, status_note - Returns: previous_status, new_status, updated_utc

Client Actions

Create Client - Enrolls a new client in the system - Endpoint: POST /api/v1/integrations/clients - Required: first_name, last_name, email - Optional: phone, status, employee_id, city, state, zip, affiliate_id, external_id - Returns: client_id, status, created_utc

Update Client - Modifies an existing client's information - Endpoint: PATCH /api/v1/integrations/clients/{client_id} - Required: client_id - Optional: first_name, last_name, email, phone, city, state, zip, employee_id, affiliate_id, external_id - Returns: success, updated_utc, client_id

Update Client Status - Changes a client's lifecycle stage - Endpoint: PATCH /api/v1/integrations/clients/{client_id}/status - Required: client_id, new_status or new_status_id - Optional: changed_by_employee_id, status_note - Returns: previous_status, new_status, updated_utc

Add Client Note - Attaches a note or comment to a client record - Endpoint: POST /api/v1/integrations/clients/{client_id}/notes - Required: client_id, text - Optional: note_type, visibility, external_id - Returns: client_note_id, created_utc

Affiliate Actions

Create Affiliate - Adds a new referral partner - Endpoint: POST /api/v1/integrations/affiliates - Required: email, first_name, last_name - Optional: phone, affiliate_code, commission_rate, affiliate_company_name, external_id - Returns: employee_id, affiliate_code, is_approved, created_utc - Note: Created affiliates are not automatically approved

Update Affiliate - Modifies an existing affiliate's information - Endpoint: PATCH /api/v1/integrations/affiliates/{employee_id} - Required: employee_id - Optional: first_name, last_name, email, phone, affiliate_company_name, commission_rate, is_active, is_approved, external_id - Returns: success, updated_utc, employee_id

Implementing Actions in Make

Basic Setup

  1. Add HTTP module to your scenario
  2. Set Method: POST, PATCH, or DELETE (per action)
  3. Set URL: Full endpoint URL (e.g., https://your-api-url.com/api/v1/integrations/leads)
  4. Set Connection: Select your WhiteLabelCRO connection
  5. Configure Body with required and optional fields

Request Body Configuration

Set Body type: Raw

Set Content type: JSON (application/json)

Example: Create Lead

{
  "first_name": "{{first_name}}",
  "last_name": "{{last_name}}",
  "email": "{{email}}",
  "phone": "{{phone}}",
  "external_id": "hubspot_{{id}}"
}

Field Types

  • String fields: Use variables like {{field_name}}
  • ID fields: Use numeric values (e.g., client_id: 12345)
  • Status fields: Accept either ID (new_status_id: 231) or name (new_status: "Client - Active")
  • Boolean fields: Use true/false (no quotes in JSON)

Dynamic URLs

For update operations with ID in URL:

https://your-api-url.com/api/v1/integrations/clients/{{client_id}}

Idempotency

Actions support idempotency via the external_id field: - If you provide an external_id, the system checks for existing records - Duplicate submissions update existing records rather than creating duplicates - Use external_id to link WhiteLabelCRO records to external systems (HubSpot, Salesforce, etc.)

Example:

{
  "email": "john@example.com",
  "first_name": "John",
  "last_name": "Doe",
  "external_id": "hubspot_12345"
}

Error Handling

Common Errors

400 Bad Request - Missing required field - Invalid field value - Request validation failed

401 Unauthorized - Invalid or expired API key - Missing X-Api-Key header

404 Not Found - Record not found (for update actions) - Invalid client_id or employee_id

429 Too Many Requests - Rate limit exceeded - Wait and retry per Retry-After header

Handling Errors in Make

  1. Add Error handler route to HTTP module
  2. Use Router to handle different error types
  3. Log errors or send notifications
  4. Implement retry logic for transient errors (429, 503)

Example error condition: Check HTTP status code in filters.

Rate Limits

Actions count toward the "write" rate limit bucket: - 100 requests per minute per API key - Shared across all write operations

Monitor rate limit headers in HTTP module responses.

Response Handling

Success Response

Most actions return JSON with created/updated record details:

{
  "client_id": 12345,
  "status": "Lead - New",
  "created_utc": "2026-01-28T10:30:00Z"
}

Access in subsequent modules: - {{client_id}} - {{status}}

Checking Success

Check HTTP status code: - 200 or 201 indicates success - Use Filter module to route based on status

Best Practices

Null Handling

Check for null values before sending: - Use {{ifempty(phone; null)}} for optional fields - Use Filter modules to skip null values

Batch Operations

For bulk creates/updates: 1. Use Iterator module to process arrays 2. Limit to 100 requests/minute 3. Add Sleep module between batches if needed

Error Recovery

  1. Enable Error handler on HTTP module
  2. Add logging or notification modules
  3. Implement retry logic for transient errors
  4. Store failed records for manual review

Scenario Organization

For complex integrations: - Break into multiple scenarios - Use webhooks or data stores for communication - Keep individual scenarios focused on single responsibility

Platform Compatibility

These same actions are available via: - Zapier - Using native app actions - n8n - Using HTTP Request nodes - Custom code - Direct API calls

All platforms use the same endpoints and field names.