The email platform for modern SaaS. A better way to send product, marketing, and transactional email.
The email platform for modern SaaS. A better way to send product, marketing, and transactional email. On Nagent, Loops.so is exposed as a fully-configurable email integration that any agent can call — 12 actions, and API key authentication. No code is required to wire Loops.so into your workflow — connect it once via the External Integrations panel and reuse it across every agent you build.
Agent builders use Loops.so to automate the kinds of tasks email teams previously handled manually. Concrete examples — each one is a single agent step in Nagent — include:
Every action and trigger is paired with a structured input/output schema (visible in the sections below), so when you wire Loops.so into Helix — our agentic agent builder — the editor knows exactly what each step expects and produces. Configure once, deploy anywhere across your Nagent agents.
Every operation an agent can call against Loops.so, with input parameters and output schema. Drop these into any step of an agent built in Helix.
LOOPS_SO_CREATE_CONTACTTool to add a new contact to your Loops audience. Use when you need to create a contact with email and optional properties like name, subscription status, or custom attributes. Returns 409 if contact already exists.
Input parameters
The contact's email address. This is the unique identifier for the contact.
Custom source value to replace the default 'API' source attribution.
Unique user ID from your external application for linking contacts.
The contact's last name.
The contact's first name.
Segment users into groups. A contact can only be in one user group at a time.
Whether the contact should receive campaign and loops emails. Defaults to true if not specified.
Key-value pairs mapping mailing list IDs to boolean subscription status. Keys are mailing list IDs, values indicate subscription status.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
LOOPS_SO_CREATE_CONTACT_PROPERTYTool to add a custom contact property to your Loops team. Use when you need to store additional contact data beyond default fields. Properties must have unique names in camelCase format and a specified data type (string, number, boolean, or date).
Input parameters
The name of the property in camelCase format (e.g., planName, favoriteColor). This will be used to identify the property in your contact data.
The property's data type. Must be one of: string, number, boolean, or date.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
LOOPS_SO_DELETE_CONTACTTool to delete a contact by email address or user ID. Use when you need to remove a contact from Loops. Either email or userId must be provided to identify the contact.
Input parameters
The contact's email address to identify which contact to delete
The contact's userId value to identify which contact to delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
LOOPS_SO_FIND_CONTACTTool to search for a contact by email or userId. Use when you need to find a specific contact's details including subscription status and custom properties. Exactly one of email or userId must be provided per request.
Input parameters
The contact's email address to search for. Must be URI-encoded. Only one of email or userId is allowed per request.
The contact's unique user ID to search for. Only one of email or userId is allowed per request.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
LOOPS_SO_GET_CONTACT_PROPERTIESTool to retrieve a list of your account's contact properties from Loops.so. Use when you need to view all available contact properties or filter to only custom properties created by your team.
Input parameters
Use 'custom' to filter results to only custom properties created by your team. Omit this parameter to retrieve all properties (both standard and custom).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
LOOPS_SO_GET_DEDICATED_SENDING_IPSTool to retrieve a list of Loops' dedicated sending IP addresses. Use when you need to get IP addresses for whitelisting purposes.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
LOOPS_SO_GET_MAILING_LISTSTool to retrieve all mailing lists associated with your Loops account. Use when you need to browse or manage mailing list information.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
LOOPS_SO_LIST_CUSTOM_FIELDSTool to retrieve a list of custom contact properties. Use when you need to view available custom fields for contacts. Note: This endpoint is deprecated in favor of 'List contact properties'.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
LOOPS_SO_LIST_TRANSACTIONAL_EMAILSTool to retrieve a list of published transactional emails. Use when you need to view all available transactional email templates. Supports pagination with perPage and cursor parameters.
Input parameters
A cursor to return a specific page of results. Cursors can be found from the pagination.nextCursor value in each response.
How many results to return in each request. Must be between 10 and 50. Default: 20
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
LOOPS_SO_SEND_EVENTTool to send events to trigger emails in Loops. Use when you need to track user actions and trigger automated email workflows based on those events.
Input parameters
The contact's email address. Required if userId is not provided.
The contact's unique user ID. Required if email is not provided.
The name of the event to trigger.
Mailing list subscriptions as key-value pairs. Keys are list IDs, values are boolean (true to add, false to remove).
Optional idempotency key (up to 100 characters) to avoid duplicate requests within 24 hours.
Event property data as key-value pairs. Values can be string, number, boolean, or date.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
LOOPS_SO_TEST_API_KEYTool to test API key validity and retrieve team information. Use to verify API credentials are working correctly.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
LOOPS_SO_UPDATE_CONTACTTool to update an existing contact by email or userId. Use when you need to modify contact properties or re-subscribe contacts. Creates a new contact if no matching record exists.
Input parameters
Contact's email address. Creates new contact if none exists. Required if userId is not provided.
Custom source value replacing default 'API'
Unique user identifier from external applications. Required if email is not provided.
Contact's last name
Contact's first name
Single group for user segmentation
Determines campaign/loop email eligibility. Setting to true will re-subscribe previously unsubscribed contacts.
Key-value pairs of list IDs with boolean subscription status
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
No publicly available marketplace agent is found using this tool yet. There are 38 agents privately built on Nagent that already use Loops.so.
Build on Nagent
Connect Loops.so to any Nagent agent in minutes — no API key management, no boilerplate. Just configure and deploy.
The five questions agent builders ask before adopting a new integration.
Open the External Integrations panel inside Nagent (app.nagent.ai/externalIntegration), find Loops.so, and click "Connect Now." You'll authenticate with an API key — Nagent handles credential storage and refresh automatically. Once connected, Loops.so is available to any agent in your workspace.
No. Nagent provides no-code integration for every tool. Once Loops.so is connected, you configure its 12 actions directly in the agent builder UI — no API calls, no boilerplate, no schema management.
Helix — Nagent's agentic agent builder — lets you drop Loops.so steps into any workflow visually. Pick an action (e.g., one of those listed above), fill in the inputs (Helix knows the required vs. optional schema for each parameter), and connect it to upstream/downstream steps. Triggers run as the entry point of an agent, so when a Loops.so event fires, the agent kicks off automatically.
Every Loops.so action and trigger ships with a fully-typed schema — input parameters with name, type, required flag, and description, plus the output payload shape. The schemas are documented in the sections above. Helix uses these schemas to validate your configuration at build time and to type-check the data flowing between steps.
Yes. While Loops.so ships with 12 pre-built email actions, you can layer custom logic around them inside Helix — pre/post-processing steps, conditional branches, retries, or stitching Loops.so together with other connected tools. For deeper customization, talk to our team about Nagent's Agentic AI Lab — forward-deployed engineers who build Loops.so-based workflows tailored to your business.