Loops so

Learn how to use Loops so with Composio

Overview

SLUG: LOOPS_SO

Description

The email platform for modern SaaS. A better way to send product, marketing, and transactional email.

Authentication Details

generic_api_key
stringRequired

Connecting to Loops so

Create an auth config

Use the dashboard to create an auth config for the Loops so toolkit. This allows you to connect multiple Loops so accounts to Composio for agents to use.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Loops so Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using API Key

1from composio import Composio
2
3# Replace these with your actual values
4loops_so_auth_config_id = "ac_YOUR_LOOPS_SO_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/app
6
7composio = Composio()
8
9def authenticate_toolkit(user_id: str, auth_config_id: str):
10 # Replace this with a method to retrieve an API key from the user.
11 # Or supply your own.
12 user_api_key = input("[!] Enter API key")
13
14 connection_request = composio.connected_accounts.initiate(
15 user_id=user_id,
16 auth_config_id=auth_config_id,
17 config={"auth_scheme": "API_KEY", "val": {"generic_api_key": user_api_key}}
18 )
19
20 # API Key authentication is immediate - no redirect needed
21 print(f"Successfully connected Loops so for user {user_id}")
22 print(f"Connection status: {connection_request.status}")
23
24 return connection_request.id
25
26
27connection_id = authenticate_toolkit(user_id, loops_so_auth_config_id)
28
29# You can verify the connection using:
30connected_account = composio.connected_accounts.get(connection_id)
31print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the [Loops so toolkit’s playground](https://app.composio.dev/app/Loops so)

For code examples, see the Tool calling guide and Provider examples.

Tool List

Tool Name: Create Contact

Description

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

Action Parameters

email
stringRequired
firstName
lastName
mailingLists
source
subscribed
Defaults to True
userGroup
userId

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Create Contact Property

Description

Tool 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).

Action Parameters

name
stringRequired
type
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Delete Contact

Description

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

Action Parameters

email
userId

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Find Contact

Description

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

Action Parameters

email
userId

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get Contact Properties

Description

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

Action Parameters

list

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get Dedicated Sending IPs

Description

Tool to retrieve a list of Loops' dedicated sending IP addresses. Use when you need to get IP addresses for whitelisting purposes.

Action Parameters

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get Mailing Lists

Description

Tool to retrieve all mailing lists associated with your Loops account. Use when you need to browse or manage mailing list information.

Action Parameters

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: List Custom Fields

Description

Tool 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'.

Action Parameters

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: List Transactional Emails

Description

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

Action Parameters

cursor
perPage

Action Response

data
arrayRequired
error
pagination
objectRequired
successful
booleanRequired

Tool Name: Send Event

Description

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

Action Parameters

email
eventName
stringRequired
eventProperties
idempotencyKey
mailingLists
userId

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Test API Key

Description

Tool to test API key validity and retrieve team information. Use to verify API credentials are working correctly.

Action Parameters

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Update Contact

Description

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

Action Parameters

email
firstName
lastName
mailingLists
source
subscribed
userGroup
userId

Action Response

data
objectRequired
error
successful
booleanRequired