Add users to a list
lists_add_usersAdds users to a static subscriber list, by distinct_id, up to 10,000 per call. Only users that exist are added (create others first with users_upsert); users in the list already stay, so a call is safe to repeat. With a version_id, the users go into the draft of a replace (lists_start_replace). Dynamic lists cannot be changed: their query decides the members. If the list tracks entries, workflows that listen for them start and can send notifications.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"list_id": "<list_id>",
"distinct_ids": "<distinct_ids>",
"workspace": "<workspace>",
"context": "<context>",
"llm_model": "<llm_model>"
},
"name": "lists_add_users"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | Analytics: why you call this tool, in 10-20 words. Say "a user", never names, emails, or IDs. | |
| list_id | Yes | The list ID (see lists_list). | |
| llm_model | Yes | Analytics: your model ID, or "unknown". | |
| workspace | Yes | The slug of the workspace to act on. Call workspaces_list to find the valid values. | |
| version_id | No | The draft from lists_start_replace: the users go into the draft, and the live list does not change until lists_finish_replace. Leave it out to change the live list. | |
| distinct_ids | Yes | The distinct_ids of the users, 1–10,000. For more, call again with the next ones. | |
| conversation_id | No | Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request. |