Esputnik

Learn how to use Esputnik with Composio

Overview

SLUG: ESPUTNIK

Description

eSputnik is a marketing automation platform that enables businesses to manage and automate their communication channels, including email, SMS, web push, and mobile push notifications.

Authentication Details

basic_encoded
stringRequired

Connecting to Esputnik

Create an auth config

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

1

Select App

Navigate to Esputnik.

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 Esputnik 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
4esputnik_auth_config_id = "ac_YOUR_ESPUTNIK_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 Esputnik 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, esputnik_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 Esputnik toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["ESPUTNIK"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: ADD_DOMAIN

Description

Tool to register a domain for web tracking or widgets. Use after confirming the site ID.

Action Parameters

domain
stringRequired
siteId
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Add Orders Bulk

Description

Tool to transfer orders in bulk to eSputnik. Use when you need to import up to 1000 orders at once.

Action Parameters

orders
arrayRequired

Action Response

data
arrayRequired
error
string
successful
booleanRequired

Tool Name: Bulk Add or Update Contacts

Description

Tool to bulk add or update up to 3000 contacts asynchronously. Use when you have a batch of contacts to import or update in one request and need a single session ID for tracking.

Action Parameters

contacts
arrayRequired
customFieldsIDs
array
dedupeOn
stringRequired
eventKeyForNewContacts
string
groupNames
array
groupNamesExclude
array
restoreDeleted
boolean

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Change Token Activity

Description

Action to change (activate/deactivate) the activity state of a mobile push token. Endpoint: PUT /api/v1/contact/token/activated/{app_uuid}/{token_id} Body: { "active": boolean } Response: { "active": boolean }

Action Parameters

active
booleanRequired
app_uuid
stringRequired
token_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Contact

Description

Tool to delete a contact by its Yespo ID. Use when you need to remove a contact with no pending interactions.

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Contact by External ID

Description

Tool to delete a contact by externalCustomerId.

Action Parameters

erase
boolean
externalCustomerId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete SMS Message

Description

Tool to delete a base SMS message by ID. Use when you need to remove an SMS template before sending. Example: "Delete SMS message with ID 123"

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get App Inbox Message

Description

Tool to retrieve an App Inbox message by ID. Use when you need to fetch its content, metadata, and translations before sending or editing.

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Broadcasts

Description

Tool to list broadcasts from eSputnik. Use when you need to retrieve paginated list of broadcasts.

Action Parameters

maxrows
integerDefaults to 10
startindex
integerDefaults to 1

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Contact Import Status

Description

Tool to retrieve the status of a contact import session. Use this to poll the asynchronous processing status of a previously submitted bulk contacts import.

Action Parameters

sessionId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Contact Subscriptions

Description

Tool to retrieve subscription categories for a contact. Use when you need to get all subscription categories that a contact is enrolled in.

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Organization Balance

Description

Tool to retrieve the current organization balance. Use when you need to check the account's available funds before sending campaigns.

Action Parameters

note
string
optional
string
test_case
boolean

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Organization Billing History

Description

Tool to retrieve the organization billing history by day and media channel.

Action Parameters

date_from
string
date_to
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Preprocessor File Status

Description

Tool to retrieve the status of a preprocessor file upload session. Use when polling for the asynchronous processing status of a previously submitted file.

Action Parameters

id
stringRequired

Action Response

data
error
string
id
stringRequired
raw_text
stringRequired
status
string
status_code
integerRequired
successful
booleanRequired