Spoki

Learn how to use Spoki with Composio

Overview

SLUG: SPOKI

Description

Spoki is an Italian platform that integrates WhatsApp’s official APIs to automate communication for marketing, sales, customer support, and payments.

Authentication Details

generic_api_key
stringRequired
username
stringRequired

Connecting to Spoki

Create an auth config

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

1

Select App

Navigate to Spoki.

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 Spoki 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
4spoki_auth_config_id = "ac_YOUR_SPOKI_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": user_api_key}
18 )
19
20 # API Key authentication is immediate - no redirect needed
21 print(f"Successfully connected Spoki 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, spoki_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 Spoki 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=["SPOKI"])
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: Create custom field

Description

Tool to create a new custom field. use when defining extra data points for contacts.

Action Parameters

code
stringRequired
example
stringRequired
field_type
integerRequired
label
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create or Update Contact

Description

Tool to create or update a contact. use when you need to upsert a single contact record via the sync endpoint.

Action Parameters

custom_fields
object
email
string
first_name
string
language
string
last_name
string
phone
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete contact

Description

Tool to delete a specific contact. use after confirming the contact id. example prompt: "delete contact with id 1091234."

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Account Current Report

Description

Tool to get the current report for a specified account. use when you need up-to-date metrics on messages and conversations for an account. note: result is cached for 30 minutes.

Action Parameters

account_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Agencies

Description

Tool to list all agencies accessible to the user. use when you need to retrieve all agencies for the authenticated account.

Action Parameters

Action Response

data
arrayRequired
error
string
successful
booleanRequired

Tool Name: List Automations

Description

Tool to list, search, and filter automations. use after authenticating to retrieve available automations and apply optional search or platform filters.

Action Parameters

is_active
boolean
search
string
webhook_platform
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List campaigns

Description

Tool to list, search, and filter campaigns. use when you need to retrieve campaigns optionally filtered by scheduled datetime.

Action Parameters

scheduled_datetime_gte
string
scheduled_datetime_lte
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Contacts

Description

Tool to list, search, and filter contacts. use when you need to retrieve contacts with optional search and filters.

Action Parameters

email
string
first_name
string
is_blocked
boolean
language
string
last_name
string
phone
string
search
string
tag
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List tags

Description

Tool to list, search, and filter tags. use when you need to fetch all tags for the account.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List templates

Description

Tool to list, search, and filter whatsapp templates. use when you need to retrieve available templates, optionally filtering by keywords.

Action Parameters

search
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Tickets

Description

Tool to list, search, and filter tickets. use when you need to retrieve tickets with optional pagination and filters.

Action Parameters

order
string
page
integer
per_page
integer
sort_by
string
status
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve Account

Description

Tool to retrieve details of a specific account. use after confirming the account id is valid.

Action Parameters

account_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve Automation

Description

Tool to retrieve details of a specific automation. use after listing automations to fetch full details including webhooks and timestamps. example: retrieve automation with id 345016.

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve Contact

Description

Tool to retrieve details of a specific contact. use when you have a contact id and need full profile details.

Action Parameters

contact_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve Tag

Description

Tool to retrieve details of a specific tag. use when you need tag metadata by id.

Action Parameters

id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve Template

Description

Tool to retrieve details of a specific template. use after obtaining a template id.

Action Parameters

template_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Custom Fields

Description

Tool to list, search, and filter custom fields. use when you need to fetch available custom-field definitions by label or code.

Action Parameters

code
string
label
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Tags

Description

Tool to list, search, and filter tags. use when you need to fetch all tags for the account.

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List WhatsApp templates

Description

Tool to list, search, and filter whatsapp templates. use when you need to retrieve available templates, optionally filtering by keywords.

Action Parameters

search
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Retrieve Custom Field

Description

Tool to retrieve details of a specific custom field. use when you have a field id and need its metadata before using it in automations.

Action Parameters

custom_field_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Custom Field

Description

Tool to update a specific custom field. use after retrieving a field to change its label.

Action Parameters

custom_field_id
integerRequired
label
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Spoki list partners

Description

Deprecated placeholder for spoki list partners action file

Action Parameters

Action Response

data
objectRequired
error
string
successful
booleanRequired