Overview
Add Loops to any ModuleX agent or workflow. Manage contacts and send emails with Loops. Create and manage contacts, send transactional emails, and trigger event-based automations against the Loops REST API (app.loops.so/api/v1).
Authentication
API Key Authentication
Authenticate using your Loops API keyStep 1
Required Credentials
| Field | Description | Required | Format |
|---|---|---|---|
| Loops API Key | Your Loops API key from Settings > API | Yes | - |
Available Actions
create_contact — Create a new contact in your Loops audience with an email address and optional properties like name, user group, and mailing list subscriptions.
create_contact — Create a new contact in your Loops audience with an email address and optional properties like name, user group, and mailing list subscriptions.
Parameters
Response
update_contact — Update an existing contact in Loops by email or userId. Creates a new contact if no match is found (upsert). Can update name, subscription status, user group, mailing lists, and custom properties.
update_contact — Update an existing contact in Loops by email or userId. Creates a new contact if no match is found (upsert). Can update name, subscription status, user group, mailing lists, and custom properties.
Parameters
Response
find_contact — Find a contact in Loops by email address or userId. Returns an array of matching contacts with all their properties including name, subscription status, user group, and mailing lists.
find_contact — Find a contact in Loops by email address or userId. Returns an array of matching contacts with all their properties including name, subscription status, user group, and mailing lists.
delete_contact — Delete a contact from Loops by email address or userId. At least one identifier must be provided.
delete_contact — Delete a contact from Loops by email address or userId. At least one identifier must be provided.
send_transactional_email — Send a transactional email to a recipient using a Loops template. Supports dynamic data variables for personalization and optionally adds the recipient to your audience.
send_transactional_email — Send a transactional email to a recipient using a Loops template. Supports dynamic data variables for personalization and optionally adds the recipient to your audience.
Parameters
Response
send_event — Send an event to Loops to trigger automated email sequences for a contact. Identify the contact by email or userId and include optional event properties and mailing list changes.
send_event — Send an event to Loops to trigger automated email sequences for a contact. Identify the contact by email or userId and include optional event properties and mailing list changes.
Parameters
Response
list_mailing_lists — Retrieve all mailing lists from your Loops account. Returns each list with its ID, name, description, and public/private status.
list_mailing_lists — Retrieve all mailing lists from your Loops account. Returns each list with its ID, name, description, and public/private status.
Response
list_transactional_emails — Retrieve a list of published transactional email templates from your Loops account. Returns each template with its ID, name, last updated timestamp, and data variables.
list_transactional_emails — Retrieve a list of published transactional email templates from your Loops account. Returns each template with its ID, name, last updated timestamp, and data variables.
create_contact_property — Create a new custom contact property in your Loops account. The property name must be in camelCase format.
create_contact_property — Create a new custom contact property in your Loops account. The property name must be in camelCase format.
list_contact_properties — Retrieve a list of contact properties from your Loops account. Returns each property with its key, label, and data type. Can filter to show all properties or only custom ones.
list_contact_properties — Retrieve a list of contact properties from your Loops account. Returns each property with its key, label, and data type. Can filter to show all properties or only custom ones.
Limits & Quotas
- Loops applies per-account API rate limits; check your plan in the Loops dashboard for current values.
list_transactional_emailsacceptsper_page(10-50, default 20) and acursorfor pagination; the response carries apaginationblock withnext_cursor/next_pagefor fetching subsequent pages.- Error model: non-2xx responses and timeouts are caught and
returned as
success=False+errorrather than raising. Mutating endpoints also return HTTP 200 with{"success": false, "message": ...}for business-logic failures, which is surfaced aserror.