Skip to content

Pipeline, Circles, reminders and the contact timeline for your AI assistant ​

Spun has tools for a connected AI assistant covering your sales boards, Contact Circles, alarms, Keep In Touch list, quick replies, chat language settings and one history for each contact. This page says which work today, and lists every tool, the permission it needs, what the Free plan includes, and what each refusal means in plain words.

New to connecting an assistant? Start with Connect ChatGPT, Claude or another AI assistant to Spun.

At a glance ​

  • The three access levels include these tools. Since 10 November 2026 every access level reads your boards, circles, alarms, Keep In Touch list and quick replies, and the two Assistant levels also change them. On a key you can still tick each permission by itself. See Permissions for these tools.
  • None of these tools sends a message itself. They change your boards, circles and reminders. Your own stage rules can send when a contact enters a stage, so a move that would start a message needs the send permission as well. See When a stage move would start a message.
  • Each area has its own permission. Reading and changing are separate, so a key can read a board without being able to move a card.
  • Free plan rules are per tool. With the permission on the key, the Free plan reads all of this and manages Circles. Moving cards, setting alarms, changing Keep In Touch and changing chat language settings are on Starter and up.
  • Deleting a circle always needs a person. The assistant can only ask, and an organization manager decides.

Permissions for these tools ​

A key only reaches the tools its permissions allow. A tool the key has no permission for is hidden from the assistant.

PermissionScopeWhat it lets the assistant doIn an access level
Read Pipelineread_pipelineSee your boards, cards, stage history and board numbersAll three
Move Pipeline Stagesmanage_pipelineMove contacts between stages and undo a move. It cannot add, rename or archive stagesAssistant, no sends and Assistant with sends
Read Circlesread_circlesSee your circles, their members and the circles a contact belongs toAll three
Manage Circlesmanage_circlesCreate and rename circles, add and remove members, and ask for a circle to be deletedAssistant, no sends and Assistant with sends
Read Alarmsread_alarmsSee reminders set on chats and labelsAll three
Manage Alarmsmanage_alarmsSet a reminder for your team and dismiss one that has firedAssistant, no sends and Assistant with sends
Read Keep In Touchread_keep_in_touchSee who has gone quiet past their cadenceAll three
Manage Keep In Touchmanage_keep_in_touchPut a contact on a cadence, or take them off it, using your existing labelsAssistant, no sends and Assistant with sends
Read Quick Repliesread_quick_repliesRead your saved replies. No permission lets an assistant change themAll three

All nine are in the access levels. The five read permissions are in all three levels, and the four that change something are in Assistant, no sends and Assistant with sends. Create & Update Contacts, which a stage move needs when a chat has no saved contact yet, is in the two Assistant levels as well. Each permission is also on the list when you create or edit a key in Settings → AI Assistant (MCP) → Manage API keys. An app you connected earlier gains nothing by itself: until its key carries a permission, the tools that need it stay hidden from the assistant. An app that signed in with your Spun account before 10 November 2026 gets these permissions when an organization manager presses Review and update access under Connected AI apps and confirms; the review lists what would be added. The Free plan rules below apply at every access level.

Chat language settings and the contact timeline use permissions you may already have:

  • Contact timeline: Read Contacts and Read Conversations, both in Read-only analyst.
  • Chat language settings: Chat Status, which is in Assistant, no sends.

Free plan ​

On the Free plan, every successful tool call counts toward your 100 Connected AI calls a month, including circle changes. Usage and status checks, questions about Spun itself, and failed or refused calls do not count. At 100, reads stop until the reset; circle changes are not stopped by the 100, they have the limits in the table below. Of the changes on this page, Free can only make circle changes. The other Free limits are in the table below.

AreaFree planStarter and up
PipelineRead every board, card, history and numberAlso move and undo
CirclesRead and manage, up to 3 circles, 500 memberships in total and 100 changes in any 24 hoursRead and manage, without those three limits
AlarmsReadAlso set and dismiss
Keep In TouchReadAlso set and clear
Quick repliesReadRead
Chat language settingsReadAlso change
Contact timelineRead, with messages from the last 7 daysRead, without the 7-day limit

When a tool is on a paid plan, the assistant gets the refusal plan_required with a sentence such as "Moving contacts between pipeline stages from Connected AI is on the Starter plan and up." Nothing changes.

Two limits apply on every plan: a circle holds up to 200 members, and a contact can belong to up to 25 circles.

Pipeline ​

ToolWhat it doesPermission
list_pipelinesLists your boards and their stages, with how many cards sit in eachRead Pipeline
get_pipeline_boardShows the cards of a board, or of one stageRead Pipeline
get_contact_stageShows where one contact sits on every boardRead Pipeline
list_stage_historyLists stage moves, newest first, with who moved each card and whenRead Pipeline
get_pipeline_metricsGives the numbers from the board's Metrics view, compared with the previous periodRead Pipeline
move_stageMoves one contact to a stage, or takes it off the boardMove Pipeline Stages
bulk_move_stageMoves up to 100 contacts to one stage, with a separate result for eachMove Pipeline Stages
undo_stage_movePuts a card back where it was, within 8 seconds of the moveMove Pipeline Stages

A chat with no saved contact can be moved too. Spun saves the contact first, which needs the Create & Update Contacts permission as well.

When a stage move would start a message ​

A stage move sends nothing itself. Your own stage rules can: a stage can be set up to send a WhatsApp message or an email when a contact enters it, or to add a label that starts a coaching series. When a move would start one of these, the key also needs Propose Sends (mcp_send_message), which is in Assistant with sends. Without it the assistant gets missing_scope, the card stays where it was, and nothing is sent. With it, the move goes through and your stage rules run exactly as they do when a person moves the card in Spun, with the same quiet hours and limits.

In bulk_move_stage this rule covers the whole batch: when entering the stage would start a message, the whole call is refused and no card moves. Moves that people make in Spun are not affected by this rule.

RefusalWhat it meansWhat to do
missing_scopeEntering this stage would start an automated message to the contact, and the key cannot sendUse Assistant with sends, add Propose Sends to the key, or have a person move the card in Spun
stage_conflictThe card moved after the assistant last looked at itRead the current stage and try again
hierarchy_blockedAn automated move may not take the card out of the stage it is inA person moves it on the board
terminal_lockedThe card is in Won or LostA person can move it out on the board
unresolved_contactThe contact could not be found for this cardCheck the contact, or search for it first
cannot_create_contactThe chat has no contact, and the key may not create oneAdd Create & Update Contacts to the key, or create the contact first
label_not_in_pipelineThe stage belongs to a different boardUse a stage from this board
lost_reason_requiredThis stage needs a reasonMove the card again with the reason
stage_archivedThe stage is archivedChoose an active stage
undo_window_expiredMore than 8 seconds have passed since the moveMove the card back with move_stage
invalid_undoThe move cannot be undone: a contact merge wrote it, it is itself an undo, or it was already undoneMove the card with move_stage if needed
not_eligibleThe move is not allowed for this key, or an automation tried to take a card off the boardA person makes the change on the board
feature_not_readyStage moves are not switched on for this workspace yetReading the boards still works

Circles ​

ToolWhat it doesPermission
list_circlesLists your circles and how many members each holdsRead Circles
get_circleShows one circle and its members, with their rolesRead Circles
list_contact_circlesLists the circles one contact belongs toRead Circles
create_circleCreates an empty circleManage Circles
update_circleRenames a circle or changes its color or iconManage Circles
add_circle_membersAdds up to 100 contacts in one call, with an optional roleManage Circles
set_circle_member_roleSets or clears the role of one contact who is already a member. The role holds in that circle onlyManage Circles
remove_circle_membersTakes up to 100 contacts out of a circle. The contacts themselves stayManage Circles
delete_circleAsks for a circle to be deletedManage Circles

Deleting a circle needs a person. delete_circle deletes nothing itself. It files a request in Spun Tools → Automate → AI Sends, and an organization manager approves or rejects it. A circle with more than 20 members also needs the assistant to confirm the request first. Approval removes the circle and its memberships; the contacts and their chats stay.

Adding members. Contacts that fit are added even when others are refused. Each contact gets its own result:

ResultWhat it means
addedThe contact is now a member
already_memberThe contact was already in the circle
not_foundThere is no such contact
deletedThe contact was deleted
circle_fullThe circle already has 200 members
contact_circle_limitThe contact is already in 25 circles
org_membership_limitThe account reached 500 memberships on the Free plan

When removing, each contact gets removed, or not_member if it was not in the circle.

RefusalWhat it meansWhat to do
already_existsAnother circle has this name, whatever the letter caseUse the existing circle, or pick another name
plan_limit_reachedOn a circle change: the account reached a Free plan limit on circles, memberships, or changes in the last 24 hours. The same code also means the monthly calls are used up, see the last table on this pageRemove something, wait, or move to a paid plan
confirm_requiredThe circle has more than 20 membersAsk again with confirmation
not_eligibleThe connection belongs to a person who sees only some chats. It can read what they see but cannot change circles or filter by themA person with full access makes the change in Spun
missing_scopeFiltering by circle needs Read CirclesAdd Read Circles to the key, or leave the filter out
feature_not_readyDeleting through approval is not switched on for this workspace yetDelete the circle in Spun

Alarms ​

ToolWhat it doesPermission
list_alarmsLists shared reminders plus the signed-in person's private ones, soonest firstRead Alarms
create_alarmSets a one-time reminder on a chat for the whole team. Asking again with the same chat, time and note while that reminder is still waiting returns the same reminder and adds no second oneManage Alarms
dismiss_alarmDismisses an alarm that has firedManage Alarms

An alarm notifies your team. It sends nothing to the customer.

A connection that is limited to chosen labels or chats lists and dismisses only the alarms on chats inside its limit and the label alarms of labels inside it. An alarm that is on neither a chat nor a label is outside every limit; to such a connection it answers not_found.

RefusalWhat it meansWhat to do
invalid_paramsThe alarm needs exactly one chat or contact, a note, and a time in the futureFix the request
not_foundThere is no such chat or contact, or no fired alarm with this id. A pending or snoozed alarm cannot be dismissedWait until it fires, or check the id

Keep In Touch ​

ToolWhat it doesPermission
list_keep_in_touchLists contacts who have gone quiet past their cadence, plus every cadence you can assignRead Keep In Touch
set_keep_in_touchPuts a contact on a cadence by giving them the label that carries itManage Keep In Touch
clear_keep_in_touchTakes a contact off Keep In Touch by removing their cadence labels. Other labels stayManage Keep In Touch

A cadence comes from a label set up in Labels. The assistant never creates a label or changes a cadence. If the cadence label is one that starts a coaching series for the contacts who get it, setting it also needs Propose Sends, as with a stage move.

RefusalWhat it meansWhat to do
missing_scopeThe cadence label would start a coaching series for the contact, and the key cannot sendUse Assistant with sends, add Propose Sends to the key, or have a person set the label in Spun
invalid_paramsThe label has no cadencePick a label that has one
not_foundNo label carries that number of days, or the contact or label does not existSet the cadence in Labels first
conflictSeveral labels share this cadenceName the label to use
use_move_stageThe label is a pipeline stageMove the card with move_stage
send_block_label_immutableThe label blocks sending, so the assistant cannot remove itA person changes it in Spun
ai_protected_label_immutableThe label is protected from AI changesA person changes it in Spun

Quick replies ​

ToolWhat it doesPermission
list_quick_repliesLists your active quick replies, with a short preview of eachRead Quick Replies
get_quick_replyReads one quick reply in fullRead Quick Replies

Quick replies are read-only here. You create and edit them in Spun. If an id does not match an active quick reply, the assistant gets not_found.

Chat language settings ​

ToolWhat it doesPermission
get_chat_language_settingsReads one chat's language and voice settingsChat Status
set_chat_language_settingsChanges one chat's language and voice settings. Only the settings named changeChat Status

Three settings belong to one person: translating your outgoing messages, the language you record in and the language you send voice in. They need an app connected with a Spun account, so a plain key reads them as empty and cannot change them. Organization-wide defaults stay in Settings. Changing these sends nothing to the customer.

RefusalWhat it meansWhat to do
invalid_paramsThe language is not supported, no setting was given, or two settings that cannot go together were sentFix the request
not_eligibleA personal setting needs a connected account, and this key has noneConnect the app with your Spun account
not_foundThere is no such chatCheck the chat
provider_errorSome settings could not be saved. The answer lists what was saved and what was notTry the unsaved settings again

Contact timeline ​

ToolWhat it doesPermission
get_contact_timelineShows one contact's history as one list, newest first: messages, stage moves, tasks, alarms, notes and identity eventsRead Contacts and Read Conversations

The assistant can filter by kind and by date, and read up to 200 entries a call. On the Free plan, messages go back 7 days and the answer says so; the other kinds are not limited. If the contact does not exist, the assistant gets not_found.

Refusals that can come from any of these tools ​

RefusalWhat it meansWhat to do
missing_scopeThe key does not have the permission for this toolAdd the permission to the key in Settings
tool_not_enabledThe tool is outside the set of tools this key is limited toChange the tools the key may use, or use a key that includes this tool
tool_not_releasedThis connection does not include the toolUse another tool for the job
plan_requiredThe tool is on a paid planSee Pricing
plan_limit_reachedThe monthly Connected AI calls are used up. The sentence with the refusal says what applies to the accountWait for the date in that sentence, or choose a plan in Settings → Plan & Usage. During a trial, choosing a plan is the only way to continue
trial_endedThe free trial ended with no plan and no card on fileAn account admin picks a plan in Settings → Plan & Usage, or saves a card there to continue on the Free plan
self_proxy_pausedThe free trial ended and the account's Self Proxy is pausedAn account admin picks a plan in Settings → Plan & Usage, or switches the line to a shared proxy there to continue on the Free plan
org_mcp_disabledAI connections are switched off for this organization, or the organization was not foundAn organization admin turns them on in Settings → AI Assistant
kill_switch_engagedSpun has paused changes through AI connections, for the whole platform, this organization or this key. Reads keep workingContact support. Nothing in Settings lifts this
key_inactiveThis key is switched offAn organization admin turns it back on in Settings → AI Assistant, or creates a new key there
key_expiredThis key has passed its expiry dateAn organization admin creates a new key in Settings → AI Assistant
quota_unavailableSpun could not check the rate limits for this change just now, so it refused the change instead of risking going overWait a moment and try again. If it keeps happening, contact support
invalid_paramsSomething in the request is missing or the wrong shapeFix the request
invalid_cursorA page marker is out of date or does not belong to this listStart the list again from the first page
not_foundThe item does not exist, or this key cannot see itCheck the id
rate_limitedToo many calls in a short timeWait a moment and try again
internal_errorSomething went wrong on the Spun sideTry again. If it keeps happening, contact support
Was this page helpful?

Spun Docs - the documentation for Spun, the WhatsApp team inbox by Spun Life LLC.