Make Integration

Automate AssistLoop with Make

Make Integration API Reference

The AssistLoop API is specifically designed to integrate seamlessly with Make (formerly Integromat), enabling you to build powerful automation scenarios with visual workflows. Our API follows REST principles with predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes and OAuth 2.0 authentication.

What You Can Build

With the AssistLoop Make integration, you can:

  • Trigger Scenarios when new conversations start or when AI requests human assistance
  • Automatically respond to customer conversations from other apps
  • Close conversations as part of your scenario automation
  • Query conversation history to feed data into your other tools
  • Build custom scenarios connecting AssistLoop with 1,500+ apps on Make

Base URL

https://api.assistloop.ai/v1

Authentication

The AssistLoop Make integration uses OAuth 2.0 for secure authentication. When you connect AssistLoop to Make, you'll be prompted to authorize the connection through a secure OAuth flow. Make will automatically handle token management, including automatic token refresh when needed.

For Make Users

You don't need to manually manage tokens. Simply click "Add" next to the Connection field in any AssistLoop module and follow the authorization prompts.

For Developers

If you're building custom Make modules or testing the API directly, all requests must include your access token in the Authorization header:

Authorization: Bearer YOUR_ACCESS_TOKEN

All API requests must be made over HTTPS. Calls made over plain HTTP will fail.

Example Request with Authentication

curl https://api.assistloop.ai/v1/oauth/me \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

OAuth 2.0 Authorization Flow

AssistLoop uses OAuth 2.0 to securely connect with Make. This section describes the technical details of how Make obtains and refreshes access tokens when you connect your AssistLoop account.

Most Make users won't need to understand these technical details - Make handles the OAuth flow automatically. This section is primarily for developers building or debugging Make integrations.

OAuth 2.0 Endpoints

EndpointURLPurpose
AuthorizationPOST /api/v1/oauth/authorizeObtain authorization code
TokenPOST /oauth/tokenExchange code for token or refresh access token

The /oauth/token endpoint is at the root level (not under /api/v1).

Available Scopes

ScopeDescription
read:conversationsRead conversations and conversation details (default)
read:messagesRead messages within conversations (default)
manage:webhooksCreate and manage webhook subscriptions (default)
write:conversationsUpdate conversation status and response mode

Default Scopes: If no scopes are specified, the token will have read:conversations, read:messages, and manage:webhooks scopes.


Make OAuth Configuration

When setting up your Make integration, use the following OAuth configuration:

OAuth Configuration Parameters

ParameterValue
Authorization URLhttps://api.assistloop.ai/v1/oauth/authorize
Token URLhttps://api.assistloop.ai/oauth/token
Scoperead:conversations read:messages manage:webhooks write:conversations
Client ID(Provided in AssistLoop Dashboard)
Client Secret(Provided in AssistLoop Dashboard)
Redirect URIhttps://www.integromat.com/oauth/cb/app

Make Connection Settings

  1. Connection Name: AssistLoop OAuth
  2. Authorization Method: OAuth 2.0
  3. Grant Type: Authorization Code
  4. Show advanced settings: Yes
  5. Authorization URL Structure: Custom
  6. Token Request Method: POST (JSON)
  7. Scope Separator: Space
  8. Automatically Refresh: Yes

Test API Call

Configure Make's test API call to verify authentication:

  • URL: https://api.assistloop.ai/v1/oauth/me
  • Method: GET
  • Expected Response: JSON with uuid, name, and email fields

Errors

AssistLoop uses conventional HTTP response codes to indicate the success or failure of an API request. In general: Codes in the 2xx range indicate success. Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a resource was not found, etc.). Codes in the 5xx range indicate an error with AssistLoop's servers (these are rare).

HTTP Status Code Summary

CodeStatusDescription
200OKEverything worked as expected.
400Bad RequestThe request was unacceptable, often due to missing a required parameter.
401UnauthorizedNo valid API token provided.
403ForbiddenThe API token doesn't have permissions to perform the request.
404Not FoundThe requested resource doesn't exist.
422Validation ErrorThe request parameters failed validation.
429Too Many RequestsToo many requests hit the API too quickly. Please retry with exponential backoff.
500Internal Server ErrorSomething went wrong on AssistLoop's end.

Error Response Format

{
    "error": "Conversation not found",
    "message": "The requested conversation could not be found or you don't have access to it."
}

OAuth Endpoints

Get Current User

Retrieves information about the currently authenticated user. Use this endpoint to verify your authentication token and get details about the associated account.

Endpoint: GET /oauth/me

Example Request

curl https://api.assistloop.ai/v1/oauth/me \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Response

{
    "uuid": "usr_abc123",
    "name": "John Doe",
    "email": "[email protected]"
}

Webhook Endpoints (Make Instant Triggers)

Webhooks power Make instant triggers for your AssistLoop account. When you set up an instant trigger in Make (like "New Conversation" or "Human Handoff Required"), Make automatically subscribes to the appropriate webhook endpoint. When the event occurs in AssistLoop, we instantly notify Make to trigger your scenario.

Subscribe to Webhooks

Creates a new webhook subscription for Make instant triggers. When you enable an instant trigger in Make, Make automatically calls this endpoint to subscribe to events. When the event occurs in AssistLoop, we send the data to Make to trigger your scenario.

Endpoint: POST /webhooks/subscribe

For Make Users: This happens automatically when you set up an instant trigger. You don't need to call this endpoint manually.

Request Parameters

ParameterTypeRequiredDescription
organization_uuidstringYesThe UUID of your organization (workspace).
agent_uuidstringYesThe UUID of the agent to monitor for events.
target_urlstringYesThe URL where webhook payloads will be sent. Must be a valid HTTPS URL.
eventstringYesThe type of event to subscribe to. One of: new_conversation, human_handoff_required.
platformstringYesMust be make for Make integrations.
external_idstringNoOptional external identifier for your integration (max 255 characters).

Example Request

curl -X POST https://api.assistloop.ai/v1/webhooks/subscribe \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "organization_uuid": "org_xyz789",
    "agent_uuid": "agt_abc123",
    "target_url": "https://hook.integromat.com/abcd1234efgh5678",
    "event": "new_conversation",
    "platform": "make"
  }'

Response

{
    "data": {
        "id": "whk_xyz789",
        "secret": "whsec_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
    },
    "message": "Webhook subscribed successfully"
}

Important

The secret field is returned only once during subscription. Store it securely to verify webhook signatures.

Webhook Event Types (Make Instant Triggers)

Webhook Payload Examples

New Conversation Event

{
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "event": "new_conversation",
    "timestamp": "2024-11-12T10:30:00Z",
    "data": {
        "conversation": {
            "uuid": "550e8400-e29b-41d4-a716-446655440000",
            "status": true,
            "response_mode": "ai",
            "created_at": "2024-11-12T10:30:00Z"
        },
        "agent": {
            "uuid": "agt_abc123",
            "name": "Customer Support Agent"
        },
        "chat_user": {
            "name": "Jane Smith",
            "email": "[email protected]"
        },
        "organization": {
            "uuid": "org_xyz789",
            "name": "Acme Corporation"
        },
        "initial_message": {
            "uuid": "msg_abc123",
            "content": "Hi, I need help with my order",
            "type": "guest",
            "created_at": "2024-11-12T10:30:00Z"
        }
    }
}

Human Handoff Required Event

{
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "event": "human_handoff_required",
    "timestamp": "2024-11-12T10:35:00Z",
    "data": {
        "conversation": {
            "uuid": "550e8400-e29b-41d4-a716-446655440000",
            "status": true,
            "response_mode": "human",
            "created_at": "2024-11-12T10:30:00Z"
        },
        "agent": {
            "uuid": "agt_abc123",
            "name": "Customer Support Agent"
        },
        "chat_user": {
            "name": "Jane Smith",
            "email": "[email protected]"
        },
        "organization": {
            "uuid": "org_xyz789",
            "name": "Acme Corporation"
        },
        "last_message": {
            "uuid": "msg_def456",
            "content": "I need to speak with a human agent",
            "type": "guest",
            "created_at": "2024-11-12T10:35:00Z"
        }
    }
}

Unsubscribe from Webhooks

Removes a webhook subscription. Make automatically calls this endpoint when you turn off or delete an instant trigger.

Endpoint: DELETE /webhooks/unsubscribe/{uuid}

For Make Users: This happens automatically when you disable or delete an instant trigger. You don't need to call this endpoint manually.

Path Parameters

ParameterTypeRequiredDescription
uuidstringYesThe UUID of the webhook subscription.

Example Request

curl -X DELETE https://api.assistloop.ai/v1/webhooks/unsubscribe/whk_xyz789 \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Response

{
    "data": null,
    "message": "Webhook unsubscribed successfully"
}

Remote Procedures (Make Dropdowns)

Remote Procedure Calls (RPCs) power the dropdown selectors in Make modules, allowing you to dynamically select workspaces, agents, and conversations.

Get Workspaces

Retrieve a list of workspaces (organizations) you are a member of. Used in Make dropdown selectors.

Endpoint: GET /my/organizations

Example Request

curl https://api.assistloop.ai/v1/my/organizations \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Response

[
    {
        "organization_uuid": "org_abc123xyz",
        "id": "org_abc123xyz",
        "name": "Acme Corp"
    },
    {
        "organization_uuid": "org_def456uvw",
        "id": "org_def456uvw",
        "name": "Tech Startup Inc"
    }
]

Get Agents

Retrieve a list of AI agents in a specific workspace. Used in Make dropdown selectors.

Endpoint: GET /organizations/{organization_uuid}/agents

Path Parameters

ParameterTypeDescription
organization_uuidstringUUID of the workspace

Example Request

curl https://api.assistloop.ai/v1/organizations/org_abc123xyz/agents \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Response

[
    {
        "agent_uuid": "agent_abc123",
        "id": "agent_abc123",
        "name": "Support Bot"
    },
    {
        "agent_uuid": "agent_def456",
        "id": "agent_def456",
        "name": "Sales Assistant"
    }
]

Get Conversations

Retrieve a list of conversations for a specific agent. Used in Make dropdown selectors.

Endpoint: GET /automation/agents/{agent_uuid}/conversations/list

Path Parameters

ParameterTypeDescription
agent_uuidstringUUID of the agent

Query Parameters

ParameterTypeRequiredDescription
per_pagenumberNoNumber of results (default: 100)

Example Request

curl "https://api.assistloop.ai/v1/automation/agents/agent_abc123/conversations/list?per_page=100" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Response

[
    {
        "id": "conv_abc123xyz",
        "uuid": "conv_abc123xyz",
        "session_id": "sess_xyz789",
        "response_mode": "ai",
        "status": true,
        "last_message_seen": false,
        "chat_user": {
            "name": "John Doe",
            "email": "[email protected]",
            "country_code": "+1",
            "chat_user_id": "user_12345"
        }
    }
]

Conversation Endpoints (Make Actions)

List Conversations

Query and filter conversations for a specific agent. Use this in Make scenarios to find conversations matching specific criteria.

Endpoint: GET /automation/agents/{agentUuid}/conversations/list

Make Use Cases

  • Find open conversations to send daily summaries to Slack
  • Check for conversations in "human" mode to assign to support agents
  • Export conversation lists to Google Sheets for reporting

Path Parameters

ParameterTypeRequiredDescription
agentUuidstringYesThe UUID of the agent.

Query Parameters

ParameterTypeRequiredDescription
statusintegerNoFilter by conversation status. 0 for closed, 1 for active/open.
response_modestringNoFilter by response mode. One of: ai, human.
created_fromstringNoFilter conversations created after this date (ISO 8601 format).
created_tostringNoFilter conversations created before this date (ISO 8601 format).
per_pageintegerNoNumber of conversations per page (min: 10, max: 100, default: 20).

Example Request

curl "https://api.assistloop.ai/v1/automation/agents/agt_abc123/conversations/list?status=1&response_mode=ai&per_page=20" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Response

The endpoint returns a direct array of conversation objects (not wrapped in a data field).

[
    {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "uuid": "550e8400-e29b-41d4-a716-446655440000",
        "session_id": "sess_abc123",
        "response_mode": "ai",
        "status": true,
        "last_message_seen": false,
        "deleted_at": null,
        "chat_user": {
            "name": "Jane Smith",
            "email": "[email protected]",
            "country_code": "US",
            "chat_user_id": "chu_xyz123"
        }
    }
]

Field Descriptions

  • status: Boolean - true for active/open, false for closed
  • response_mode: String - Either ai (AI responding) or human (human agent responding)
  • last_message_seen: Boolean - Whether the last message has been seen
  • chat_user: Object containing customer information

Get Recent Conversation Samples

Provides sample data when you're setting up a Make instant trigger. When you click "Run once" to test the webhook in Make, this endpoint returns recent conversations so you can see what data your scenario will receive.

Endpoint: GET /automation/agents/{agentUuid}/conversations/recent-sample

For Make Users: This runs automatically when you test your instant trigger during scenario setup.

Path Parameters

ParameterTypeRequiredDescription
agentUuidstringYesThe UUID of the agent.

Query Parameters

ParameterTypeRequiredDescription
limitintegerNoNumber of samples to return (default: 5, max: 10).
typestringNoSample type. One of: new_conversation, human_handoff_required (default: new_conversation).

Example Request

curl "https://api.assistloop.ai/v1/automation/agents/agt_abc123/conversations/recent-sample?limit=3&type=new_conversation" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Response

Returns an array of webhook payload samples in the same format as actual webhook deliveries.

[
    {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "event": "new_conversation",
        "timestamp": "2024-11-12T10:30:00Z",
        "data": {
            "conversation": {
                "uuid": "550e8400-e29b-41d4-a716-446655440000",
                "status": true,
                "response_mode": "ai",
                "created_at": "2024-11-12T10:30:00Z"
            },
            "agent": {
                "uuid": "agt_abc123",
                "name": "Customer Support Agent"
            },
            "chat_user": {
                "name": "Sample Customer",
                "email": "[email protected]"
            },
            "organization": {
                "uuid": "org_xyz789",
                "name": "Acme Corporation"
            },
            "initial_message": {
                "uuid": "msg_sample123",
                "content": "Hello, I have a question",
                "type": "guest",
                "created_at": "2024-11-12T10:30:00Z"
            }
        }
    }
]

When type=human_handoff_required, the response format changes slightly - initial_message becomes last_message and the event field is set to human_handoff_required.


Close Conversation

Use this Make action to automatically close conversations as part of your workflow. Great for marking conversations as complete after creating a help desk ticket, logging to your CRM, or after a certain amount of time.

Endpoint: POST /automation/conversations/{conversationUuid}/close

Rate Limit

10 requests per minute

Make Use Cases

  • Close conversations after creating a Zendesk ticket
  • Auto-close conversations that have been idle for 24 hours
  • Mark conversations as complete after successful payment in Stripe

Path Parameters

ParameterTypeRequiredDescription
conversationUuidstringYesThe UUID of the conversation.

Request Parameters

ParameterTypeRequiredDescription
platformstringYesMust be make for Make integrations.

Example Request

curl -X POST https://api.assistloop.ai/v1/automation/conversations/550e8400-e29b-41d4-a716-446655440000/close \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "make"
  }'

Response

{
    "status": "conversation_closed",
    "platform": "make"
}

Message Endpoints (Make Actions)

Find Messages

Use this Make action to retrieve the full message history from a conversation. Perfect for including context when creating support tickets, logging conversations, or analyzing customer interactions.

Endpoint: GET /automation/conversations/{conversationUuid}/messages/find

Make Use Cases

  • Fetch conversation history when creating a Zendesk ticket
  • Log full conversation to Airtable or Google Sheets
  • Send conversation transcript via email when human handoff is requested

Path Parameters

ParameterTypeRequiredDescription
conversationUuidstringYesThe UUID of the conversation.

Query Parameters

ParameterTypeRequiredDescription
created_fromstringNoFilter messages created after this date (ISO 8601 format).
created_tostringNoFilter messages created before this date (ISO 8601 format).
per_pageintegerNoNumber of messages per page (min: 10, max: 100, default: 20).

Example Request

curl "https://api.assistloop.ai/v1/automation/conversations/550e8400-e29b-41d4-a716-446655440000/messages/find?per_page=20" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Response

Returns a direct array of message objects, ordered by created_at descending (newest first).

[
    {
        "id": "msg_abc124",
        "uuid": "660e8400-e29b-41d4-a716-446655440002",
        "content": "I'd be happy to help you with your order. Could you provide your order number?",
        "type": "agent",
        "is_read": null,
        "status": null,
        "responder_type": "ai",
        "emailed_at": null,
        "email_seen": false,
        "email_opened_at": null,
        "via": "web",
        "created_at": "2024-11-12T10:30:15.000000Z",
        "user_feedback": null,
        "sender_name": "Customer Support Agent",
        "attachments": []
    },
    {
        "id": "msg_abc123",
        "uuid": "660e8400-e29b-41d4-a716-446655440001",
        "content": "I need help with my order",
        "type": "guest",
        "is_read": null,
        "status": null,
        "responder_type": null,
        "emailed_at": null,
        "email_seen": false,
        "email_opened_at": null,
        "via": "web",
        "created_at": "2024-11-12T10:30:00.000000Z",
        "user_feedback": null,
        "sender_name": "Jane Smith",
        "attachments": []
    }
]

Field Descriptions

  • type: Message type - guest (customer), agent (AI or human), or platform_action (system messages - excluded from results)
  • responder_type: Who/what responded - ai, human_assistant, or null for guest messages
  • sender_name: Display name of the sender (automatically computed)
  • attachments: Array of file attachments associated with the message
  • user_feedback: Customer feedback on AI response - positive, negative, not-allowed, or null

Reply to Conversation

Use this Make action to automatically send messages to customers in response to events in other apps. Messages are sent as if from a human support agent.

Endpoint: POST /automation/conversations/{conversationUuid}/reply

Make Use Cases

  • Send a message when a help desk ticket is created: "We've created ticket #12345"
  • Notify customers when their order ships via your e-commerce platform
  • Reply with order status when customer asks about their order
  • Send proactive messages based on events in your CRM

Path Parameters

ParameterTypeRequiredDescription
conversationUuidstringYesThe UUID of the conversation.

Request Parameters

ParameterTypeRequiredDescription
contentstringYesThe message content to send.

Example Request

curl -X POST https://api.assistloop.ai/v1/automation/conversations/550e8400-e29b-41d4-a716-446655440000/reply \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Thank you for contacting us. A support agent will be with you shortly."
  }'

Response

{
    "status": "sent",
    "message_id": "msg_xyz789"
}

Important Notes

  • The message is sent as type agent with responder_type human_assistant
  • The conversation's response_mode is automatically switched to human
  • The message is broadcast in real-time to the customer
  • The authenticated user is recorded as the human responder

Common Make Scenario Examples

Scenario 1: Slack Notification for New Conversations

Goal

Get instant Slack notifications when customers start conversations with your AI agent.

Instant trigger that fires when a customer starts a new conversation.

Configure the Slack module to post details to your desired channel.

Configuration

  • Map {{data.chat_user.name}} to include customer name
  • Map {{data.initial_message.content}} to show first message
  • Include conversation URL: https://app.assistloop.ai/conversations/{{data.conversation.uuid}}

Benefits

  • Keep your team informed in real-time
  • No customer conversation goes unnoticed
  • Quick visibility into conversation volume

Scenario 2: Create Zendesk Ticket on Human Handoff

Goal

Automatically create a Zendesk ticket with full conversation context when AI needs human help.

Instant trigger that starts the scenario.

Retrieve conversation history for context.

Process each message and combine them into a transcript.

Use aggregated conversation history in ticket description, add customer email as requester, and set priority to high.

Message: "Thanks! We've created ticket #{{ticket_id}} and a team member will help you shortly."

Close the conversation to prevent additional AI responses.

Benefits

  • Zero delay between AI handoff and ticket creation
  • Full conversation context automatically included
  • Customer gets immediate acknowledgment
  • Conversation automatically closed to prevent AI responses

Scenario 3: Daily Conversation Summary

Goal

Get a daily digest of conversation metrics delivered to your team's Slack channel.

Start the workflow on a schedule.

Filter with created_from = yesterday's date.

Calculate metrics like totals, open vs closed, and AI vs human counts.

Share the summarized metrics with the team.

Example Slack Message

📊 Daily AssistLoop Report - November 12, 2024

✅ Total Conversations: 47
🤖 Handled by AI: 39 (83%)
👤 Required Human Help: 8 (17%)
📭 Currently Open: 5
✓ Closed: 42

🔗 View open conversations in dashboard

Scenario 4: Auto-Close Inactive Conversations

Goal

Keep your conversation list clean by automatically closing conversations that haven't had activity for 24 hours.

Kick off the clean-up scenario.

Filter for Status = Open (1).

Process each conversation and continue only if updated_at is more than 24 hours ago.

Message: "We haven't heard back from you. I'm marking this conversation as complete. Feel free to start a new conversation anytime!"

Close the inactive conversation.

Pro Tips

  • Adjust the time threshold based on your business hours
  • Customize the goodbye message based on conversation context
  • Add error handlers to prevent the scenario from failing on individual errors

Rate Limiting

To ensure reliable service for all Make users, we implement rate limits on API endpoints:

General Endpoints

60 requests per minute per connected account

Close Conversation

10 requests per minute

Webhook Deliveries

Automatic retries up to 3 times with exponential backoff

For Make Users: These rate limits are generous for typical scenario usage. If you hit a rate limit, Make will receive a 429 Too Many Requests response. Consider adding Sleep modules between API calls when processing many items.

429 Error Response

{
    "message": "Too Many Attempts.",
    "retry_after": 60
}

Best Practices for Make Scenarios

Designing Efficient Scenarios

Use Instant Triggers When Possible

  • Instant triggers (webhooks) are faster and more reliable than polling
  • They're more efficient and don't consume as many operations
  • Set up "New Conversation" and "Human Handoff" as instant triggers

Handle Multiple Results Properly

  • Use Iterator modules when processing multiple conversations or messages
  • Add error handlers to prevent the entire scenario from failing
  • Use filters to process only relevant items

Optimize Data Mapping

  • Map only the fields you actually need
  • Use Make's built-in functions for date/text formatting
  • Store frequently used values in variables or data stores

Error Handling in Make

Add Error Handlers

  1. Right-click any module → "Add error handler"
  2. Choose "Rollback" for critical operations
  3. Choose "Ignore" for non-critical operations
  4. Use "Resume" + notification for logging errors

Common Error Patterns

Error Handler → Slack notification → Stop
Error Handler → Email → Rollback → Stop
Error Handler → Log to Google Sheets → Resume

Optimizing API Calls

Reduce Unnecessary Calls

  • Don't fetch full message history if you only need the latest message
  • Use pagination wisely - start with 10-20 items
  • Filter conversations by date to avoid fetching old data
  • Cache frequently accessed data using Data Stores

Rate Limit Considerations

  • Add 1-2 second Sleep modules between Close Conversation actions
  • For bulk operations, use scheduling to spread calls over time
  • Monitor your scenario execution history for 429 errors

Data Handling Best Practices

Understanding Field Types

Field TypeFormatExampleNotes
Conversation StatusBooleantrue = open, false = closedUse 1 in filters, not true
Response ModeStringai or humanUse for routing logic
Message TypesStringguest, agentFilter customer vs AI messages
TimestampsISO 86012024-11-12T10:30:00ZUse formatDate() function

Handling Missing Data

  • Customer email and name may be null for anonymous conversations
  • Use Make's if() function to provide defaults:
    {{if(data.chat_user.email; data.chat_user.email; "No email provided")}}
  • Check for empty arrays before iterating (attachments, messages)
  • Use Error Handlers to catch missing required fields

Working with Message Content

  • Messages may contain line breaks - use replace() to clean up
  • Check attachments array length before accessing
  • User feedback field is usually null (only set if customer rated the response)
  • Use Text Parser modules for extracting specific information

Security Recommendations

Protect Customer Data

  • Don't log customer messages to public channels
  • Be careful when sending conversation data to third-party apps
  • Use Make's data encryption features for sensitive information
  • Regularly review which apps have access to your AssistLoop data

OAuth Token Management

  • Never share your AssistLoop connection with others
  • Use separate connections for development and production scenarios
  • Reconnect if you suspect token compromise
  • Make handles token refresh automatically - don't try to manually refresh

Webhook Security

  • Make automatically validates webhook signatures
  • Webhook URLs are unique and secret - don't share them
  • If a webhook URL is compromised, delete and recreate the instant trigger
  • Use HTTPS only - AssistLoop rejects HTTP webhook URLs

Testing Your Integration

First, create a connection in Make to test authentication:

  1. Add any AssistLoop module to your scenario
  2. Click "Add" next to Connection
  3. Enter Connection name: "AssistLoop Production"
  4. Click "Continue" and authorize

The OAuth test will call GET /api/v1/oauth/me automatically.

Create a test scenario:

  1. Add "AssistLoop: New Conversation" instant trigger
  2. Click "Run once" to activate the webhook
  3. Create a test conversation in your AssistLoop dashboard
  4. Verify the data structure in Make's execution history
  1. Add "AssistLoop: List Conversations" module
  2. Select your workspace and agent
  3. Set filters (status=1 for open conversations)
  4. Run once and inspect the output
  1. Get a conversation UUID from previous step
  2. Add "AssistLoop: Find Messages" module
  3. Set the conversation UUID
  4. Add "AssistLoop: Reply to Conversation" module
  5. Test sending a message
  1. Add "AssistLoop: Close Conversation" module
  2. Use a test conversation UUID
  3. Run once and verify conversation is closed in dashboard

Troubleshooting

Common Issues

Getting Help

For Make integration support:

When contacting support, please include:

  • Screenshot of your Make scenario
  • Execution history showing the error
  • Your organization UUID
  • Agent UUID (if applicable)
  • Full error message
  • Steps to reproduce

Module Reference Summary

Instant Triggers (Webhooks)

Module NameEvent TypeDescription
New Conversationnew_conversationTriggers when conversation starts
Human Handoff Requestedhuman_handoff_requiredTriggers when AI needs human help

Actions

Module NameEndpointDescription
List ConversationsGET /conversations/listQuery conversations with filters
Find MessagesGET /messages/findGet messages from a conversation
Reply to ConversationPOST /replySend a message to customer
Close ConversationPOST /closeMark conversation as closed

Remote Procedures (RPCs)

RPC NameEndpointUsed In
Get WorkspacesGET /my/organizationsAll modules (workspace selector)
Get AgentsGET /organizations/#{{id/agentsAll modules (agent selector)
Get ConversationsGET /conversations/listFind Messages, Reply, Close modules

This documentation provides everything you need to build powerful automations with AssistLoop and Make!

On this page

Make Integration API Reference
Base URL
Authentication
Example Request with Authentication
OAuth 2.0 Authorization Flow
OAuth 2.0 Endpoints
Available Scopes
Make OAuth Configuration
OAuth Configuration Parameters
Make Connection Settings
Test API Call
Errors
HTTP Status Code Summary
Error Response Format
OAuth Endpoints
Get Current User
Example Request
Response
Webhook Endpoints (Make Instant Triggers)
Subscribe to Webhooks
Request Parameters
Example Request
Response
Webhook Event Types (Make Instant Triggers)
Webhook Payload Examples
New Conversation Event
Human Handoff Required Event
Unsubscribe from Webhooks
Path Parameters
Example Request
Response
Remote Procedures (Make Dropdowns)
Get Workspaces
Example Request
Response
Get Agents
Path Parameters
Example Request
Response
Get Conversations
Path Parameters
Query Parameters
Example Request
Response
Conversation Endpoints (Make Actions)
List Conversations
Path Parameters
Query Parameters
Example Request
Response
Get Recent Conversation Samples
Path Parameters
Query Parameters
Example Request
Response
Close Conversation
Path Parameters
Request Parameters
Example Request
Response
Message Endpoints (Make Actions)
Find Messages
Path Parameters
Query Parameters
Example Request
Response
Reply to Conversation
Path Parameters
Request Parameters
Example Request
Response
Common Make Scenario Examples
Scenario 1: Slack Notification for New Conversations
Scenario 2: Create Zendesk Ticket on Human Handoff
Scenario 3: Daily Conversation Summary
Scenario 4: Auto-Close Inactive Conversations
Rate Limiting
Best Practices for Make Scenarios
Designing Efficient Scenarios
Use Instant Triggers When Possible
Handle Multiple Results Properly
Optimize Data Mapping
Error Handling in Make
Optimizing API Calls
Reduce Unnecessary Calls
Rate Limit Considerations
Data Handling Best Practices
Understanding Field Types
Handling Missing Data
Working with Message Content
Security Recommendations
Protect Customer Data
OAuth Token Management
Webhook Security
Testing Your Integration
Troubleshooting
Common Issues
Getting Help
Module Reference Summary
Instant Triggers (Webhooks)
Actions
Remote Procedures (RPCs)