Loops

Manage contacts and send emails with Loops

Loops is an email platform built for modern SaaS companies, offering transactional emails, marketing campaigns, and event-driven automations through a clean API. This integration connects Loops directly into Sim workflows.

With Loops in Sim, you can:

  • Manage contacts: Create, update, find, and delete contacts in your Loops audience
  • Send transactional emails: Trigger templated transactional emails with dynamic data variables
  • Fire events: Send events to Loops to trigger automated email sequences and workflows
  • Manage subscriptions: Control mailing list subscriptions and contact properties programmatically
  • Enrich contact data: Attach custom properties, user groups, and mailing list memberships to contacts

In Sim, the Loops integration enables your agents to manage email operations as part of their workflows. Supported operations include:

  • Create Contact: Add a new contact to your Loops audience with email, name, and custom properties.
  • Update Contact: Update an existing contact or create one if no match exists (upsert behavior).
  • Find Contact: Look up a contact by email address or userId.
  • Delete Contact: Remove a contact from your audience.
  • Send Transactional Email: Send a templated transactional email to a recipient with dynamic data variables.
  • Send Event: Trigger a Loops event to start automated email sequences for a contact.

Configure the Loops block with your API key from the Loops dashboard (Settings > API), select an operation, and provide the required parameters. Your agents can then manage contacts and send emails as part of any workflow.

Usage Instructions

Integrate Loops into the workflow. Create and manage contacts, send transactional emails, and trigger event-based automations.

Tools

loops_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.

Input

ParameterTypeRequiredDescription
apiKeystringYesLoops API key for authentication
emailstringYesThe email address for the new contact
firstNamestringNoThe contact first name
lastNamestringNoThe contact last name
sourcestringNoCustom source value replacing the default "API"
subscribedbooleanNoWhether the contact receives campaign emails (defaults to true)
userGroupstringNoGroup to segment the contact into (one group per contact)
userIdstringNoUnique user identifier from your application
mailingListsjsonNoMailing list IDs mapped to boolean values (true to subscribe, false to unsubscribe)
customPropertiesjsonNoCustom contact properties as key-value pairs (string, number, boolean, or date values)

Output

ParameterTypeDescription
successbooleanWhether the contact was created successfully
idstringThe Loops-assigned ID of the created contact

loops_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.

Input

ParameterTypeRequiredDescription
apiKeystringYesLoops API key for authentication
emailstringNoThe contact email address (at least one of email or userId is required)
userIdstringNoThe contact userId (at least one of email or userId is required)
firstNamestringNoThe contact first name
lastNamestringNoThe contact last name
sourcestringNoCustom source value replacing the default "API"
subscribedbooleanNoWhether the contact receives campaign emails (sending true re-subscribes unsubscribed contacts)
userGroupstringNoGroup to segment the contact into (one group per contact)
mailingListsjsonNoMailing list IDs mapped to boolean values (true to subscribe, false to unsubscribe)
customPropertiesjsonNoCustom contact properties as key-value pairs (send null to reset a property)

Output

ParameterTypeDescription
successbooleanWhether the contact was updated successfully
idstringThe Loops-assigned ID of the updated or created contact

loops_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.

Input

ParameterTypeRequiredDescription
apiKeystringYesLoops API key for authentication
emailstringNoThe contact email address to search for (at least one of email or userId is required)
userIdstringNoThe contact userId to search for (at least one of email or userId is required)

Output

ParameterTypeDescription
contactsarrayArray of matching contact objects (empty array if no match found)
idstringLoops-assigned contact ID
emailstringContact email address
firstNamestringContact first name
lastNamestringContact last name
sourcestringSource the contact was created from
subscribedbooleanWhether the contact receives campaign emails
userGroupstringContact user group
userIdstringExternal user identifier
mailingListsobjectMailing list IDs mapped to subscription status
optInStatusstringDouble opt-in status: pending, accepted, rejected, or null

loops_delete_contact

Delete a contact from Loops by email address or userId. At least one identifier must be provided.

Input

ParameterTypeRequiredDescription
apiKeystringYesLoops API key for authentication
emailstringNoThe email address of the contact to delete (at least one of email or userId is required)
userIdstringNoThe userId of the contact to delete (at least one of email or userId is required)

Output

ParameterTypeDescription
successbooleanWhether the contact was deleted successfully
messagestringStatus message from the API

loops_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.

Input

ParameterTypeRequiredDescription
apiKeystringYesLoops API key for authentication
emailstringYesThe email address of the recipient
transactionalIdstringYesThe ID of the transactional email template to send
dataVariablesjsonNoTemplate data variables as key-value pairs (string or number values)
addToAudiencebooleanNoWhether to create the recipient as a contact if they do not already exist (default: false)
attachmentsjsonNoArray of file attachments. Each object must have filename (string), contentType (MIME type string), and data (base64-encoded string).

Output

ParameterTypeDescription
successbooleanWhether the transactional email was sent successfully

loops_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.

Input

ParameterTypeRequiredDescription
apiKeystringYesLoops API key for authentication
emailstringNoThe email address of the contact (at least one of email or userId is required)
userIdstringNoThe userId of the contact (at least one of email or userId is required)
eventNamestringYesThe name of the event to trigger
eventPropertiesjsonNoEvent data as key-value pairs (string, number, boolean, or date values)
mailingListsjsonNoMailing list IDs mapped to boolean values (true to subscribe, false to unsubscribe)

Output

ParameterTypeDescription
successbooleanWhether the event was sent successfully

loops_list_mailing_lists

Retrieve all mailing lists from your Loops account. Returns each list with its ID, name, description, and public/private status.

Input

ParameterTypeRequiredDescription
apiKeystringYesLoops API key for authentication

Output

ParameterTypeDescription
mailingListsarrayArray of mailing list objects
idstringThe mailing list ID
namestringThe mailing list name
descriptionstringThe mailing list description (null if not set)
isPublicbooleanWhether the list is public or private

loops_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.

Input

ParameterTypeRequiredDescription
apiKeystringYesLoops API key for authentication
perPagestringNoNumber of results per page (10-50, default: 20)
cursorstringNoPagination cursor from a previous response to fetch the next page

Output

ParameterTypeDescription
transactionalEmailsarrayArray of published transactional email templates
idstringThe transactional email template ID
namestringThe template name
lastUpdatedstringLast updated timestamp
dataVariablesarrayTemplate data variable names
paginationobjectPagination information
totalResultsnumberTotal number of results
returnedResultsnumberNumber of results returned
perPagenumberResults per page
totalPagesnumberTotal number of pages
nextCursorstringCursor for next page (null if no more pages)
nextPagestringURL for next page (null if no more pages)

loops_create_contact_property

Create a new custom contact property in your Loops account. The property name must be in camelCase format.

Input

ParameterTypeRequiredDescription
apiKeystringYesLoops API key for authentication
namestringYesThe property name in camelCase format (e.g., "favoriteColor")
typestringYesThe property data type (e.g., "string", "number", "boolean", "date")

Output

ParameterTypeDescription
successbooleanWhether the contact property was created successfully

loops_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.

Input

ParameterTypeRequiredDescription
apiKeystringYesLoops API key for authentication
liststringNoFilter type: "all" for all properties (default) or "custom" for custom properties only

Output

ParameterTypeDescription
propertiesarrayArray of contact property objects
keystringThe property key (camelCase identifier)
labelstringThe property display label
typestringThe property data type (string, number, boolean, date)

On this page

Start building today
Trusted by over 70,000 builders.
Build Agentic workflows visually on a drag-and-drop canvas or with natural language.
Get started