Servidor MCP

neuron

io.github.conquext/neuron

Qué hace este MCP

Operates AI chatbots and messaging workflows across WhatsApp and social channels, including contacts, campaigns, conversations, products, and bookings.

neuron_add_bot_channel
Add Bot Channel
Connect an additional WhatsApp channel to a bot as a secondary number. The bot will respond to messages on this channel.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId', 'channelId'], 'properties': {'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot'}, 'channelId': {'type': 'string', 'description': 'Unique identifier (UUID) of the WhatsApp channel to connect'}}, 'additionalProperties': False}
neuron_add_group_members
Add Members to Group
Add members to an existing group, resolved from any combination of sources (other groups, contact lists, contacts, pasted phones, all contacts). Address the group by its id, slug, or JID.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['group'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Keep only contacts carrying one of these tags'}, 'group': {'type': 'string', 'description': 'Group id, slug, or JID (ending in @g.us)'}, 'phones': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Raw phone numbers, e.g. pasted from a CSV'}, 'listIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Contact list ids or slugs â\x80\x94 pulls every member'}, 'contactIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Existing contact ids'}, 'allContacts': {'type': 'boolean', 'description': "Union the org's entire address book"}, 'fromGroupIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Copy/combine members live from these WhatsApp group JIDs'}, 'excludeListIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Subtract every member of these lists'}}, 'additionalProperties': False}
neuron_add_product_codes
Add Product Codes
Add more unique codes/keys to a 'pool' code product's stock. Each buyer receives one. Returns the product with the new remaining count.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'codes'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Product UUID'}, 'codes': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Unique codes/keys to append to the pool'}}, 'additionalProperties': False}
neuron_add_to_contact_list
Add to Contact List
Add one or more contacts to a list by contact ID or phone number. Phone numbers without existing contacts are auto-created as minimal contact records.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['idOrSlug', 'entries'], 'properties': {'entries': {'type': 'array', 'items': {'type': 'object', 'properties': {'phone': {'type': 'string', 'description': 'Phone number in E.164 format (e.g., +2348012345678). Creates a new contact if no match exists.'}, 'contactId': {'type': 'string', 'description': 'Unique identifier (UUID) of an existing contact'}}, 'additionalProperties': False}, 'description': 'Array of contacts to add, each identified by contactId or phone number'}, 'idOrSlug': {'type': 'string', 'description': 'Unique identifier (UUID) or URL-friendly slug of the target contact list'}}, 'additionalProperties': False}
neuron_add_tool_secret
Add Tool Secret
Store or update a secret credential (API key, token, etc.) for a custom tool integration. Secrets are encrypted at rest.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'key', 'value'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the tool to add the secret to'}, 'key': {'type': 'string', 'description': "Secret key name used in templates (e.g., 'API_KEY', 'AUTH_TOKEN')"}, 'value': {'type': 'string', 'description': 'Secret value to store securely (will be encrypted)'}}, 'additionalProperties': False}
neuron_apply_persona_to_bot
Apply Persona Voice to Bot
Give a bot this persona's voice: merges a delimited voice block into the bot's system prompt (idempotent — re-applying or swapping personas replaces it cleanly) and tags the bot's metadata with the persona id.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'botId'], 'properties': {'id': {'type': 'string', 'description': 'Persona UUID'}, 'botId': {'type': 'string', 'description': 'Bot UUID to apply the voice to.'}}, 'additionalProperties': False}
neuron_apply_to_sell
Apply to Sell
Apply for seller access (digital products). Requires a Pro plan or higher; a platform admin then grants access.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'pitch': {'type': 'string', 'description': 'Short note on what you plan to sell'}}, 'additionalProperties': False}
neuron_approve_reflection
Approve Reflection
Approve a bot-generated reflection to incorporate the learned insight into the bot's future behavior and responses.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the reflection to approve'}}, 'additionalProperties': False}
neuron_assign_bot_to_channel
Assign Bot to Channel
Assign a bot to handle incoming messages on a specific WhatsApp channel. Replaces any previously assigned bot.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'botId'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the channel'}, 'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to assign'}}, 'additionalProperties': False}
neuron_assign_bot_to_social_channel
Assign Bot to Social Channel
Assign a bot to handle interactions on a specific social media channel. The bot will be able to use the channel's credentials for social media actions.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'botId'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the social channel'}, 'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to assign'}}, 'additionalProperties': False}
neuron_attach_knowledge_base
Attach Knowledge Base
Attach a knowledge base to a bot to enhance its responses with domain-specific knowledge. Optional priority determines retrieval order when multiple knowledge bases are attached.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'knowledgeBaseId'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot'}, 'priority': {'type': 'number', 'description': 'Priority level for knowledge base retrieval (higher values are checked first)'}, 'knowledgeBaseId': {'type': 'string', 'description': 'Unique identifier (UUID) of the knowledge base to attach'}}, 'additionalProperties': False}
neuron_audio_contact
Extract Contact from Audio
Transcribe an audio recording and extract contact information (name, phone, email, notes, tags). Automatically saves the extracted contact to the organization's address book.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audioBase64'], 'properties': {'audioBase64': {'type': 'string', 'description': 'Base64-encoded audio data containing spoken contact information'}, 'audioFormat': {'type': 'string', 'default': 'webm', 'description': "Audio format hint for decoding (default: 'webm')"}}, 'additionalProperties': False}
neuron_block_contact
Block Contact
Block a WhatsApp contact. Blocked contacts cannot message the bot or see its profile.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'jid'], 'properties': {'jid': {'type': 'string', 'description': "Contact JID or phone number to block (e.g. '2348012345678' or '2348012345678@s.whatsapp.net')"}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_bot_api_chat
Bot API Chat
Send a message to a bot via the API and receive a streaming or complete AI-generated response. Requires a valid API key with 'nrn_' prefix.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['apiKey', 'message', 'contactPhone'], 'properties': {'apiKey': {'type': 'string', 'description': "Bot API key with 'nrn_' prefix for authentication"}, 'message': {'type': 'string', 'description': 'The message text to send to the bot'}, 'contactName': {'type': 'string', 'description': 'Display name of the contact for conversation context'}, 'contactPhone': {'type': 'string', 'description': "Phone number of the contact sending the message (E.164 format, e.g., '+2348012345678')"}}, 'additionalProperties': False}
neuron_bot_api_get_bot
Bot API Get Bot
Retrieve configuration and status information about the bot associated with the provided API key.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['apiKey'], 'properties': {'apiKey': {'type': 'string', 'description': "Bot API key with 'nrn_' prefix for authentication"}}, 'additionalProperties': False}
neuron_bot_api_get_messages
Bot API Get Messages
Retrieve message history for a specific conversation with cursor-based pagination. Requires a valid API key.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['apiKey', 'conversationId'], 'properties': {'limit': {'type': 'number', 'description': 'Maximum number of messages to return (default: 50)', 'exclusiveMinimum': 0}, 'apiKey': {'type': 'string', 'description': "Bot API key with 'nrn_' prefix for authentication"}, 'before': {'type': 'string', 'description': 'Cursor for pagination â\x80\x94 retrieve messages created before this message ID or ISO 8601 timestamp'}, 'conversationId': {'type': 'string', 'description': 'Unique identifier (UUID) of the conversation to retrieve messages from'}}, 'additionalProperties': False}
neuron_bot_api_list_conversations
Bot API List Conversations
Retrieve a paginated list of conversations managed by the bot. Supports filtering by conversation status. Requires a valid API key.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['apiKey'], 'properties': {'page': {'type': 'number', 'description': 'Page number for pagination (default: 1)', 'exclusiveMinimum': 0}, 'limit': {'type': 'number', 'description': 'Number of conversations per page (default: 20)', 'exclusiveMinimum': 0}, 'apiKey': {'type': 'string', 'description': "Bot API key with 'nrn_' prefix for authentication"}, 'status': {'type': 'string', 'description': "Filter by conversation status: 'active', 'closed', or 'pending'"}}, 'additionalProperties': False}
neuron_bot_api_send
Bot API Send
Send an outbound message through the bot API to a specified phone number. Supports text and media messages. Requires a valid API key.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['apiKey', 'to', 'message'], 'properties': {'to': {'type': 'string', 'description': "Recipient's phone number (E.164 format, e.g., '+2348012345678')"}, 'apiKey': {'type': 'string', 'description': "Bot API key with 'nrn_' prefix for authentication"}, 'sendAt': {'type': 'string', 'description': "ISO 8601 date-time for scheduled delivery (e.g., '2025-12-31T10:00:00Z'). Message sends immediately if omitted."}, 'message': {'type': 'string', 'description': 'The message text to send to the recipient'}, 'mediaUrl': {'type': 'string', 'description': 'Public URL of the media file to attach (required for non-text message types)'}, 'channelId': {'type': 'string', 'description': "Unique identifier (UUID) of a specific WhatsApp channel to send from. Uses the bot's primary channel if omitted."}, 'messageType': {'type': 'string', 'description': "Type of message to send: 'text', 'image', 'video', 'audio', or 'document' (default: 'text')"}}, 'additionalProperties': False}
neuron_browse_list_pool
Browse List Pool
Browse verified contact lists available in the shared marketplace pool. Filter by category, region, or search term.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'number', 'description': 'Page number for pagination (default: 1)'}, 'limit': {'type': 'number', 'description': 'Number of items per page (default: 20)'}, 'region': {'type': 'string', 'description': "Filter by geographic region (e.g., 'lagos', 'abuja')"}, 'search': {'type': 'string', 'description': 'Search term to filter by description or category'}, 'category': {'type': 'string', 'description': "Filter by audience category (e.g., 'delivery', 'tech', 'consumers')"}, 'smsEnabled': {'type': 'boolean', 'description': 'Only return lists whose owner opted into SMS campaigns (usable as curated audiences for neuron_create_sms_campaign)'}}, 'additionalProperties': False}
neuron_browse_pool
Browse Pool
Browse the shared marketplace pool of published bots, tools, knowledge bases, and reflections with optional filtering by type, category, tags, or search query.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'number', 'description': 'Page number for pagination (default: 1)'}, 'tags': {'type': 'string', 'description': "Filter by tags (comma-separated list, e.g., 'ai,chatbot')"}, 'type': {'enum': ['knowledge_base', 'bot_template', 'tool_template', 'reflection_pack'], 'type': 'string', 'description': 'Filter by resource type'}, 'limit': {'type': 'number', 'description': 'Number of items per page (default: 20)'}, 'query': {'type': 'string', 'description': 'Free-text search query to filter pool items by name or description'}, 'category': {'type': 'string', 'description': 'Filter by category name'}, 'featured': {'type': 'boolean', 'description': 'When true, return only featured items'}}, 'additionalProperties': False}
neuron_build_persona
Build Persona from Collection
Distill a reusable voice from a Collection of mined content: analyzes the top-engagement items and reverse-engineers a voiceProfile (tone, diction, cadence, emoji/formatting habits, themes, dos/donts) + representative exemplars. Requires the collection to have >=3 usable samples. Runs an LLM call (a few seconds).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['collectionId'], 'properties': {'name': {'type': 'string', 'description': "Persona name. Defaults to '<collection name> voice'."}, 'sampleLimit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'How many top-engagement items to analyze (default 40).'}, 'collectionId': {'type': 'string', 'description': 'Source Collection UUID (built by the web agent / content mining).'}}, 'additionalProperties': False}
neuron_build_persona_from_conversation
Build Persona from WhatsApp Chat
Distill a reusable voice from an existing WhatsApp conversation's stored messages — no extension needed. `author` picks whose voice: 'me' (owner's own outgoing texts), 'contact' (the other party), 'bot', or 'any'. For a group chat, pass senderName/senderPhone to isolate one participant. Requires >=3 usable text messages. Runs an LLM call.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['conversationId'], 'properties': {'name': {'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'How many recent messages to read (default 200).'}, 'author': {'enum': ['me', 'contact', 'bot', 'any'], 'type': 'string', 'description': "Whose voice to capture. Default 'me'."}, 'senderName': {'type': 'string', 'description': 'For groups: match one participant by display name.'}, 'senderPhone': {'type': 'string', 'description': 'For groups: match one participant by phone.'}, 'conversationId': {'type': 'string', 'description': 'Conversation UUID (from neuron_list_conversations).'}}, 'additionalProperties': False}
neuron_build_persona_from_text
Build Persona from Text
Distill a reusable voice from raw text — no Collection or browser extension needed. Feed it pasted posts, a chat/dialogue transcript, WhatsApp-export text, or your own well-crafted writing sample, and it reverse-engineers a voiceProfile (tone, diction, cadence, emoji/formatting habits, themes, dos/donts) + exemplars. Provide `text` (auto-split into samples) and/or `samples` (already-split). Runs an LLM call (a few seconds).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'name': {'type': 'string', 'description': "Persona name. Defaults to '<author> voice' or 'Custom voice'."}, 'text': {'type': 'string', 'description': 'A raw blob to distill: posts, a dialogue, a chat transcript, or a writing sample. Auto-split into samples.'}, 'samples': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Pre-split writing samples (alternative or addition to `text`).'}, 'speaker': {'type': 'string', 'description': "If `text` is a chat transcript, keep only this speaker's lines (name match) â\x80\x94 so a group chat yields one person's voice."}, 'platform': {'type': 'string', 'description': "Optional metadata tag for the samples (e.g. 'whatsapp', 'x')."}, 'authorLabel': {'type': 'string', 'description': 'Who the voice belongs to, for a more grounded analysis.'}, 'description': {'type': 'string'}}, 'additionalProperties': False}
neuron_bulk_toggle_builtin_tools
Bulk Toggle Built-in Tools
Enable or disable multiple built-in tools at once for a bot. More efficient than toggling tools individually.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId', 'settings'], 'properties': {'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to update tools for'}, 'settings': {'type': 'array', 'items': {'type': 'object', 'required': ['toolId', 'enabled'], 'properties': {'toolId': {'type': 'string', 'description': "Identifier of the built-in tool (e.g., 'web_search', 'send_direct_message')"}, 'enabled': {'type': 'boolean', 'description': 'Whether to enable (true) or disable (false) this tool'}}, 'additionalProperties': False}, 'description': 'Array of tool toggle settings to apply in bulk'}}, 'additionalProperties': False}
neuron_campaign_marketplace
Browse Campaign Marketplace
Browse available campaigns in the marketplace that your organization can join to earn rewards by sending messages.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'description': 'Page number for pagination (default: 1)', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'description': 'Number of campaigns per page (default: 20)', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
neuron_campaign_participants
List Campaign Participants
Retrieve all participants who have joined a campaign you own, including their delivery counts and earned rewards.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the campaign you own'}}, 'additionalProperties': False}
neuron_cancel_approval
Cancel Approval
Cancel a still-pending approval (e.g. the upstream action was aborted). Fires the approval.cancelled callback. Requires a bot API key.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['apiKey', 'approvalId'], 'properties': {'apiKey': {'type': 'string', 'description': "Bot API key with 'nrn_' prefix for authentication"}, 'reason': {'type': 'string', 'description': 'Optional cancellation reason'}, 'approvalId': {'type': 'string', 'description': 'The approval request id (UUID) to cancel'}}, 'additionalProperties': False}
neuron_cancel_booking
Cancel Booking
Cancel a confirmed or pending booking. Sends cancellation notifications to the invitee.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Booking UUID'}, 'reason': {'type': 'string', 'description': 'Cancellation reason'}}, 'additionalProperties': False}
neuron_cancel_flow_run
Cancel Flow Run
Cancel a running or waiting flow execution. Steps already completed are not rolled back.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['runId'], 'properties': {'runId': {'type': 'string', 'description': 'UUID of the run to cancel.'}}, 'additionalProperties': False}
neuron_cancel_scheduled_message
Cancel Scheduled Message
Cancel a scheduled message to prevent it from being sent. Only messages with status 'scheduled' can be cancelled. This action cannot be undone.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the scheduled message to cancel'}}, 'additionalProperties': False}
neuron_cancel_subscription
Cancel Subscription
Cancel the current active subscription. Access continues until the end of the current billing period.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_checkout
Checkout Subscription
Initiate a checkout session for a subscription plan upgrade. Returns a checkout URL or confirmation to complete the purchase.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['plan'], 'properties': {'plan': {'enum': ['pro', 'business'], 'type': 'string', 'description': "Subscription plan to purchase: 'pro' or 'business'"}}, 'additionalProperties': False}
neuron_close_conversation
Close Conversation
Close an active conversation, marking it as completed. The bot will stop responding and the conversation is archived.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the conversation to close'}}, 'additionalProperties': False}
neuron_complete_booking
Complete Booking
Mark a confirmed booking as completed (e.g. after the meeting has happened).
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Booking UUID'}}, 'additionalProperties': False}
neuron_compose_message
Compose Message
Compose and send a new message to a phone number via a specific channel. Automatically creates a new conversation if one does not exist.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'to', 'text'], 'properties': {'to': {'type': 'string', 'description': "Recipient phone number (E.164 format, e.g., '2348012345678')"}, 'text': {'type': 'string', 'description': 'Message text content'}, 'sendAt': {'type': 'string', 'description': "ISO 8601 date-time for scheduled delivery (e.g., '2025-12-31T10:00:00Z'). Message sends immediately if omitted."}, 'mediaUrl': {'type': 'string', 'description': 'URL of media to attach (required for non-text message types)'}, 'channelId': {'type': 'string', 'description': 'Unique identifier (UUID) of the WhatsApp channel to send through'}, 'contactName': {'type': 'string', 'description': 'Display name for the recipient contact'}, 'messageType': {'type': 'string', 'description': "Type of message: 'text' (default), 'image', or 'document'"}}, 'additionalProperties': False}
neuron_confirm_booking
Confirm Booking
Confirm a pending booking. Only works on bookings with status 'pending'.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Booking UUID'}}, 'additionalProperties': False}
neuron_convert_lead
Convert Lead to Contact
Promote a phone-bearing lead into a contact (so it can be messaged / added to lists). Optionally add the new contact to a list.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Lead UUID'}, 'addToList': {'type': 'string', 'description': 'Contact list name to add the converted contact to.'}}, 'additionalProperties': False}
neuron_create_ad_request
Create Ad Request
Create an ad distribution request to send a message to contacts in pool lists matching target demographics. Deducts from wallet upon approval.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['message', 'targetDemographics', 'targetGoal', 'budget'], 'properties': {'budget': {'type': 'number', 'description': 'Total ad budget in kobo (e.g., 500000 = NGN 5,000)'}, 'message': {'type': 'string', 'description': 'The ad message content to distribute to matched contacts'}, 'mediaUrl': {'type': 'string', 'description': "Media URL for non-text messages (required when messageType is 'image', 'video', or 'document')"}, 'targetGoal': {'type': 'number', 'description': 'Target number of successful message deliveries'}, 'messageType': {'type': 'string', 'description': "Message content type: 'text', 'image', 'video', or 'document' (default: 'text')"}, 'targetDemographics': {'type': 'object', 'properties': {'regions': {'type': 'array', 'items': {'type': 'string'}, 'description': "Target geographic regions to match (e.g., ['lagos', 'abuja'])"}, 'categories': {'type': 'array', 'items': {'type': 'string'}, 'description': "Target audience categories to match (e.g., ['delivery', 'tech'])"}}, 'description': 'Demographic criteria to match against pool list entries', 'additionalProperties': False}}, 'additionalProperties': False}
neuron_create_api_key
Create API Key
Create a new API key for programmatic access to a specific bot. Store the key securely as it cannot be retrieved later.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId', 'name'], 'properties': {'name': {'type': 'string', 'description': "Descriptive name for the API key to identify its purpose (e.g., 'Production CRM Integration')"}, 'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to create the API key for'}, 'expiresAt': {'type': 'string', 'description': "ISO 8601 date-time when the key should expire (e.g., '2026-12-31T23:59:59Z'). Key never expires if omitted."}}, 'additionalProperties': False}
neuron_create_blog_post
Create Blog Post
Create a new blog post. Body can be authored two ways: (1) `content` as markdown (GFM) + inline raw HTML, or (2) `blocks` — a structured array of typed layout blocks rendered as styled components (heroes, columns, callouts, code cards, embeds, CTAs, sanitized custom HTML). Prefer `blocks` for rich, magazine-style layouts; use `content` for simple prose. If both are given, `blocks` renders and `content` is kept as a fallback.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title', 'authorType'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'List of tag names or slugs to categorize the post'}, 'title': {'type': 'string', 'description': 'Title of the blog post (max 500 characters)'}, 'blocks': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}, 'description': "Structured layout blocks, rendered top-to-bottom as styled components. Each block is an object with a `type` and its fields:\n- hero: { type:'hero', title, kicker?, subtitle?, imageUrl?, align?:'left'|'center', ctaLabel?, ctaHref? }\n- richText: { type:'richText', markdown }  (full GFM markdown)\n- callout: { type:'callout', variant:'info'|'tip'|'warning'|'success'|'danger', title?, markdown }\n- columns: { type:'columns', ratio?:'1-1'|'1-2'|'2-1', columns:[ [block,...], [block,...] ] }  (exactly 2 columns of leaf blocks; no nested columns)\n- codeCard: { type:'codeCard', language?, filename?, code }\n- imageGrid: { type:'imageGrid', columns?:1|2|3|4, images:[{ url, alt?, caption? }] }\n- quote: { type:'quote', quote, attribution? }\n- embed: { type:'embed', provider:'youtube'|'loom'|'vimeo'|'generic', url, title? }  (paste the normal share URL)\n- cta: { type:'cta', headline, body?, buttonLabel, buttonHref, secondaryLabel?, secondaryHref?, accent?:'#hex' }\n- divider: { type:'divider' }\n- html: { type:'html', html, sandboxed?, height? }  (custom HTML. Default is sanitized + indexable, no scripts. Set sandboxed:true to run scripts inside an isolated iframe â\x80\x94 NOT indexed by search.)\nBuild magazine-style posts by composing these, e.g. a hero, then richText, then a columns block, a callout, a codeCard, and a closing cta."}, 'status': {'enum': ['draft', 'published'], 'type': 'string', 'default': 'draft', 'description': "Initial publication status of the post (default: 'draft')"}, 'content': {'type': 'string', 'description': 'Optional markdown body (GFM + inline raw HTML). Used when `blocks` is not provided, and kept as a fallback when it is. Rich options: ![alt](url), <video src controls>, <iframe> embeds (16:9), <details><summary>, <mark>, <kbd>.'}, 'excerpt': {'type': 'string', 'description': 'Short summary or preview text for the blog post'}, 'seoTitle': {'type': 'string', 'description': 'Custom SEO title override for search engine results'}, 'authorType': {'enum': ['user', 'organization'], 'type': 'string', 'description': 'Whether the post is authored by an individual user or the organization'}, 'seoKeywords': {'type': 'array', 'items': {'type': 'string'}, 'description': 'List of SEO keywords for search engine optimization'}, 'coverImageUrl': {'type': 'string', 'description': 'URL of the cover image displayed at the top of the post'}, 'seoDescription': {'type': 'string', 'description': 'Meta description for search engine result snippets'}}, 'additionalProperties': False}
neuron_create_bot
Create Bot
Create a new AI bot with specified name, model, and behavior instructions. Returns the created bot object.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'systemPrompt'], 'properties': {'name': {'type': 'string', 'description': 'Display name for the bot'}, 'llmModel': {'type': 'string', 'description': "OpenRouter model ID (e.g., 'google/gemini-2.5-flash-lite', 'openrouter/auto')"}, 'metadata': {'type': 'object', 'description': "Arbitrary metadata object stored with the bot. Known keys: 'communityExitFollowUp' (auto-DM users who leave watched groups â\x80\x94 { enabled: boolean, groupJids: string[], message: string with {name} placeholder }), 'learningConfig' (self-learning from conversations â\x80\x94 { enabled: boolean, folder: string, groupChats: string[], dmPhones: string[], useAdminPhones: boolean }), 'loadBalancing' (multi-channel round-robin â\x80\x94 { enabled: boolean, strategy: string }), 'welcomeNewMembers' (fine-tune welcome behavior â\x80\x94 { batchWindowSeconds: number, groupJids: string[] }). Additional custom keys are preserved as-is.", 'additionalProperties': {}}, 'maxTokens': {'type': 'number', 'description': 'Maximum number of tokens the bot can generate per response', 'exclusiveMinimum': 0}, 'assignment': {'type': 'string', 'description': 'One-sentence role definition for the bot (max 2000 chars)'}, 'systemPrompt': {'type': 'string', 'description': "System prompt that defines the bot's behavior, personality, and response guidelines"}, 'llmTemperature': {'type': 'number', 'maximum': 2, 'minimum': 0, 'description': 'Temperature parameter controlling response randomness (0 = deterministic, 2 = creative)'}, 'welcomeMessage': {'type': 'string', 'description': 'Welcome message sent to new members joining groups the bot manages. Setting this field activates the batched welcome feature â\x80\x94 new members are accumulated over a window (default 60s) and welcomed in a single message with @mentions. Set to null to disable.'}, 'fallbackMessage': {'type': 'string', 'description': 'Message sent when the bot cannot understand user input (max 2000 chars)'}, 'greetingMessage': {'type': 'string', 'description': 'Automatic greeting sent when a new conversation starts (max 2000 chars)'}, 'escalationPrompt': {'type': 'string', 'description': 'Prompt template used when escalating to a human agent (max 5000 chars)'}, 'responsibilities': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Array of responsibility descriptions defining what the bot handles'}, 'whatsappChannelId': {'type': 'string', 'description': 'Unique identifier (UUID) of the WhatsApp channel to associate with the bot'}}, 'additionalProperties': False}
neuron_create_broadcast
Create Broadcast
Create a new broadcast message in draft status. Provide recipients directly or use recipientSources to resolve from contact lists. The WhatsApp channel is auto-resolved if not specified.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'message'], 'properties': {'name': {'type': 'string', 'description': 'Display name or label for the broadcast'}, 'botId': {'type': 'string', 'description': "Identifier (UUID) of a bot to send through. Each recipient's channel is picked by the bot's load-balancer + sticky sessions. Takes precedence over channelId."}, 'message': {'type': 'string', 'description': 'Message content to broadcast to recipients'}, 'mediaUrl': {'type': 'string', 'description': 'URL of media to attach (required for image or document message types)'}, 'channelId': {'type': 'string', 'description': 'Identifier (UUID) of the WhatsApp channel to send through (auto-resolved from default channel if omitted)'}, 'recipients': {'type': 'array', 'items': {'type': 'object', 'required': ['phone'], 'properties': {'phone': {'type': 'string', 'description': "Recipient phone number in E.164 format (e.g., '+2348012345678')"}, 'contactName': {'type': 'string', 'description': 'Display name of the recipient contact'}}, 'additionalProperties': False}, 'description': 'Direct list of recipients (alternative to recipientSources)'}, 'messageType': {'type': 'string', 'description': "Type of message to send (e.g., 'text', 'image', 'document')"}, 'scheduledAt': {'type': 'string', 'description': "ISO 8601 date-time for scheduled broadcast delivery (e.g., '2025-12-31T10:00:00Z'). Creates as draft if omitted."}, 'recipientSources': {'type': 'object', 'properties': {'phones': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Individual phone numbers in E.164 format to include'}, 'filters': {'type': 'object', 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Only include contacts matching these tags'}}, 'description': 'Additional filters to narrow down recipients', 'additionalProperties': False}, 'listIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Contact list identifiers (UUIDs or slugs) to include as recipients'}, 'excludeListIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Contact list identifiers (UUIDs or slugs) to exclude from recipients'}}, 'description': 'Resolve recipients dynamically from contact lists with filtering and exclusion', 'additionalProperties': False}}, 'additionalProperties': False}
neuron_create_calendar
Create Calendar
Create a new booking calendar with a name, timezone, and visibility setting.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Calendar display name'}, 'slug': {'type': 'string', 'description': 'URL slug (auto-generated from name if omitted)'}, 'color': {'type': 'string', 'description': "Hex color code (e.g. '#6366f1')"}, 'timezone': {'type': 'string', 'description': 'IANA timezone (default: Africa/Lagos)'}, 'visibility': {'enum': ['private', 'public', 'org-link'], 'type': 'string', 'description': "Visibility: 'public' for public booking page, 'org-link' for link-only, 'private' for no public access"}, 'description': {'type': 'string', 'description': 'Calendar description'}, 'notifyEmail': {'type': 'boolean', 'description': 'Send email notifications for bookings'}, 'notifyPhone': {'type': 'string', 'description': 'Host phone number for WhatsApp notifications'}, 'notifyWhatsapp': {'type': 'boolean', 'description': 'Send WhatsApp notifications for bookings'}, 'notifyEmailAddress': {'type': 'string', 'description': 'Host email address for notifications'}}, 'additionalProperties': False}
neuron_create_campaign
Create Campaign
Create a new outreach campaign with target audience, messaging template, and schedule configuration. Requires a Pro or Business plan.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title', 'message', 'rewardPerDelivery', 'totalBudget', 'deadline'], 'properties': {'title': {'type': 'string', 'description': 'Campaign title displayed in marketplace and dashboard'}, 'message': {'type': 'string', 'description': 'The WhatsApp message template to send to contacts'}, 'deadline': {'type': 'string', 'description': "Campaign deadline in ISO 8601 date format (e.g., '2025-12-31')"}, 'guidelines': {'type': 'string', 'description': 'Instructions and guidelines for campaign participants'}, 'description': {'type': 'string', 'description': 'Campaign description shown in the marketplace listing'}, 'totalBudget': {'type': 'number', 'description': 'Total campaign budget in kobo (e.g., 500000 = NGN 5,000)'}, 'rewardPerDelivery': {'type': 'number', 'description': 'Reward per successful delivery in kobo (e.g., 5000 = NGN 50)'}, 'requireMutualContact': {'type': 'boolean', 'description': 'Only allow sends to contacts who have previously responded (default: false)'}}, 'additionalProperties': False}
neuron_create_channel
Create Channel
Create a new WhatsApp channel with either Meta Cloud API or Baileys (direct WhatsApp) integration. Meta Cloud channels require metaPhoneNumberId and metaAccessToken.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'type'], 'properties': {'name': {'type': 'string', 'description': 'Display name for the channel'}, 'type': {'enum': ['meta_cloud', 'baileys'], 'type': 'string', 'description': "Integration type: 'meta_cloud' for Meta Cloud API or 'baileys' for direct WhatsApp connection"}, 'phoneNumber': {'type': 'string', 'description': "Phone number for the channel (E.164 format, e.g., '+2348012345678')"}, 'metaAccessToken': {'type': 'string', 'description': 'Meta Access Token (required for meta_cloud type)'}, 'metaPhoneNumberId': {'type': 'string', 'description': 'Meta Phone Number ID (required for meta_cloud type)'}}, 'additionalProperties': False}
neuron_create_contact
Create Contact
Create a new contact in the organization's address book. If notes are provided, they are saved as a structured note entry with source tracking.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'phone'], 'properties': {'name': {'type': 'string', 'description': 'Full name of the contact'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': "Tags to categorize the contact (e.g., ['vendor', 'lagos'])"}, 'email': {'type': 'string', 'description': 'Email address of the contact'}, 'notes': {'type': 'string', 'description': 'Additional notes about the contact, saved as a structured entry'}, 'phone': {'type': 'string', 'description': 'Contact phone number in E.164 format (e.g., +2348012345678)'}, 'doNotBroadcast': {'type': 'boolean', 'description': 'If true, this contact is permanently excluded from all broadcasts'}, 'doNotAutoRespond': {'type': 'boolean', 'description': 'If true, the bot will never auto-respond to this contact (manual/API and human sends still work)'}}, 'additionalProperties': False}
neuron_create_contact_list
Create Contact List
Create a new contact list. Slug is auto-generated from name if not provided. For dynamic lists, provide criteria with rules and/or an AI prompt.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Display name for the contact list'}, 'slug': {'type': 'string', 'description': 'URL-friendly identifier (auto-generated from name if omitted)'}, 'type': {'enum': ['static', 'dynamic', 'merged'], 'type': 'string', 'description': "List type (default: 'static')"}, 'criteria': {'type': 'object', 'description': 'Dynamic list criteria object: { rules?: { operator, conditions }, aiPrompt?, aiMaxResults? }', 'additionalProperties': {}}, 'description': {'type': 'string', 'description': "Human-readable description of the list's purpose"}, 'refreshSchedule': {'enum': ['manual', 'daily', 'weekly', 'on_access'], 'type': 'string', 'description': "Refresh schedule for dynamic lists (default: 'manual')"}}, 'additionalProperties': False}
neuron_create_event
Create Calendar Event
Create a host-initiated event on a calendar. Supports attendees (with WhatsApp/email invitations), location, and daily/weekly/monthly recurrence.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendarId', 'title', 'startTime', 'endTime'], 'properties': {'title': {'type': 'string', 'description': 'Event title'}, 'endTime': {'type': 'string', 'description': 'End time (ISO 8601)'}, 'attendees': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Attendee name'}, 'email': {'type': 'string', 'description': 'Attendee email'}, 'phone': {'type': 'string', 'description': 'Attendee phone (for WhatsApp invitations)'}, 'contactId': {'type': 'string', 'description': 'Link to existing Neuron contact UUID'}}, 'additionalProperties': False}, 'description': 'List of attendees to invite'}, 'startTime': {'type': 'string', 'description': "Start time (ISO 8601, e.g. '2025-03-15T09:00:00Z')"}, 'calendarId': {'type': 'string', 'description': 'Calendar UUID'}, 'description': {'type': 'string', 'description': 'Event description'}, 'locationType': {'enum': ['video', 'phone', 'in_person', 'whatsapp', 'custom'], 'type': 'string', 'description': 'Location type'}, 'locationValue': {'type': 'string', 'description': 'Location details'}, 'recurrenceRule': {'anyOf': [{'type': 'object', 'required': ['kind'], 'properties': {'kind': {'type': 'string', 'const': 'daily'}, 'count': {'type': 'number', 'description': 'Max occurrences'}, 'endAt': {'type': 'string', 'description': 'Stop generating after this ISO date'}, 'interval': {'type': 'number', 'description': 'Every N days (default: 1)'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'days'], 'properties': {'days': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Days of week: 0=Sun, 1=Mon, ..., 6=Sat'}, 'kind': {'type': 'string', 'const': 'weekly'}, 'count': {'type': 'number', 'description': 'Max occurrences'}, 'endAt': {'type': 'string', 'description': 'Stop generating after this ISO date'}, 'interval': {'type': 'number', 'description': 'Every N weeks (default: 1)'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'dayOfMonth'], 'properties': {'kind': {'type': 'string', 'const': 'monthly'}, 'count': {'type': 'number', 'description': 'Max occurrences'}, 'endAt': {'type': 'string', 'description': 'Stop generating after this ISO date'}, 'interval': {'type': 'number', 'description': 'Every N months (default: 1)'}, 'dayOfMonth': {'type': 'number', 'description': 'Day of month (1-31)'}}, 'additionalProperties': False}], 'description': 'Recurrence rule â\x80\x94 generates instances 12 weeks ahead'}}, 'additionalProperties': False}
neuron_create_event_type
Create Event Type
Create a bookable event type on a calendar (e.g. '30-min consultation').
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendarId', 'name'], 'properties': {'name': {'type': 'string', 'description': "Event type name (e.g. 'Discovery Call')"}, 'color': {'type': 'string', 'description': 'Hex color code'}, 'price': {'type': 'number', 'description': 'Price for paid bookings'}, 'currency': {'type': 'string', 'description': "3-letter currency code (e.g. 'NGN')"}, 'duration': {'type': 'number', 'description': 'Duration in minutes (default: 30)'}, 'minNotice': {'type': 'number', 'description': 'Minimum notice in minutes before booking'}, 'calendarId': {'type': 'string', 'description': 'Calendar UUID to add the event type to'}, 'maxAdvance': {'type': 'number', 'description': 'Maximum advance booking in minutes'}, 'bufferAfter': {'type': 'number', 'description': 'Buffer minutes after each booking'}, 'description': {'type': 'string', 'description': 'Description shown on the booking page'}, 'bufferBefore': {'type': 'number', 'description': 'Buffer minutes before each booking'}, 'locationType': {'enum': ['video', 'phone', 'in_person', 'whatsapp', 'custom'], 'type': 'string', 'description': 'Meeting location type'}, 'slotInterval': {'type': 'number', 'description': 'Slot interval in minutes (default: 15)'}, 'locationValue': {'type': 'string', 'description': 'Location details (URL, address, phone)'}, 'reminderMinutes': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Array of reminder times in minutes before event (e.g. [1440, 60])'}, 'requireConfirmation': {'type': 'boolean', 'description': 'Require host confirmation for new bookings'}}, 'additionalProperties': False}
neuron_create_flow
Create Flow
Create a new automation flow. A flow is a directed graph of nodes connected by edges. The graph MUST start with at least one trigger node (entry point). Edges connect nodes via output handles. BEFORE BUILDING: call neuron_get_flow_catalog and read its `reference` — it carries the JSON shapes you cannot guess: the ConditionGroup + operator list for branch/filter/switch conditions, the `cases`/`assignments`/`weekdays` composite shapes, the handle wiring map, and copy-ready `examples`. Condition `field` on a logic node must be a {{template}} (e.g. '{{trigger.text}}'); on a trigger's config.conditions it is a raw payload path (e.g. 'text'). AFTER SAVING: the flow always saves, but the response includes a `warnings` array flagging likely bugs (unknown node type, missing required field, malformed conditions/cases/assignments, edges wired to a handle a node never emits, missing trigger). Always check it and fix any warnings — a warning means that part will silently no-op at run time. TEMPLATE RESOLUTION: Node config values support {{…}} templates resolved at runtime: {{trigger.text}} — the triggering message text {{trigger.contactPhone}} — the sender's phone {{trigger.senderName}} — the sender's name {{vars.myVar}} — a variable set by logic.set_variable {{nodes.n_abc.output.text}} — output from a previous node {{= amount * 1.1 }} — inline expression (arithmetic, comparisons, ternary) ERROR HANDLING: Any node's config can include __errorHandling: { continueOnFail: true, retryCount: 3, retryDelayMs: 1000 } to retry on failure with exponential backoff and/or continue on the 'error' handle instead of failing the run. WIRING RULES: - logic.branch: 'true' and 'false' handles - logic.switch / logic.ai_router: one handle per case id, plus 'default' - logic.wait_for_reply: 'default' (replied) and 'timeout' - logic.wait_for_approval: 'approved', 'rejected', 'timeout' - logic.wait_first_of: 'reply', 'event', 'timeout' - logic.loop: 'loop' (body) and 'done' - action.lookup_contact: 'found' and 'not_found' - action.call_flow: 'default' (returned), 'timeout', 'error' - All other nodes: 'default' handle (or 'error' when continueOnFail is on)
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Human-readable name for the flow.'}, 'graph': {'type': 'object', 'required': ['nodes', 'edges'], 'properties': {'edges': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'source', 'target'], 'properties': {'id': {'type': 'string', 'description': "Unique edge id, e.g. 'e_msg_reply'."}, 'source': {'type': 'string', 'description': 'Source node id.'}, 'target': {'type': 'string', 'description': 'Target node id.'}, 'sourceHandle': {'type': 'string', 'description': "Which output port of the source node this edge leaves from. Branch nodes use 'true'/'false', switch/router use case ids, wait nodes use 'default'/'timeout', lookup uses 'found'/'not_found'. Defaults to 'default'."}}, 'additionalProperties': False}, 'description': 'Array of edges connecting nodes. Each edge fires when its source node emits on the matching sourceHandle.'}, 'nodes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'type'], 'properties': {'id': {'type': 'string', 'description': "Stable node id unique within the flow, e.g. 'n_a1b2' or 't_msg'."}, 'type': {'type': 'string', 'description': "Registry key â\x80\x94 e.g. 'trigger.message_received', 'logic.branch', 'action.send_message'. Use neuron_get_flow_catalog to see all available types."}, 'label': {'type': 'string', 'description': 'Human label overriding the registry default.'}, 'config': {'type': 'object', 'default': {}, 'description': 'Node-specific configuration. Values may contain {{â\x80¦}} templates resolved at runtime against trigger, vars, and nodes.', 'additionalProperties': {}}, 'position': {'type': 'object', 'required': ['x', 'y'], 'properties': {'x': {'type': 'number'}, 'y': {'type': 'number'}}, 'description': 'Canvas position (UI layout). Use x=300 as center, space nodes ~160px apart vertically.', 'additionalProperties': False}}, 'additionalProperties': False}, 'description': 'Array of flow nodes.'}}, 'description': 'The flow graph â\x80\x94 nodes and edges. Omit to create an empty flow (edit later in the UI).', 'additionalProperties': False}, 'enabled': {'type': 'boolean', 'description': 'Whether the flow should be active immediately (default: false).'}, 'description': {'type': 'string', 'description': 'Optional description of what the flow does.'}}, 'additionalProperties': False}
neuron_create_group
Create WhatsApp Group
Create a new WhatsApp group and seed its members from any combination of sources: other groups (combine/copy), contact lists, individual contacts, pasted phone numbers, or the whole address book. Optionally pass a unique `slug` to address the group later without its JID. Members blocked by privacy come back in the failed list. Uses the org's default connected session unless `channelId` is given.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['subject'], 'properties': {'slug': {'type': 'string', 'description': 'Optional org-unique handle (lowercase letters, numbers, hyphens)'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Keep only contacts carrying one of these tags'}, 'phones': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Raw phone numbers, e.g. pasted from a CSV'}, 'listIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Contact list ids or slugs â\x80\x94 pulls every member'}, 'subject': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Group name'}, 'ifExists': {'enum': ['return', 'error'], 'type': 'string', 'description': "When the slug is already taken: 'error' (default) fails, 'return' returns the existing group and adds any given members to it (idempotent create)."}, 'channelId': {'type': 'string', 'description': 'Session (connected WhatsApp number) UUID. Omit to use the default.'}, 'contactIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Existing contact ids'}, 'allContacts': {'type': 'boolean', 'description': "Union the org's entire address book"}, 'description': {'type': 'string', 'description': 'Optional group description'}, 'fromGroupIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Copy/combine members live from these WhatsApp group JIDs'}, 'excludeListIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Subtract every member of these lists'}}, 'additionalProperties': False}
neuron_create_kb_entry
Create Knowledge Base Entry
Add a new entry (note, document, or information piece) to a knowledge base.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'title', 'content'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier of the knowledge base'}, 'title': {'type': 'string', 'description': 'Title of the entry'}, 'folder': {'type': 'string', 'description': "Folder to organize the entry: 'general', 'skills', 'contexts', 'documents', or 'faqs' (default: general)"}, 'source': {'enum': ['manual', 'document', 'url'], 'type': 'string', 'description': 'Source type of the entry (default: manual)'}, 'content': {'type': 'string', 'description': 'Content or body of the entry'}, 'metadata': {'type': 'object', 'description': 'Optional metadata key-value pairs for the entry', 'additionalProperties': {}}}, 'additionalProperties': False}
neuron_create_knowledge_base
Create Knowledge Base
Create a new knowledge base to store and organize information, documents, and entries.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Name of the knowledge base'}, 'description': {'type': 'string', 'description': 'Optional description of the knowledge base purpose'}, 'rootInstruction': {'type': 'string', 'description': 'Optional root instruction or context for the knowledge base'}}, 'additionalProperties': False}
neuron_create_lead_source
Create Lead Source
Create a lead source. `config` depends on type: text_paste {text}; web_scrape {url|urls[]}; document {mediaUrl,mimeType}; tool_output {toolId,args?}; instagram/x {channelId, query?|hashtag?, limit?}; csv {rows[]}; stream {triggerTaskId?} (fed by the ingest endpoint). Set scheduleKind cron/interval/once for recurring (schedule: cron {time,days?} / interval {everyMinutes} / once {runAt}).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'type'], 'properties': {'name': {'type': 'string'}, 'type': {'enum': ['csv', 'text_paste', 'document', 'web_scrape', 'tool_output', 'instagram', 'x', 'facebook', 'tiktok', 'stream'], 'type': 'string', 'description': 'Lead source type. facebook = Meta Ads Library advertisers; web/IG/X/FB scraping needs DeepAPI configured; TikTok has no native provider (use tool_output).'}, 'config': {'type': 'object', 'additionalProperties': {}}, 'enabled': {'type': 'boolean'}, 'schedule': {'type': 'object', 'additionalProperties': {}}, 'timezone': {'type': 'string'}, 'scheduleKind': {'enum': ['cron', 'interval', 'once', 'manual'], 'type': 'string'}}, 'additionalProperties': False}
neuron_create_list_campaign
Create List Campaign
Create a paced campaign that messages the next N un-reached members of a contact list on a schedule. The cursor follows the LIVE list — as members are added or removed, only current members get reached, and nobody is messaged twice per cycle. Multiple campaigns can run on the same or different lists concurrently. On exhaust, either stop or loop (start over after a cooldown).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['listId', 'messageSource', 'schedule'], 'properties': {'name': {'type': 'string', 'maxLength': 255, 'description': "Campaign name (default: 'Campaign')"}, 'botId': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'description': "Bot to send through when sendMode='bot'; its channel is used"}, 'listId': {'type': 'string', 'format': 'uuid', 'description': 'The contact list to run the campaign over'}, 'schedule': {'allOf': [{'anyOf': [{'type': 'object', 'required': ['kind', 'everyMs'], 'properties': {'kind': {'type': 'string', 'const': 'interval'}, 'everyMs': {'type': 'integer', 'minimum': 60000, 'description': 'Milliseconds between runs, e.g. 86400000 for daily'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'hour'], 'properties': {'hour': {'type': 'integer', 'maximum': 23, 'minimum': 0, 'description': 'UTC hour'}, 'kind': {'type': 'string', 'const': 'daily'}, 'minute': {'type': 'integer', 'maximum': 59, 'minimum': 0}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'days', 'hour'], 'properties': {'days': {'type': 'array', 'items': {'type': 'integer', 'maximum': 6, 'minimum': 0}, 'minItems': 1, 'description': 'Days of week, 0=Sun â\x80¦ 6=Sat'}, 'hour': {'type': 'integer', 'maximum': 23, 'minimum': 0, 'description': 'UTC hour'}, 'kind': {'type': 'string', 'const': 'weekly'}, 'minute': {'type': 'integer', 'maximum': 59, 'minimum': 0}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'dayOfMonth', 'hour'], 'properties': {'hour': {'type': 'integer', 'maximum': 23, 'minimum': 0, 'description': 'UTC hour'}, 'kind': {'type': 'string', 'const': 'monthly'}, 'minute': {'type': 'integer', 'maximum': 59, 'minimum': 0}, 'dayOfMonth': {'type': 'integer', 'maximum': 31, 'minimum': 1}}, 'additionalProperties': False}]}, {'type': 'object', 'properties': {'endAt': {'type': 'string', 'description': 'ISO date; the campaign completes after this'}, 'maxRuns': {'type': 'integer', 'minimum': 1, 'description': 'Stop after this many runs'}, 'timezone': {'type': 'string', 'description': "IANA timezone the daily/weekly/monthly time is interpreted in, e.g. 'Africa/Lagos'. Defaults to UTC. Ignored for 'interval'. The schedule holds its local wall-clock time across DST."}}}], 'description': 'When each batch fires. e.g. daily at 9am in Africa/Lagos, or every weekend.'}, 'sendMode': {'enum': ['message', 'bot'], 'type': 'string', 'description': "'message' sends a plain broadcast; 'bot' initiates the conversation through a bot (default: 'message')"}, 'batchSize': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'How many contacts to message per run (default: 20)'}, 'channelId': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'description': 'WhatsApp channel to send from; falls back to the org default / first connected channel'}, 'onExhaust': {'enum': ['stop', 'loop'], 'type': 'string', 'description': "When the whole list has been reached: 'stop' (default) completes the campaign; 'loop' starts a new cycle after loopCooldownMs"}, 'messageSource': {'anyOf': [{'type': 'object', 'required': ['kind', 'text'], 'properties': {'kind': {'type': 'string', 'const': 'static'}, 'text': {'type': 'string', 'minLength': 1, 'description': 'The message body sent to each contact in the batch'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'messages'], 'properties': {'kind': {'type': 'string', 'const': 'rotation'}, 'mode': {'enum': ['sequential', 'random'], 'type': 'string', 'description': 'Rotate in order (default) or pick randomly per run'}, 'messages': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'minItems': 1, 'description': 'Pool of messages'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'ref'], 'properties': {'ref': {'type': 'string', 'minLength': 1, 'description': 'A Neuron Note ID; its content becomes the message, fetched live at each run'}, 'kind': {'type': 'string', 'const': 'content'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'prompt'], 'properties': {'kind': {'type': 'string', 'const': 'ai'}, 'botId': {'type': 'string', 'format': 'uuid', 'description': 'Bot whose system prompt supplies business context'}, 'prompt': {'type': 'string', 'minLength': 1, 'description': 'Instruction for the message the AI should write'}, 'personaId': {'type': 'string', 'format': 'uuid', 'description': 'Persona whose voice the message is written in'}, 'perContact': {'type': 'boolean', 'description': 'Generate a distinct message per recipient (slower, more tokens). Default false = one message for the whole batch'}}, 'description': 'AI-written message generated live at each run (BYOK-aware)', 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'POSTed { campaignId, listId, contact? }; returns { message } or a bare string'}, 'kind': {'type': 'string', 'const': 'webhook'}, 'perContact': {'type': 'boolean', 'description': 'Call once per recipient with the contact in the payload. Default false = one call per batch'}}, 'description': 'Message fetched from your webhook at each run', 'additionalProperties': False}], 'description': "How the message is resolved live at each batch run: 'static' (fixed), 'rotation' (cycle through several), 'ai' (AI-written), 'webhook' (from your service), or 'content' (a saved Neuron Note)."}, 'loopCooldownMs': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'description': 'Milliseconds to wait before looping (default: 24h)'}, 'startImmediately': {'type': 'boolean', 'description': 'Fire the first batch right away (default: true). Set false to wait for the first scheduled slot'}}, 'additionalProperties': False}
neuron_create_newsletter
Create Newsletter
Create a new WhatsApp Channel newsletter for one-way broadcast updates. Requires a connected Baileys session on the specified channel.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Display name of the newsletter visible to subscribers'}, 'channelId': {'type': 'string', 'description': 'Identifier (UUID) of the WhatsApp session channel to create the newsletter on'}, 'description': {'type': 'string', 'description': "Description of the newsletter's purpose and content"}}, 'additionalProperties': False}
neuron_create_outbound_webhook
Create Outbound Webhook
Register a new outbound webhook that sends HTTP POST requests to an external URL when specified bot events occur. Supported events: message.created, message.assistant, conversation.created, conversation.escalated, conversation.closed, bot.paused, bot.resumed.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId', 'name', 'url', 'eventTypes'], 'properties': {'url': {'type': 'string', 'description': 'Destination URL that will receive webhook event payloads (HTTPS recommended)'}, 'name': {'type': 'string', 'description': 'Human-readable name for the outbound webhook'}, 'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to create the outbound webhook for'}, 'eventTypes': {'type': 'array', 'items': {'enum': ['message.created', 'message.assistant', 'conversation.created', 'conversation.escalated', 'conversation.closed', 'bot.paused', 'bot.resumed'], 'type': 'string'}, 'description': 'Array of event types that should trigger this webhook'}, 'filterPrompt': {'type': 'string', 'description': "Optional LLM prompt to selectively filter which events are forwarded (e.g., 'only forward escalations about billing')"}}, 'additionalProperties': False}
neuron_create_product
Create Product
Create a digital product/service with a public checkout link. Amount in kobo (minor units): ₦1 = 100. Minimum ₦500 = 50000. For 'file' delivery, upload the file first (neuron_upload_media) and pass its URL as deliveryFileUrl. On payment, Neuron confirms it and delivers the product to the buyer's WhatsApp automatically.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title', 'priceMinor', 'deliveryType'], 'properties': {'kind': {'type': ['string', 'null'], 'description': "Short label e.g. 'E-book', 'Presets', 'Service'"}, 'codes': {'type': 'array', 'items': {'type': 'string'}, 'description': "For codeMode 'pool': the unique codes/keys to add (one gets sent per buyer). Appended to any existing pool."}, 'theme': {'type': 'object', 'description': "Per-product theme: { bg, accent, text (hex), mode: 'light'|'dark', layout: 'hero'|'side', coverAspect: '16/10'|'3/2'|'1/1'|'4/5', cta: buy-button label e.g. 'Reserve your hour' }", 'additionalProperties': {'type': 'string'}}, 'title': {'type': 'string', 'description': 'Product title shown to buyers'}, 'content': {'type': 'array', 'description': 'Rich product-page content blocks. Ordered array of {type, ...}: heading {text,level}, text {markdown}, image {url,caption}, video {url}, callout {emoji,text}, collapsible {title,blocks[]}, divider {}, button {label,url}, embed {url}, spacer {}'}, 'enabled': {'type': 'boolean', 'description': 'Whether the product is live'}, 'category': {'type': ['string', 'null'], 'description': "Category label e.g. 'Productivity'"}, 'codeMode': {'enum': ['shared', 'pool', 'generated'], 'type': 'string', 'description': "For deliveryType 'code': 'shared' (same text to every buyer), 'pool' (a unique code per sale from codes you upload â\x80\x94 sells out when empty), or 'generated' (auto-mint a unique license key per sale)"}, 'currency': {'type': 'string', 'description': 'ISO currency (default NGN)'}, 'feePayer': {'enum': ['buyer', 'seller'], 'type': 'string', 'description': "'buyer' (fee added on top, seller gets full price â\x80\x94 default) or 'seller' (fee deducted)"}, 'channelId': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'description': 'WhatsApp session UUID used to deliver the product (defaults to the org default channel)'}, 'coverType': {'enum': ['none', 'emoji', 'image', 'color', 'gradient'], 'type': 'string', 'description': 'How the cover renders'}, 'coverColor': {'type': ['string', 'null'], 'description': "Cover colour (hex) for 'color'/'gradient' cover types"}, 'coverEmoji': {'type': ['string', 'null'], 'description': 'Emoji used as a cover fallback (e.g. ð\x9f\x93\x93)'}, 'membership': {'type': 'boolean', 'description': 'Make this a recurring subscription/membership: it tracks a paid period per buyer, renews from their Neuron wallet when possible (else emails a reminder â\x80\x94 no card auto-charge), and marks them lapsed when the period + grace passes. React to membership.started/renewed/lapsed in Flows to deliver whatever the membership grants.'}, 'priceMinor': {'type': 'integer', 'description': 'Current price (charged). Amount in kobo (minor units): â\x82¦1 = 100. Minimum â\x82¦500 = 50000. Set 0 for a free product (no payment).'}, 'coverColor2': {'type': ['string', 'null'], 'description': "Second colour (hex) for 'gradient' cover"}, 'description': {'type': 'string', 'description': 'Rich description / what the buyer gets'}, 'deliveryText': {'type': ['string', 'null'], 'description': "For 'link'/'code': the link or code the buyer receives. Optional note for 'file'."}, 'deliveryType': {'enum': ['file', 'link', 'code'], 'type': 'string', 'description': "How the product is delivered: 'file' (uploaded file), 'link' (URL), or 'code' (text/code)"}, 'coverImageUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}], 'description': 'Cover image URL'}, 'checkoutFields': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label', 'type'], 'properties': {'key': {'type': 'string'}, 'type': {'enum': ['text', 'textarea', 'number', 'email', 'phone', 'select'], 'type': 'string'}, 'label': {'type': 'string'}, 'options': {'type': 'array', 'items': {'type': 'string'}}, 'required': {'type': 'boolean'}, 'placeholder': {'type': 'string'}}, 'additionalProperties': False}, 'description': 'Custom checkout questions the buyer answers (name, address, specs/customisationsâ\x80¦). Their answers are attached to the order and sent to the seller.'}, 'deliveryFileUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}], 'description': "For deliveryType 'file': the uploaded file URL (upload first with neuron_upload_media)"}, 'deliveryFileName': {'type': ['string', 'null'], 'description': 'Filename shown in the WhatsApp document'}, 'membershipInterval': {'anyOf': [{'enum': ['daily', 'weekly', 'monthly'], 'type': 'string'}, {'type': 'null'}], 'description': 'Billing period. Required when membership is true.'}, 'originalPriceMinor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'description': "Optional compare-at / 'was' price (kobo), shown struck through. Must be â\x89¥ current price."}, 'membershipGraceDays': {'type': 'integer', 'minimum': 0, 'description': 'Days after the period ends before an unpaid member lapses (and, if a group is attached, is removed from it). Default 1.'}, 'membershipGroupName': {'type': ['string', 'null'], 'description': 'Group subject used when the attached group is auto-created (defaults to the product title). Only relevant with membershipGroupSlug.'}, 'membershipGroupSlug': {'type': ['string', 'null'], 'description': "OPTIONAL: attach a WhatsApp group as a membership perk. Org-unique handle (lowercase letters, numbers, hyphens); the group is created on the first sale, buyers are added on renewal and removed on lapse. Your connected number must be a group admin. Omit for a membership that isn't group-based."}}, 'additionalProperties': False}
neuron_create_sms_campaign
Create SMS Campaign
Create a draft SMS campaign. Choose the audience via sourceType: 'all_contacts' or 'contact_list' (your own contacts), 'phones' (bring your own list — raw numbers you pass in), 'platform' (the wider Neuron audience — budget required, sent over the bulk campaign route), or 'curated' (SMS-opted-in marketplace lists via poolEntryIds; the list owner earns ₦2/contact). After creating, call neuron_estimate_sms_campaign to price it, then neuron_send_sms_campaign. Requires SMS to be enabled by an admin and a configured provider.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title', 'message', 'sourceType'], 'properties': {'type': {'enum': ['blast', 'drip'], 'type': 'string', 'description': "'blast' sends to everyone at once (default); 'drip' sends in scheduled batches"}, 'title': {'type': 'string', 'description': 'Internal campaign title'}, 'budget': {'type': 'number', 'description': "Budget in kobo (required for sourceType 'platform'; caps how many messages send)"}, 'phones': {'type': 'array', 'items': {'type': 'string'}, 'description': "Raw phone numbers to text (required when sourceType is 'phones'); normalized + de-duplicated server-side, invalid ones dropped"}, 'message': {'type': 'string', 'description': "The SMS text to send. Include an opt-out (e.g. 'Reply STOP')."}, 'sourceType': {'enum': ['all_contacts', 'contact_list', 'phones', 'platform', 'curated'], 'type': 'string', 'description': 'Audience source'}, 'countryCodes': {'type': 'array', 'items': {'type': 'string'}, 'description': "Restrict to these country calling codes (e.g. ['234']). Omit for all."}, 'poolEntryIds': {'type': 'array', 'items': {'type': 'string'}, 'description': "SMS-enabled list-pool entry UUIDs (required when sourceType is 'curated'; find them with neuron_browse_list_pool { smsEnabled: true })"}, 'smsChannelId': {'type': 'string', 'description': 'BYOK SMS channel UUID to send through instead of the platform provider'}, 'sourceListIds': {'type': 'array', 'items': {'type': 'string'}, 'description': "Contact list UUIDs (required when sourceType is 'contact_list')"}}, 'additionalProperties': False}
neuron_create_social_channel
Create Social Channel
Create a new social media channel with platform credentials. Supports Instagram and Twitter/X. Credentials should be the full session JSON including account, cookies, headers, and platform-specific tokens.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['platform', 'label'], 'properties': {'label': {'type': 'string', 'description': "Display name for the channel (e.g., 'Brand IG Account')"}, 'platform': {'enum': ['instagram', 'twitter'], 'type': 'string', 'description': "Social media platform: 'instagram' or 'twitter'"}, 'username': {'type': 'string', 'description': 'Social media username (without @)'}, 'credentials': {'type': 'string', 'description': 'Session credentials as JSON string with account, session.cookies, session.headers, etc.'}}, 'additionalProperties': False}
neuron_create_task
Create Bot Task
Create a scheduled autonomous task for a bot. The instruction is a self-contained, natural-language directive the bot executes with its tools (find stale conversations, message contacts, schedule follow-ups, etc.). Sends are always screened against Do-Not-Contact, a per-run cap, and a no-repeat window.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId', 'title', 'instruction', 'scheduleKind'], 'properties': {'botId': {'type': 'string', 'description': 'UUID of the bot'}, 'title': {'type': 'string', 'description': 'Short title for the task'}, 'config': {'type': 'object', 'properties': {'dryRun': {'type': 'boolean', 'description': 'Simulate the run without actually sending messages.'}, 'channelId': {'type': 'string', 'description': "WhatsApp channel UUID to act on (defaults to the bot's primary)."}, 'maxActions': {'type': 'integer', 'description': 'Hard cap on outbound actions per run (default 25).'}, 'noRepeatDays': {'type': 'integer', 'description': 'Never re-message the same contact within this many days (default 14).'}, 'approvalPhone': {'type': 'string', 'description': 'Admin phone (international format) to send the approval prompt to.'}, 'requiresApproval': {'type': 'boolean', 'description': 'Ask an admin on WhatsApp to approve before the task sends.'}}, 'description': 'Safety / execution config for the task.', 'additionalProperties': False}, 'enabled': {'type': 'boolean', 'description': 'Whether the task is active (default true).'}, 'schedule': {'type': 'object', 'description': "Schedule payload matching scheduleKind. cron: { time: 'HH:MM', days?: number[] } (0=Sunday..6=Saturday; empty/omitted = every day). interval: { everyMinutes: number }. once: { runAt: ISO8601 string }. manual: {}.", 'additionalProperties': {}}, 'timezone': {'type': 'string', 'description': 'IANA timezone (e.g. Africa/Lagos). Defaults to UTC.'}, 'instruction': {'type': 'string', 'description': 'What the task should do, in natural language (self-contained; preserve any exact message copy verbatim).'}, 'scheduleKind': {'enum': ['cron', 'interval', 'once', 'manual'], 'type': 'string', 'description': 'cron = recurring at a clock time (slot); interval = every N minutes; once = a single future moment; manual = only runs on demand.'}}, 'additionalProperties': False}
neuron_create_tool
Create Tool
Create a custom API tool that the bot can invoke during conversations to fetch external data or trigger actions.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId', 'name', 'description', 'type', 'config'], 'properties': {'name': {'type': 'string', 'description': 'Human-readable name for the tool'}, 'type': {'enum': ['http_api', 'webhook', 'mcp'], 'type': 'string', 'description': 'Type of the tool integration'}, 'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to create the tool for'}, 'config': {'type': 'object', 'properties': {'method': {'enum': ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'], 'type': 'string', 'description': 'HTTP method to use'}, 'headers': {'type': 'object', 'description': 'HTTP headers to include with each request as key-value pairs', 'additionalProperties': {'type': 'string'}}, 'endpoint': {'type': 'string', 'description': 'Target HTTP endpoint URL for http_api tools'}, 'webhookUrl': {'type': 'string', 'description': 'Webhook URL for webhook-type tools'}, 'asyncConfig': {'type': 'object', 'properties': {'jobIdPath': {'type': 'string', 'description': "Dot-notation path to extract job ID from initial response (e.g. 'id', 'request_id')"}, 'resultPath': {'type': 'string', 'description': "Dot-notation path to extract final result from completed response (e.g. 'output')"}, 'statusPath': {'type': 'string', 'description': "Dot-notation path to status field in poll response (e.g. 'status')"}, 'maxPollingMs': {'type': 'number', 'maximum': 300000, 'minimum': 5000, 'description': 'Maximum time to poll before timeout (default: 120000)'}, 'failedStatuses': {'type': 'array', 'items': {'type': 'string'}, 'description': "Status values indicating failure (e.g. ['FAILED', 'failed', 'canceled'])"}, 'pollingEndpoint': {'type': 'string', 'description': 'URL template with {{jobId}} placeholder for polling job status'}, 'completedStatuses': {'type': 'array', 'items': {'type': 'string'}, 'description': "Status values indicating completion (e.g. ['COMPLETED', 'succeeded'])"}, 'pollingIntervalMs': {'type': 'number', 'maximum': 30000, 'minimum': 500, 'description': 'Milliseconds between poll requests (default: 2000)'}}, 'description': 'Configuration for async submit-poll-download APIs like fal.ai and Replicate', 'additionalProperties': False}, 'bodyTemplate': {'type': 'string', 'description': 'Handlebars template for the request body, populated with conversation context'}, 'mcpServerUrl': {'type': 'string', 'description': 'MCP server URL for mcp-type tools'}, 'parametersSchema': {'type': 'object', 'description': 'JSON Schema describing the parameters the tool accepts', 'additionalProperties': {}}}, 'description': 'Tool configuration specifying the endpoint and request details', 'additionalProperties': False}, 'authType': {'enum': ['none', 'api_key', 'bearer', 'basic', 'oauth2'], 'type': 'string', 'description': 'Authentication type for the endpoint'}, 'rateLimit': {'type': 'number', 'description': 'Maximum number of requests per minute allowed for this tool'}, 'timeoutMs': {'type': 'number', 'description': 'Request timeout in milliseconds (default: 30000)'}, 'description': {'type': 'string', 'maxLength': 1000, 'minLength': 1, 'description': 'Description of what the tool does and when the bot should use it'}}, 'additionalProperties': False}
neuron_create_webhook
Create Webhook
Register a new inbound webhook endpoint that triggers bot actions when called by an external service.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Human-readable name for the webhook'}, 'slug': {'type': 'string', 'description': 'URL-friendly slug for the webhook endpoint (auto-generated if omitted)'}, 'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to create the webhook for'}, 'isActive': {'type': 'boolean', 'description': 'Whether the webhook is active and accepting requests (default: true)'}, 'eventType': {'type': 'string', 'description': "Type of event this webhook handles (e.g., 'order.created', 'payment.received')"}, 'processingPrompt': {'type': 'string', 'description': 'Prompt instructions to guide bot processing of incoming webhook data'}}, 'additionalProperties': False}
neuron_delete_ad_request
Delete Ad Request
Permanently delete a draft ad request. Only ad requests in draft status can be deleted.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['adRequestId'], 'properties': {'adRequestId': {'type': 'string', 'description': 'Unique identifier (UUID) of the draft ad request to delete'}}, 'additionalProperties': False}
neuron_delete_blog_post
Delete Blog Post
Permanently delete a blog post by its ID. This action cannot be undone.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the blog post to delete'}}, 'additionalProperties': False}
neuron_delete_bot
Delete Bot
Permanently delete a bot and all its associated data. This action cannot be undone.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to delete'}}, 'additionalProperties': False}
neuron_delete_broadcast
Delete Broadcast
Permanently delete a broadcast and its recipient data. This action cannot be undone.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the broadcast to delete'}}, 'additionalProperties': False}
neuron_delete_calendar
Delete Calendar
Permanently delete a calendar and all its event types, bookings, and availability data.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Calendar UUID'}}, 'additionalProperties': False}
neuron_delete_campaign
Delete Campaign
Permanently delete a campaign that is in 'draft' status. Active or funded campaigns cannot be deleted.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the draft campaign to delete'}}, 'additionalProperties': False}
neuron_delete_channel
Delete Channel
Permanently delete a WhatsApp channel and disconnect any active sessions. This action cannot be undone.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the channel to delete'}}, 'additionalProperties': False}
neuron_delete_contact
Delete Contact
Permanently delete a contact and remove them from all contact lists. This action cannot be undone.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the contact to delete'}}, 'additionalProperties': False}
neuron_delete_contact_list
Delete Contact List
Permanently delete a contact list. System-protected lists (e.g., 'Do Not Contact') cannot be deleted.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['idOrSlug'], 'properties': {'idOrSlug': {'type': 'string', 'description': 'Unique identifier (UUID) or URL-friendly slug of the contact list to delete'}}, 'additionalProperties': False}
neuron_delete_event
Delete Calendar Event
Delete a host-created event. For recurring events, use scope to control what gets deleted: 'single' (just this one), 'future' (this and all future), or 'all' (entire series).
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Event (booking) UUID'}, 'scope': {'enum': ['single', 'future', 'all'], 'type': 'string', 'description': "Delete scope for recurring events (default: 'single')"}}, 'additionalProperties': False}
neuron_delete_event_type
Delete Event Type
Permanently delete an event type and all its bookings.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Event type UUID'}}, 'additionalProperties': False}
neuron_delete_flow
Delete Flow
Soft-delete a flow. It stops running but can be restored. Running executions are not cancelled.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the flow to delete.'}}, 'additionalProperties': False}
neuron_delete_flow_run
Delete Flow Run
Permanently delete a completed, failed, or cancelled flow run and all its step data.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['runId'], 'properties': {'runId': {'type': 'string', 'description': 'UUID of the run to delete.'}}, 'additionalProperties': False}
neuron_delete_kb_entry
Delete Knowledge Base Entry
Permanently delete a specific entry from a knowledge base.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['kbId', 'entryId'], 'properties': {'kbId': {'type': 'string', 'description': 'Unique identifier of the knowledge base'}, 'entryId': {'type': 'string', 'description': 'Unique identifier of the entry to delete'}}, 'additionalProperties': False}
neuron_delete_knowledge_base
Delete Knowledge Base
Permanently delete a knowledge base and all its associated entries and documents.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier of the knowledge base to delete'}}, 'additionalProperties': False}
neuron_delete_list_campaign
Delete List Campaign
Permanently delete a paced list campaign and its reached-set. Does not delete the contacts or the list.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Campaign ID'}}, 'additionalProperties': False}
neuron_delete_message
Delete Message
Permanently delete a specific message from a conversation. This action cannot be undone.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'msgId'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the conversation'}, 'msgId': {'type': 'string', 'description': 'Unique identifier (UUID) of the message to delete'}}, 'additionalProperties': False}
neuron_delete_newsletter
Delete Newsletter
Permanently delete a WhatsApp Channel newsletter and remove it from WhatsApp. This action cannot be undone.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the newsletter to delete'}}, 'additionalProperties': False}
neuron_delete_outbound_webhook
Delete Outbound Webhook
Permanently remove an outbound webhook. The external endpoint will no longer receive event notifications from this bot.
Destructivo Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the outbound webhook to delete'}}, 'additionalProperties': False}
neuron_delete_override
Delete Availability Override
Remove a date-specific availability override, reverting to the default weekly hours.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['overrideId'], 'properties': {'overrideId': {'type': 'string', 'description': 'Override UUID'}}, 'additionalProperties': False}
neuron_delete_persona
Delete Persona
Delete a voice persona.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Persona UUID'}}, 'additionalProperties': False}
neuron_delete_product
Delete Product
Permanently delete a product. Existing orders are retained.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Product UUID'}}, 'additionalProperties': False}
neuron_delete_sms_campaign
Delete SMS Campaign
Delete a draft SMS campaign. Only draft campaigns can be deleted.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'campaignId': {'type': 'string', 'description': 'UUID of the draft SMS campaign to delete'}}, 'additionalProperties': False}
neuron_delete_social_channel
Delete Social Channel
Permanently delete a social media channel and disconnect any active sessions. This action cannot be undone.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the social channel to delete'}}, 'additionalProperties': False}
neuron_delete_task
Delete Bot Task
Delete a scheduled task. This is a soft delete — the task stops running immediately.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the task'}}, 'additionalProperties': False}
neuron_delete_tool
Delete Tool
Permanently remove a custom API tool integration from a bot. The bot will no longer be able to invoke this tool in conversations.
Destructivo Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the tool to delete'}}, 'additionalProperties': False}
neuron_delete_webhook
Delete Webhook
Permanently remove an inbound webhook from a bot. External services will no longer be able to trigger this endpoint.
Destructivo Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the webhook to delete'}}, 'additionalProperties': False}
neuron_deliver_order
Deliver Order
Re-send a paid-but-undelivered order to the buyer over WhatsApp/email. Use when a sale settled while no WhatsApp session was connected; connect one first, then deliver.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Order UUID'}}, 'additionalProperties': False}
neuron_detach_knowledge_base
Detach Knowledge Base
Remove a knowledge base from a bot. The bot will no longer reference this knowledge base when generating responses.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'kbId'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot'}, 'kbId': {'type': 'string', 'description': 'Unique identifier (UUID) of the knowledge base to detach'}}, 'additionalProperties': False}
neuron_draft_task
Draft Bot Task with AI
Turn a plain-English description into a structured task spec (title, instruction, scheduleKind, schedule, timezone, config) WITHOUT creating it. Use the returned draft as input to neuron_create_task after any edits.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId', 'prompt'], 'properties': {'botId': {'type': 'string', 'description': 'UUID of the bot'}, 'prompt': {'type': 'string', 'description': "Plain-English description of the task, e.g. 'every morning at 8am, message 10 people we haven't heard from in 10+ days with our intro offer'."}, 'timezone': {'type': 'string', 'description': 'IANA timezone to assume (e.g. Africa/Lagos).'}}, 'additionalProperties': False}
neuron_duplicate_product
Duplicate Product
Clone an existing product into a hidden draft copy (new checkout link, '(copy)' title, reset counters). A 'pool' code product is cloned with an empty pool — restock codes before enabling. Edit the copy with neuron_update_product, then set enabled: true to publish.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Product UUID to clone'}}, 'additionalProperties': False}
neuron_edit_message
Edit Message
Edit the content of a previously sent message in a conversation. Only the message sender can edit their messages.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'msgId', 'content'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the conversation'}, 'msgId': {'type': 'string', 'description': 'Unique identifier (UUID) of the message to edit'}, 'content': {'type': 'string', 'description': 'New text content to replace the existing message'}}, 'additionalProperties': False}
neuron_enroll_members
Enroll Membership Members
Manually enroll existing / off-platform people into a membership product WITHOUT a payment. Use this to backfill members who were already in the WhatsApp group before you switched membership on, so the renewal + eviction cycle applies to them too. No order or revenue is booked. Each enrolled member gets a free first period (firstPeriodDays, or one normal interval by default), then renews like everyone else — reminder-only until they connect a Neuron account (no auto-charge). Existing members are left untouched (counted as skipped). Returns { enrolled, skipped, total }.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Product UUID (must be a membership product)'}, 'silent': {'type': 'boolean', 'description': "Suppress the membership.started event so welcome/onboarding flows don't fire â\x80\x94 recommended for a bulk backfill of people who are already in."}, 'members': {'type': 'array', 'items': {'type': 'object', 'required': ['phone'], 'properties': {'name': {'type': 'string', 'description': 'Display name (optional)'}, 'phone': {'type': 'string', 'description': 'Phone number (any format; non-digits stripped)'}}, 'additionalProperties': False}, 'description': 'People to enroll. Omit when using fromGroup.'}, 'fromGroup': {'type': 'boolean', 'description': "Pull every current participant of the product's attached group and enroll them all."}, 'addToGroup': {'type': 'boolean', 'description': "Also add each phone to the attached WhatsApp group (for people not yet in it). Default false = assume they're already in."}, 'firstPeriodDays': {'type': 'integer', 'maximum': 3650, 'minimum': 0, 'description': 'Free days before their first renewal. Omit to grant one normal interval (daily/weekly/monthly).'}}, 'additionalProperties': False}
neuron_estimate_sms_campaign
Estimate SMS Campaign
Price a draft SMS campaign before sending: returns recipient count, SMS provider cost, curated owner payout (₦2/contact), and the total in kobo. Call this before neuron_send_sms_campaign.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'campaignId': {'type': 'string', 'description': 'UUID of the draft SMS campaign'}}, 'additionalProperties': False}
neuron_export_contacts
Export Contacts
Export all contacts as a downloadable dataset for the current organization.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_extract_leads
Extract Leads (ad-hoc)
Run a one-off extraction WITHOUT creating a persistent source, saving the results to the lead pool. Great for pasted text or a web page. `type` + `config` as in neuron_create_lead_source (e.g. type='text_paste', config={text}).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['type', 'config'], 'properties': {'type': {'enum': ['csv', 'text_paste', 'document', 'web_scrape', 'tool_output', 'instagram', 'x', 'facebook', 'tiktok', 'stream'], 'type': 'string', 'description': 'Lead source type. facebook = Meta Ads Library advertisers; web/IG/X/FB scraping needs DeepAPI configured; TikTok has no native provider (use tool_output).'}, 'config': {'type': 'object', 'additionalProperties': {}}}, 'additionalProperties': False}
neuron_find_contact_lists_for_contact
Find Contact Lists for Contact
Retrieve all contact lists that a specific contact belongs to.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contactId'], 'properties': {'contactId': {'type': 'string', 'description': 'Unique identifier (UUID) of the contact to look up'}}, 'additionalProperties': False}
neuron_forward_message
Forward Message
Forward a WhatsApp message from one chat to another. Uses copy-send approach — the message content is re-sent to the destination.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'messageId', 'from', 'to'], 'properties': {'to': {'type': 'string', 'description': 'Destination chat JID'}, 'from': {'type': 'string', 'description': 'Source chat JID'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}, 'messageId': {'type': 'string', 'description': 'WhatsApp message ID to forward'}}, 'additionalProperties': False}
neuron_fund_ad_request
Fund Ad Request
Fund an approved ad request from the organization wallet. This debits the budget amount and activates the campaign for distribution. If wallet balance is insufficient, returns shortfall information instead of an error.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['adRequestId'], 'properties': {'adRequestId': {'type': 'string', 'description': 'Unique identifier (UUID) of the approved ad request to fund'}}, 'additionalProperties': False}
neuron_fund_campaign
Fund Campaign
Fund an approved campaign by deducting the total budget from the organization's wallet balance. Requires sufficient wallet funds.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the approved campaign to fund'}}, 'additionalProperties': False}
neuron_fund_wallet
Fund Wallet
Initialize a wallet funding transaction via Paystack. Returns a checkout URL to complete the payment in a browser.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['amount', 'email'], 'properties': {'email': {'type': 'string', 'format': 'email', 'description': 'Email address to receive the payment receipt'}, 'amount': {'type': 'integer', 'description': 'Amount to fund in the smallest currency unit â\x80\x94 kobo for NGN (e.g., 500000 = NGN 5,000)', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
neuron_generate_from_persona
Generate Content in Voice
Generate content written in the persona's voice for a topic/brief. Returns N variations. Stateless — nothing is persisted.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Persona UUID'}, 'count': {'type': 'integer', 'maximum': 10, 'minimum': 1, 'description': 'Number of variations (1-10, default 1).'}, 'topic': {'type': 'string', 'description': 'What to write about.'}, 'format': {'type': 'string', 'description': 'Desired format (post, reply, caption, thread, DM...).'}, 'platform': {'type': 'string', 'description': 'Target platform (instagram/x/tiktok/linkedin/facebook/whatsapp...).'}, 'extraInstructions': {'type': 'string'}}, 'additionalProperties': False}
neuron_get_ad_request
Get Ad Request
Get detailed information about a specific ad request, including pool selections if targeting mode is manual.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['adRequestId'], 'properties': {'adRequestId': {'type': 'string', 'description': 'Unique identifier (UUID) of the ad request'}}, 'additionalProperties': False}
neuron_get_ad_request_analytics
Get Ad Request Analytics
Retrieve delivery analytics and performance breakdown for a specific ad request, including delivery rates and cost metrics.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['adRequestId'], 'properties': {'adRequestId': {'type': 'string', 'description': 'Unique identifier (UUID) of the ad request to get analytics for'}}, 'additionalProperties': False}
neuron_get_approval
Get Approval
Fetch a single approval request by id, including its decision once resolved. Set waitSeconds (1–60) to long-poll until it resolves. Requires a bot API key.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['apiKey', 'approvalId'], 'properties': {'apiKey': {'type': 'string', 'description': "Bot API key with 'nrn_' prefix for authentication"}, 'approvalId': {'type': 'string', 'description': 'The approval request id (UUID)'}, 'waitSeconds': {'type': 'integer', 'maximum': 60, 'minimum': 1, 'description': 'Long-poll up to N seconds for resolution'}}, 'additionalProperties': False}
neuron_get_availability
Get Availability
Retrieve the default availability schedule (weekly hours + timezone) for a calendar.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendarId'], 'properties': {'calendarId': {'type': 'string', 'description': 'Calendar UUID'}}, 'additionalProperties': False}
neuron_get_available_slots
Get Available Slots
Compute available time slots for an event type over a date range, accounting for availability, existing bookings, buffers, and Google Calendar busy times.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['eventTypeId', 'from', 'to'], 'properties': {'to': {'type': 'string', 'description': 'End date (YYYY-MM-DD)'}, 'from': {'type': 'string', 'description': 'Start date (YYYY-MM-DD)'}, 'timezone': {'type': 'string', 'description': 'Invitee timezone for display'}, 'eventTypeId': {'type': 'string', 'description': 'Event type UUID'}}, 'additionalProperties': False}
neuron_get_bank_account
Get Bank Account
Retrieve the saved bank account details currently configured as the organization's payout destination.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_get_billing
Get Billing Info
Retrieve the current billing information, subscription plan, and usage details for the organization.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_get_blocklist
Get Blocklist
Fetch the list of all blocked WhatsApp contacts for the bot on the given channel.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId'], 'properties': {'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_get_blog_post
Get Blog Post
Retrieve a single blog post by its URL-friendly slug, including full content and metadata.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': "URL-friendly slug of the blog post (e.g., 'my-first-post')"}}, 'additionalProperties': False}
neuron_get_booking
Get Booking
Retrieve details of a specific booking.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Booking UUID'}}, 'additionalProperties': False}
neuron_get_bot
Get Bot
Retrieve detailed information about a specific bot including its configuration, status, and associated resources.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot'}}, 'additionalProperties': False}
neuron_get_bot_analytics
Get Bot Analytics
Retrieve analytics and usage statistics for a specific bot, including message counts, response times, and conversation metrics.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to retrieve analytics for'}}, 'additionalProperties': False}
neuron_get_broadcast
Get Broadcast
Retrieve detailed information about a specific broadcast, including its status, message content, and recipient summary.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the broadcast to retrieve'}}, 'additionalProperties': False}
neuron_get_broadcast_recipients
Get Broadcast Recipients
Retrieve the paginated list of recipients for a specific broadcast with their individual delivery status.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the broadcast'}, 'page': {'type': 'integer', 'description': 'Page number for pagination (default: 1)', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'description': 'Number of recipients per page (default: 20)', 'exclusiveMinimum': 0}, 'status': {'type': 'string', 'description': "Filter recipients by delivery status (e.g., 'delivered', 'failed', 'pending')"}}, 'additionalProperties': False}
neuron_get_business_profile
Get Business Profile
Fetch the WhatsApp Business profile of an external contact, including description, website, category, and business hours.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'jid'], 'properties': {'jid': {'type': 'string', 'description': "Contact JID or phone number to look up (e.g. '2348012345678' or '2348012345678@s.whatsapp.net')"}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_get_calendar
Get Calendar
Retrieve details of a specific calendar by its ID.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Calendar UUID'}}, 'additionalProperties': False}
neuron_get_campaign
Get Campaign
Retrieve detailed information about a specific campaign including its status, budget, participants, and delivery metrics.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the campaign'}}, 'additionalProperties': False}
neuron_get_channel
Get Channel
Retrieve detailed information about a specific WhatsApp channel, including its configuration, type, and connection status.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the channel'}}, 'additionalProperties': False}
neuron_get_channel_events
Get Channel Events
Retrieve the event log for a channel, including connection events, message events, and errors. Supports pagination.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the channel'}, 'page': {'type': 'integer', 'description': 'Page number for pagination (starts at 1)', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'description': 'Number of events to return per page', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
neuron_get_channel_qr
Get Channel QR Code
Retrieve the current QR code for pairing a Baileys channel with WhatsApp. A session must be started first.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the Baileys channel'}}, 'additionalProperties': False}
neuron_get_channel_status
Get Channel Status
Retrieve the current connection status and session details for a specific channel (e.g., connected, disconnected, qr_pending).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the channel'}}, 'additionalProperties': False}
neuron_get_collection
Get a collection
Fetch a collection's metadata by id.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['collectionId'], 'properties': {'collectionId': {'type': 'string', 'description': 'The collection id.'}}, 'additionalProperties': False}
neuron_get_collection_items
Browse collection items
Browse the mined content in a collection — posts/comments/profiles with author, content, engagement and engagementScore. sort 'top' ranks by engagement (great for picking the best clips/posts to reuse or distill into a persona).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['collectionId'], 'properties': {'page': {'type': 'integer', 'minimum': 1}, 'sort': {'enum': ['top', 'recent'], 'type': 'string', 'description': 'top = highest engagement first (default recent).'}, 'type': {'type': 'string', 'description': 'Filter by item type (post|comment|profile|page|custom).'}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'collectionId': {'type': 'string', 'description': 'The collection id.'}}, 'additionalProperties': False}
neuron_get_contact
Get Contact
Retrieve detailed information about a specific contact including their tags, notes, and associated lists.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the contact'}}, 'additionalProperties': False}
neuron_get_contact_list
Get Contact List
Retrieve detailed information about a specific contact list, including member count and configuration.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['idOrSlug'], 'properties': {'idOrSlug': {'type': 'string', 'description': 'Unique identifier (UUID) or URL-friendly slug of the contact list'}}, 'additionalProperties': False}
neuron_get_contact_list_members
Get Contact List Members
Retrieve the members of a specific contact list with optional search filtering and pagination.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['idOrSlug'], 'properties': {'page': {'type': 'integer', 'description': 'Page number for pagination (default: 1)', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'description': 'Number of items per page (default: 20)', 'exclusiveMinimum': 0}, 'search': {'type': 'string', 'description': 'Search term to filter members by name or phone number'}, 'idOrSlug': {'type': 'string', 'description': 'Unique identifier (UUID) or URL-friendly slug of the contact list'}}, 'additionalProperties': False}
neuron_get_conversation
Get Conversation
Retrieve detailed information about a specific conversation, including its status, participants, and metadata.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the conversation'}}, 'additionalProperties': False}
neuron_get_eligible_contacts
Get Eligible Contacts
Retrieve contacts eligible to receive a campaign message. Respects deduplication rules and mutual contact requirements.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the campaign to check eligibility for'}}, 'additionalProperties': False}
neuron_get_event_type
Get Event Type
Retrieve details of a specific event type.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Event type UUID'}}, 'additionalProperties': False}
neuron_get_flow
Get Flow
Retrieve a single flow by id, including its full graph (nodes and edges), enabled status, and run stats.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the flow.'}}, 'additionalProperties': False}
neuron_get_flow_catalog
Get Flow Node Catalog
Retrieve the COMPLETE catalog for authoring flows. ALWAYS call this first when building or editing a flow — do not rely on memory, the full node set changes. The response has two parts: • `data`: every node type (all triggers, logic, and actions) with its config `fields` (including `options` enums and `required`), output `handles`, and `dynamicHandles`. • `reference`: the authoring guide you need for anything non-trivial — - `conditions`: the ConditionGroup JSON shape + the full operator vocabulary (used by branch/filter/switch/loop and trigger filters). Note: on LOGIC nodes a rule's `field` is a {{template}}; on a TRIGGER's config.conditions it is a raw payload path. - `compositeFields`: the exact JSON for field kinds the flat schema can't express — `cases` (switch), `assignments` (set_fields), `weekdays`, and the delay amount/unit note. - `triggerConditions`: every trigger also accepts an optional config.conditions AND/OR filter over the raw event payload. - `templating`, `errorHandling` (__errorHandling), `handles` (wiring map), and `examples` (simple, branching AND/OR, and complex switch+set_fields+expression graphs to imitate). The catalog is grouped by kind: trigger (entry points), logic (routing/waits/data), action (side effects). There are dozens of node types — read `data` for the authoritative list rather than assuming.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_get_flow_run
Get Flow Run
Get a single flow run with its full step-by-step execution trace. Each step shows the node type, input/output, status (ok/error/skipped/wait), duration, and which handle fired. Use this to debug flows — see exactly what happened at each step.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['runId'], 'properties': {'runId': {'type': 'string', 'description': 'UUID of the run.'}}, 'additionalProperties': False}
neuron_get_group_invite_link
Get Group Invite Link
Get the invite link for a WhatsApp group. Only supported on Baileys channels where the bot is a group admin.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'groupJid'], 'properties': {'groupJid': {'type': 'string', 'description': 'Group JID (ending in @g.us)'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_get_group_participants
Get Group Participants
Retrieve the list of participants in a specific WhatsApp group accessible through a channel.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'groupJid'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the channel'}, 'groupJid': {'type': 'string', 'description': "JID (Jabber ID) of the WhatsApp group (e.g., '120363XXX@g.us')"}}, 'additionalProperties': False}
neuron_get_knowledge_base
Get Knowledge Base
Retrieve detailed information about a specific knowledge base by its ID.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier of the knowledge base'}}, 'additionalProperties': False}
neuron_get_list_campaign
Get List Campaign
Get a paced list campaign with live progress: how many members have been reached this cycle, the current list size, and how many remain.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Campaign ID'}}, 'additionalProperties': False}
neuron_get_messages
Get Conversation Messages
Retrieve messages from a specific conversation in chronological order, with optional cursor-based pagination.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the conversation'}, 'limit': {'type': 'integer', 'description': 'Maximum number of messages to return per page', 'exclusiveMinimum': 0}, 'cursor': {'type': 'string', 'description': 'Opaque pagination cursor from a previous response for retrieving the next page'}}, 'additionalProperties': False}
neuron_get_newsletter
Get Newsletter
Retrieve detailed information about a specific WhatsApp Channel newsletter, including subscriber count and metadata.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the newsletter to retrieve'}}, 'additionalProperties': False}
neuron_get_organization
Get Organization
Retrieve detailed information about a specific organization, including its name, settings, and configuration.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orgId'], 'properties': {'orgId': {'type': 'string', 'description': 'Unique identifier (UUID) of the organization to retrieve'}}, 'additionalProperties': False}
neuron_get_outbound_webhook_logs
Get Outbound Webhook Logs
Retrieve delivery logs for an outbound webhook to monitor event dispatch history and debug delivery failures.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the outbound webhook to get logs for'}, 'page': {'type': 'number', 'description': 'Page number for pagination (default: 1)'}, 'limit': {'type': 'number', 'description': 'Number of log entries per page (default: 20)'}}, 'additionalProperties': False}
neuron_get_persona
Get Persona
Get one voice persona (full voiceProfile + exemplars).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Persona UUID'}}, 'additionalProperties': False}
neuron_get_pool_item
Get Pool Item
Retrieve detailed information about a specific item in the marketplace pool, including its description, category, tags, and install count.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the pool item to retrieve'}}, 'additionalProperties': False}
neuron_get_privacy_settings
Get Privacy Settings
Fetch the bot's current WhatsApp privacy settings (last seen, online, profile picture, status, read receipts, groups add).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId'], 'properties': {'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_get_product
Get Product
Get a single product by id, with its public URL and fee breakdown.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Product UUID'}}, 'additionalProperties': False}
neuron_get_profile
Get User Profile
Retrieve the authenticated user's profile information including name, email, role, and current organization.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_get_scheduled_message
Get Scheduled Message
Retrieve detailed information about a specific scheduled message, including its status, send time, and message content.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the scheduled message'}}, 'additionalProperties': False}
neuron_get_sms_campaign
Get SMS Campaign
Retrieve a single SMS campaign with its status and delivery counters.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'campaignId': {'type': 'string', 'description': 'UUID of the SMS campaign'}}, 'additionalProperties': False}
neuron_get_social_channel
Get Social Channel
Retrieve detailed information about a specific social media channel, including its platform, credentials status, and connection state.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the social channel'}}, 'additionalProperties': False}
neuron_get_social_channel_status
Get Social Channel Status
Retrieve the current session status for a social media channel (e.g., connected, disconnected, error).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the social channel'}}, 'additionalProperties': False}
neuron_get_storefront
Get Storefront
Get this seller's storefront profile (handle, display name, bio, branding) and its public URL.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_get_task_runs
Get Bot Task Run History
Retrieve the paginated execution history for a task — each run's status, AI summary, tool steps, and stats (messages sent, contacts processed).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the task'}, 'page': {'type': 'integer', 'description': 'Page number (default 1)', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'description': 'Items per page (default 20)', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
neuron_get_webhook_logs
Get Webhook Logs
Retrieve execution logs for an inbound webhook to monitor incoming requests and debug processing issues.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the webhook to get logs for'}, 'page': {'type': 'number', 'description': 'Page number for pagination (default: 1)'}, 'limit': {'type': 'number', 'description': 'Number of log entries per page (default: 20)'}}, 'additionalProperties': False}
neuron_google_calendar_disconnect
Disconnect Google Calendar
Disconnect a calendar from Google Calendar sync.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendarId'], 'properties': {'calendarId': {'type': 'string', 'description': 'Calendar UUID'}}, 'additionalProperties': False}
neuron_google_calendar_status
Google Calendar Status
Check whether a calendar is connected to Google Calendar and when it last synced.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendarId'], 'properties': {'calendarId': {'type': 'string', 'description': 'Calendar UUID'}}, 'additionalProperties': False}
neuron_handle_join_requests
Handle Join Requests
Approve or reject pending join requests for a WhatsApp group. Requires admin privileges.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'groupJid', 'participants', 'action'], 'properties': {'action': {'enum': ['approve', 'reject'], 'type': 'string', 'description': 'Whether to approve or reject the join requests'}, 'groupJid': {'type': 'string', 'description': 'Group JID (ending in @g.us)'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}, 'participants': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Array of phone numbers or JIDs of requesters'}}, 'additionalProperties': False}
neuron_import_contacts
Import Contacts
Bulk import multiple contacts into the organization's address book. Accepts an array of contact objects with name, phone, and optional fields.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contacts'], 'properties': {'contacts': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'phone'], 'properties': {'name': {'type': 'string', 'description': 'Full name of the contact'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags to categorize the contact'}, 'email': {'type': 'string', 'description': 'Email address of the contact'}, 'notes': {'type': 'string', 'description': 'Additional notes about the contact'}, 'phone': {'type': 'string', 'description': 'Contact phone number in E.164 format (e.g., +2348012345678)'}}, 'additionalProperties': False}, 'description': 'Array of contact objects to import into the organization'}}, 'additionalProperties': False}
neuron_ingest_knowledge
Ingest Knowledge
Ingest content into a knowledge base. Supports deduplication via externalId and optional LLM processing (summarize, extract_facts, or custom instruction).
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['knowledgeBaseId', 'title', 'content'], 'properties': {'title': {'type': 'string', 'description': 'Title for the knowledge entry'}, 'folder': {'type': 'string', 'description': "Folder: 'general', 'skills', 'contexts', 'documents', or 'faqs' (default: general)"}, 'source': {'enum': ['api', 'mcp'], 'type': 'string', 'default': 'mcp', 'description': 'Source type (default: mcp)'}, 'content': {'type': 'string', 'description': 'Content to ingest'}, 'sourceUrl': {'type': 'string', 'description': 'Source URL for reference'}, 'externalId': {'type': 'string', 'description': 'Unique external ID for deduplication (e.g. file path, URL)'}, 'processing': {'type': 'object', 'properties': {'mode': {'enum': ['raw', 'summarize', 'extract_facts', 'custom'], 'type': 'string', 'default': 'raw', 'description': 'Processing mode'}, 'instruction': {'type': 'string', 'description': "Custom instruction (only used with 'custom' mode)"}}, 'description': 'Optional LLM processing before storage', 'additionalProperties': False}, 'knowledgeBaseId': {'type': 'string', 'description': 'Knowledge base ID to ingest into'}}, 'additionalProperties': False}
neuron_install_from_pool
Install from Pool
Install a resource from the marketplace pool into the current organization. Choose 'fork' for an independent copy or 'subscribe' to receive future updates from the publisher.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'mode'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the pool item to install'}, 'mode': {'enum': ['fork', 'subscribe'], 'type': 'string', 'description': "Installation mode: 'fork' creates an independent copy, 'subscribe' links to publisher updates"}, 'targetKbId': {'type': 'string', 'description': 'UUID of the knowledge base to install into (for knowledge_base types)'}, 'targetBotId': {'type': 'string', 'description': 'UUID of the bot to attach the installed resource to (for tool_template or knowledge_base types)'}}, 'additionalProperties': False}
neuron_invite_member
Invite Organization Member
Send an invitation to a new member to join the organization. The invitee receives an email with a link to accept.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orgId', 'email', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Full name of the person being invited'}, 'role': {'type': 'string', 'description': "Role to assign to the member (e.g., 'admin', 'agent', 'viewer')"}, 'email': {'type': 'string', 'format': 'email', 'description': 'Email address of the person to invite'}, 'orgId': {'type': 'string', 'description': 'Unique identifier (UUID) of the organization'}, 'canViewConversations': {'type': 'boolean', 'description': 'Whether the invited member can view conversations (default: true)'}}, 'additionalProperties': False}
neuron_join_campaign
Join Campaign
Join a marketplace campaign as a participant to earn rewards by sending messages through your WhatsApp channel.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'channelId'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the campaign to join'}, 'channelId': {'type': 'string', 'description': 'Unique identifier (UUID) of your WhatsApp channel to send messages from'}}, 'additionalProperties': False}
neuron_lead_stats
Lead Pool Stats
Counts of leads by status.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_leave_group
Leave Group
Make the bot leave a WhatsApp group. This action is irreversible — the bot will need to be re-added by an admin.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'groupJid'], 'properties': {'groupJid': {'type': 'string', 'description': 'Group JID (ending in @g.us)'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_list_ad_requests
List Ad Requests
Retrieve all ad requests for the current organization with optional status filtering and pagination.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'number', 'description': 'Page number for pagination (default: 1)'}, 'limit': {'type': 'number', 'description': 'Number of items per page (default: 20)'}, 'status': {'type': 'string', 'description': "Filter by request status: 'draft', 'pending_review', 'approved', 'active', 'paused', 'completed', or 'rejected'"}}, 'additionalProperties': False}
neuron_list_api_keys
List API Keys
Retrieve all API keys associated with a specific bot, including their names, creation dates, expiration status, and revocation status.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId'], 'properties': {'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot whose API keys to retrieve'}}, 'additionalProperties': False}
neuron_list_approvals
List Approvals
List approval requests for the organization, newest first. Filter by status (pending/approved/rejected/expired/cancelled). Requires a bot API key.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['apiKey'], 'properties': {'page': {'type': 'integer', 'description': 'Page number (default 1)', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'description': 'Items per page (default 25, max 100)', 'exclusiveMinimum': 0}, 'apiKey': {'type': 'string', 'description': "Bot API key with 'nrn_' prefix for authentication"}, 'status': {'type': 'string', 'description': 'Filter: pending | approved | rejected | expired | cancelled'}, 'channelId': {'type': 'string', 'description': 'Filter by WhatsApp channel (UUID)'}}, 'additionalProperties': False}
neuron_list_audit_logs
List Audit Logs
Retrieve audit logs for the organization, showing a chronological record of actions performed by members. Supports filtering by action type and resource.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'description': 'Page number for pagination (default: 1)', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'description': 'Number of log entries per page (default: 20)', 'exclusiveMinimum': 0}, 'action': {'type': 'string', 'description': "Filter by action type (e.g., 'CREATE', 'UPDATE', 'DELETE')"}, 'resourceType': {'type': 'string', 'description': "Filter by resource type (e.g., 'USER', 'ORGANIZATION', 'BOT', 'CAMPAIGN')"}}, 'additionalProperties': False}
neuron_list_blog_posts
List Blog Posts
Retrieve a paginated list of blog posts with optional filtering by status, author type, author ID, or tag.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'tag': {'type': 'string', 'description': "Filter posts by tag slug (e.g., 'announcements')"}, 'page': {'type': 'number', 'default': 1, 'description': 'Page number for pagination (default: 1)'}, 'limit': {'type': 'number', 'default': 20, 'description': 'Number of results per page (default: 20)'}, 'status': {'enum': ['draft', 'published', 'hidden'], 'type': 'string', 'description': 'Filter posts by publication status'}, 'authorId': {'type': 'string', 'description': 'Filter posts by author identifier (UUID)'}, 'authorType': {'enum': ['user', 'organization'], 'type': 'string', 'description': 'Filter posts by author type'}}, 'additionalProperties': False}
neuron_list_bookings
List Bookings
List bookings (inbound and host-created) with optional filters for calendar, status, date range, and source.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'to': {'type': 'string', 'description': 'End date filter (ISO)'}, 'from': {'type': 'string', 'description': 'Start date filter (ISO)'}, 'page': {'type': 'number', 'description': 'Page number'}, 'limit': {'type': 'number', 'description': 'Items per page'}, 'source': {'type': 'string', 'description': "Filter by source: 'host', 'link', 'public_link'"}, 'status': {'type': 'string', 'description': 'Filter by status: confirmed, pending, cancelled, rescheduled, completed, no_show'}, 'calendarId': {'type': 'string', 'description': 'Filter by calendar UUID'}}, 'additionalProperties': False}
neuron_list_bot_channels
List Bot Channels
Retrieve all WhatsApp channels connected to a specific bot, including primary and secondary connections.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId'], 'properties': {'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot'}}, 'additionalProperties': False}
neuron_list_bot_knowledge_bases
List Bot Knowledge Bases
Retrieve all knowledge bases attached to a specific bot, including their priorities and metadata.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot'}}, 'additionalProperties': False}
neuron_list_bots
List Bots
Retrieve all bots accessible to the current user, including their configurations and status.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_list_broadcasts
List Broadcasts
Retrieve a paginated list of all broadcasts with optional filtering by status such as draft, sent, or scheduled.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'description': 'Page number for pagination (default: 1)', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'description': 'Number of broadcasts per page (default: 20)', 'exclusiveMinimum': 0}, 'status': {'type': 'string', 'description': "Filter by broadcast status (e.g., 'draft', 'sent', 'scheduled')"}}, 'additionalProperties': False}
neuron_list_builtin_tools
List Built-in Tools
Retrieve all available built-in tools with their enabled/disabled status for a specific bot. Built-in tools include WhatsApp actions (send messages, delete messages, post status), utility functions (web search, QR codes, weather), scheduling, knowledge base search, and more.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId'], 'properties': {'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to list built-in tools for'}}, 'additionalProperties': False}
neuron_list_calendars
List Calendars
Retrieve all booking calendars for the current organization.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_list_campaigns
List Campaigns
Retrieve all campaigns for the current organization with optional status filtering and pagination.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'description': 'Page number for pagination (default: 1)', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'description': 'Number of campaigns per page (default: 20)', 'exclusiveMinimum': 0}, 'status': {'type': 'string', 'description': "Filter by campaign status: 'draft', 'active', 'paused', 'completed', 'stopped', or 'rejected'"}}, 'additionalProperties': False}
neuron_list_channel_groups
List Channel Groups
Retrieve all WhatsApp groups that the channel is participating in, including group metadata.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the channel'}}, 'additionalProperties': False}
neuron_list_channels
List Channels
Retrieve all WhatsApp channels configured in the current organization, including their type and connection status.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_list_collections
List collections
List content collections (where web-agent missions and captures land). Returns each collection's item count, kind and source.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_list_contact_lists
List Contact Lists
Retrieve all contact lists for the current organization with optional filtering by search term, type, and pagination.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'description': 'Page number for pagination (default: 1)', 'exclusiveMinimum': 0}, 'type': {'type': 'string', 'description': "Filter by list type: 'static', 'dynamic', or 'merged'"}, 'limit': {'type': 'integer', 'description': 'Number of items per page (default: 20)', 'exclusiveMinimum': 0}, 'search': {'type': 'string', 'description': 'Search term to filter lists by name or slug'}}, 'additionalProperties': False}
neuron_list_contacts
List Contacts
Retrieve all contacts for the current organization with optional filtering by search term, tag, and pagination.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'tag': {'type': 'string', 'description': 'Tag name to filter contacts by category'}, 'page': {'type': 'integer', 'description': 'Page number for pagination (default: 1)', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'description': 'Number of contacts per page (default: 20)', 'exclusiveMinimum': 0}, 'search': {'type': 'string', 'description': 'Search term to filter contacts by name, phone number, or email address'}, 'doNotBroadcast': {'type': 'boolean', 'description': 'Filter to contacts that are (true) or are not (false) excluded from broadcasts'}, 'doNotAutoRespond': {'type': 'boolean', 'description': 'Filter to contacts the bot will never (true) / may (false) auto-respond to'}}, 'additionalProperties': False}
neuron_list_conversations
List Conversations
Retrieve a paginated list of conversations for a specific bot, with optional filtering by status.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId'], 'properties': {'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot whose conversations to list'}, 'limit': {'type': 'integer', 'description': 'Maximum number of conversations to return per page', 'exclusiveMinimum': 0}, 'cursor': {'type': 'string', 'description': 'Opaque pagination cursor from a previous response for retrieving the next page'}, 'status': {'type': 'string', 'description': "Filter by conversation status (e.g., 'active', 'closed')"}}, 'additionalProperties': False}
neuron_list_events
List Calendar Events
List host-created events, optionally filtered by calendar and date range.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'to': {'type': 'string', 'description': 'End date filter (ISO)'}, 'from': {'type': 'string', 'description': 'Start date filter (ISO)'}, 'page': {'type': 'number', 'description': 'Page number (default: 1)'}, 'limit': {'type': 'number', 'description': 'Items per page (default: 50)'}, 'calendarId': {'type': 'string', 'description': 'Filter by calendar UUID'}}, 'additionalProperties': False}
neuron_list_event_types
List Event Types
Retrieve all event types, optionally filtered by calendar.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'calendarId': {'type': 'string', 'description': 'Filter by calendar UUID'}}, 'additionalProperties': False}
neuron_list_flow_runs
List Flow Runs
List execution runs for a flow, newest first. Each run shows status (running/waiting/completed/failed/cancelled), trigger type, step count, and timing.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the flow.'}, 'page': {'type': 'integer', 'description': 'Page number (default: 1).'}, 'limit': {'type': 'integer', 'description': 'Items per page (default: 20, max: 100).'}}, 'additionalProperties': False}
neuron_list_flows
List Flows
List all automation flows in the organization. Returns each flow's id, name, description, enabled status, trigger events, run count, and last run time.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_list_installed
List Installed Items
List all items the current organization has installed from the marketplace pool.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_list_invitations
List Invitations
Retrieve a list of all pending invitations for the organization that have not yet been accepted or revoked.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orgId'], 'properties': {'orgId': {'type': 'string', 'description': 'Unique identifier (UUID) of the organization'}}, 'additionalProperties': False}
neuron_list_kb_bots
List Knowledge Base Bots
Retrieve all bots that are connected to or using a specific knowledge base.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier of the knowledge base'}}, 'additionalProperties': False}
neuron_list_kb_entries
List Knowledge Base Entries
Retrieve entries from a knowledge base with optional filtering and pagination.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier of the knowledge base'}, 'page': {'type': 'number', 'description': 'Page number for pagination (starts at 1)'}, 'limit': {'type': 'number', 'description': 'Maximum number of entries to return per page'}, 'folder': {'type': 'string', 'description': "Filter entries by folder ('general', 'skills', 'contexts', 'documents', 'faqs')"}, 'source': {'type': 'string', 'description': "Filter entries by source type ('manual', 'document', 'url')"}}, 'additionalProperties': False}
neuron_list_knowledge_bases
List Knowledge Bases
Retrieve all knowledge bases accessible to the current user.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_list_leads
List Leads
List leads from the pool, filterable by status (new/enriched/contacted/converted/rejected), sourceId, and search.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'exclusiveMinimum': 0}, 'search': {'type': 'string'}, 'status': {'type': 'string'}, 'sourceId': {'type': 'string'}}, 'additionalProperties': False}
neuron_list_lead_sources
List Lead Sources
List configured lead sources for the org.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_list_list_campaigns
List List Campaigns
List all paced list campaigns for the organization, optionally filtered to a single contact list.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'listId': {'type': 'string', 'format': 'uuid', 'description': 'Filter to campaigns on this contact list'}}, 'additionalProperties': False}
neuron_list_members
List Organization Members
Retrieve a list of all members in the organization, including their roles and permissions.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orgId'], 'properties': {'orgId': {'type': 'string', 'description': 'Unique identifier (UUID) of the organization'}}, 'additionalProperties': False}
neuron_list_newsletters
List Newsletters
Retrieve a paginated list of all WhatsApp Channel newsletters for the organization, with optional filtering by WhatsApp session channel.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'description': 'Page number for pagination (default: 1)', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'description': 'Number of items per page (default: 20)', 'exclusiveMinimum': 0}, 'channelId': {'type': 'string', 'description': 'Filter newsletters by WhatsApp session channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_list_orders
List Orders
List recent product orders (sales) for this seller, with buyer, amount, fee breakdown, and status.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_list_organizations
List Organizations
Retrieve all organizations the authenticated user belongs to, including their roles in each.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_list_outbound_webhooks
List Outbound Webhooks
Retrieve all outbound webhooks configured for a specific bot, including their target URLs and subscribed event types.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId'], 'properties': {'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to list outbound webhooks for'}}, 'additionalProperties': False}
neuron_list_overrides
List Availability Overrides
List date-specific availability overrides for a calendar (e.g. holidays, special hours).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendarId'], 'properties': {'to': {'type': 'string', 'description': 'End date filter (YYYY-MM-DD)'}, 'from': {'type': 'string', 'description': 'Start date filter (YYYY-MM-DD)'}, 'calendarId': {'type': 'string', 'description': 'Calendar UUID'}}, 'additionalProperties': False}
neuron_list_payouts
List Payouts
Retrieve the payout history for the organization, including amounts, statuses, and timestamps.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'description': 'Page number for pagination (default: 1)', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'description': 'Number of payout records per page (default: 20)', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
neuron_list_personas
List Personas
List voice personas for the org. Each persona holds a voiceProfile (tone/style/themes/dos/donts) + exemplars distilled from a Collection of mined content.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_list_products
List Products
List all products for this seller, each with its public checkout URL and price breakdown.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_list_published
List My Published Items
List all items the current organization has published to the marketplace pool.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_list_reflections
List Reflections
Retrieve pending reflections that the bot has generated from conversations, awaiting human review. Optionally filter by approval status.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId'], 'properties': {'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to list reflections for'}, 'status': {'enum': ['pending', 'approved', 'rejected'], 'type': 'string', 'description': 'Filter reflections by approval status (default: all statuses)'}}, 'additionalProperties': False}
neuron_list_reviews
List Reviews
List verified-purchase reviews across this seller's products (rating, text, buyer, status).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_list_scheduled_messages
List Scheduled Messages
Retrieve a paginated list of scheduled messages for the current organization, with optional filtering by status (scheduled, sent, failed, cancelled).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'description': 'Page number for pagination (default: 1)', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'description': 'Number of items per page (default: 20)', 'exclusiveMinimum': 0}, 'status': {'type': 'string', 'description': "Filter by status: 'scheduled', 'sent', 'failed', or 'cancelled'"}}, 'additionalProperties': False}
neuron_list_sms_campaigns
List SMS Campaigns
List the organization's SMS campaigns, optionally filtered by status or type.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'number', 'description': 'Page number (default: 1)'}, 'type': {'type': 'string', 'description': "Filter by type: 'blast' or 'drip'"}, 'limit': {'type': 'number', 'description': 'Items per page (default: 50)'}, 'status': {'type': 'string', 'description': "Filter by status: 'draft', 'sending', 'paused', 'completed', or 'failed'"}}, 'additionalProperties': False}
neuron_list_social_channels
List Social Channels
Retrieve all social media channels (Instagram, Twitter/X) configured in the current organization.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_list_tasks
List Bot Tasks
List all scheduled tasks for a bot. A task is a natural-language instruction the bot carries out autonomously on a schedule (e.g. 're-engage stale contacts every morning at 8am').
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId'], 'properties': {'botId': {'type': 'string', 'description': 'UUID of the bot'}}, 'additionalProperties': False}
neuron_list_tools
List Tools
Retrieve all custom API tool integrations configured for a specific bot, including their endpoints and configuration.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId'], 'properties': {'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to list tools for'}}, 'additionalProperties': False}
neuron_list_webhooks
List Webhooks
Retrieve all inbound webhooks configured for a specific bot, including their status and configuration.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId'], 'properties': {'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to list webhooks for'}}, 'additionalProperties': False}
neuron_list_whatsapp_contacts
List WhatsApp Contacts
Retrieve contacts from the WhatsApp account connected to this channel, with optional search filtering.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'q': {'type': 'string', 'description': 'Search query to filter contacts by name or phone number'}, 'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the channel'}}, 'additionalProperties': False}
neuron_login
Login to Neuron
Authenticate with Neuron. Three modes: 1. No args: Opens a browser URL for secure authorization (recommended — no credentials shared with AI) 2. token: Paste an MCP token from the Neuron dashboard 3. email+password: Legacy login (credentials visible to AI)
Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
neuron_logout
Logout
Clear the current auth token locally. Does NOT revoke server-side MCP tokens — revoke from the Neuron dashboard (Settings > MCP Tokens) for full invalidation.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_mark_as_read
Mark as Read
Mark a WhatsApp message as read, sending read receipts to the sender.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'chatJid', 'messageId'], 'properties': {'chatJid': {'type': 'string', 'description': 'Chat JID the message belongs to'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}, 'messageId': {'type': 'string', 'description': 'WhatsApp message ID to mark as read'}}, 'additionalProperties': False}
neuron_mark_no_show
Mark No-Show
Mark a booking as no-show when the invitee did not attend.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Booking UUID'}}, 'additionalProperties': False}
neuron_merge_contact_lists
Merge Contact Lists
Merge two or more contact lists into a single unified list, deduplicating entries. Window merge creates a virtual union; materialized merge creates a static copy.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'sourceListIds', 'mergeType'], 'properties': {'name': {'type': 'string', 'description': 'Display name for the resulting merged list'}, 'slug': {'type': 'string', 'description': 'URL-friendly slug for the merged list (auto-generated if omitted)'}, 'mergeType': {'enum': ['window', 'materialized'], 'type': 'string', 'description': "Merge strategy: 'window' (virtual union, stays in sync) or 'materialized' (static copy at merge time)"}, 'sourceListIds': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 2, 'description': 'UUIDs or slugs of the source lists to merge (minimum 2)'}}, 'additionalProperties': False}
neuron_my_participations
My Campaign Participations
Retrieve all campaigns the current organization has joined as a participant, including earnings and delivery stats.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'description': 'Page number for pagination (default: 1)', 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'description': 'Number of participations per page (default: 20)', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
neuron_pause_ad_request
Pause Ad Request
Pause an active ad request campaign. Distribution stops until resumed. Only active ad requests can be paused.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['adRequestId'], 'properties': {'adRequestId': {'type': 'string', 'description': 'Unique identifier (UUID) of the active ad request to pause'}}, 'additionalProperties': False}
neuron_pause_bot
Pause Bot
Pause a bot to temporarily stop it from processing new messages. The bot retains its configuration and can be resumed later.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to pause'}}, 'additionalProperties': False}
neuron_pause_campaign
Pause Campaign
Pause an active campaign to temporarily stop message delivery. Can be resumed later with the resume action.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the active campaign to pause'}}, 'additionalProperties': False}
neuron_pause_list_campaign
Pause List Campaign
Pause a paced list campaign. No further batches run until resumed. The cursor is preserved.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Campaign ID'}}, 'additionalProperties': False}
neuron_pause_sms_campaign
Pause SMS Campaign
Pause a sending drip SMS campaign. Only drip campaigns in the 'sending' state can be paused.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'campaignId': {'type': 'string', 'description': 'UUID of the SMS campaign to pause'}}, 'additionalProperties': False}
neuron_populate_contacts
Populate Contacts
Enrich existing contacts with additional data from connected messaging channels. Syncs profile information from linked platforms.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_post_to_newsletter
Post to Newsletter
Post a message to a WhatsApp Channel newsletter. All subscribers receive the message. Provide at least one of text or mediaUrl. This triggers delivery and cannot be undone.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the newsletter to post to'}, 'text': {'type': 'string', 'description': 'Message text or caption to post to the newsletter'}, 'mediaUrl': {'type': 'string', 'description': 'URL of the media file to attach (required for image, video, or document types)'}, 'messageType': {'enum': ['text', 'image', 'video', 'document'], 'type': 'string', 'default': 'text', 'description': "Type of message to send (default: 'text')"}}, 'additionalProperties': False}
neuron_post_to_status
Post to WhatsApp Status
Post a WhatsApp Status / Story from a connected direct (Baileys) WhatsApp number. Visible to the account's synced contacts for 24 hours — you do NOT specify recipients (the contact list is built automatically; pass statusJidList only to target a subset). Provide at least one of text or mediaUrl. channelId is optional and auto-resolves to the default connected number. This triggers delivery and cannot be undone.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'font': {'type': 'integer', 'maximum': 9, 'minimum': 0, 'description': 'Text-status font index (0â\x80\x939)'}, 'text': {'type': 'string', 'description': 'Status text (for a text story) or caption (for media)'}, 'mediaUrl': {'type': 'string', 'description': 'URL of the image/video/audio to post (required for non-text statuses)'}, 'channelId': {'type': 'string', 'description': 'WhatsApp session channel UUID to post from. Omit to auto-resolve.'}, 'messageType': {'enum': ['text', 'image', 'video', 'audio'], 'type': 'string', 'default': 'text', 'description': "Type of status (default: 'text')"}, 'backgroundColor': {'type': 'string', 'description': "Text-status background colour as hex, e.g. '#315575'"}}, 'additionalProperties': False}
neuron_product_members
Product Members
List the members of a membership product: current (paid-up) or all. Returns each buyer's status (active / lapsed / cancelled), when their period renews, whether they're in the attached WhatsApp group (if one is attached), plus totals.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Product UUID (must be a membership product)'}, 'status': {'enum': ['active', 'all'], 'type': 'string', 'description': "'active' (current members, default) or 'all' (every member ever)"}}, 'additionalProperties': False}
neuron_publish_blog_post
Publish Blog Post
Publish a blog post, making it publicly visible. The post must be in 'draft' status.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the blog post to publish'}}, 'additionalProperties': False}
neuron_publish_to_pool
Publish to Pool
Publish a bot, tool, knowledge base, or reflection to the shared marketplace pool for other organizations to discover and install.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['type', 'sourceId', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Display name for the pool listing'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': "List of tags for improved discoverability (e.g., ['ai', 'customer-support'])"}, 'type': {'enum': ['knowledge_base', 'bot_template', 'tool_template', 'reflection_pack'], 'type': 'string', 'description': 'Type of resource to publish to the pool'}, 'category': {'type': 'string', 'description': 'Category name for organizing the resource in the pool'}, 'sourceId': {'type': 'string', 'description': 'Unique identifier (UUID) of the source resource to publish'}, 'description': {'type': 'string', 'description': 'Detailed description of the resource for the pool listing'}, 'defaultSecrets': {'type': 'object', 'description': "Pre-filled secrets auto-populated on install, e.g. { OAUTH2_TOKEN_URL: 'https://...' }", 'additionalProperties': {'type': 'string'}}, 'setupInstructions': {'type': 'string', 'description': 'Step-by-step setup guide shown after installation (tool_template only, max 5000 chars)'}}, 'additionalProperties': False}
neuron_pull_pool_update
Pull Pool Update
Pull the latest updates for a subscribed pool resource to sync with the publisher's changes. Only applies to items installed with 'subscribe' mode.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['installId'], 'properties': {'installId': {'type': 'string', 'description': 'Unique identifier (UUID) of the installed resource to pull updates for'}}, 'additionalProperties': False}
neuron_refresh_contact_list
Refresh Contact List
Trigger a refresh of a dynamic contact list. Re-evaluates criteria rules and/or AI prompt and materializes updated members.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['idOrSlug'], 'properties': {'idOrSlug': {'type': 'string', 'description': 'Unique identifier (UUID) or URL-friendly slug of the dynamic list to refresh'}}, 'additionalProperties': False}
neuron_refresh_newsletter
Refresh Newsletter
Re-fetch metadata (name, description, subscriber count) for a WhatsApp Channel newsletter from WhatsApp to synchronize local data.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the newsletter to refresh'}}, 'additionalProperties': False}
neuron_refresh_token
Refresh Access Token
Refresh the access token using a refresh token. Automatically sets the new access token for subsequent API calls.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['refreshToken'], 'properties': {'refreshToken': {'type': 'string', 'description': 'Refresh token obtained from the initial login response'}}, 'additionalProperties': False}
neuron_refund_order
Refund Order
Refund a paid order via Paystack. The buyer is refunded and the sale amount is reversed from your wallet.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Order UUID'}}, 'additionalProperties': False}
neuron_register
Register New User
Register a new user account with name, email, password, and organization name. Creates both the user and an initial organization.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'email', 'password', 'orgName'], 'properties': {'name': {'type': 'string', 'description': 'Full name of the user'}, 'email': {'type': 'string', 'format': 'email', 'description': 'Email address for the new account'}, 'orgName': {'type': 'string', 'description': 'Name of the organization to create for this user'}, 'password': {'type': 'string', 'minLength': 8, 'description': 'Password for the account (minimum 8 characters)'}}, 'additionalProperties': False}
neuron_reject_reflection
Reject Reflection
Reject a bot-generated reflection to prevent it from being incorporated into the bot's learned behavior.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the reflection to reject'}}, 'additionalProperties': False}
neuron_release_conversation
Release Conversation
Release a conversation back to the bot, returning control from a human agent. The bot will resume auto-responding.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the conversation to release'}}, 'additionalProperties': False}
neuron_remove_bot_channel
Remove Bot Channel
Disconnect a WhatsApp channel from a bot. The bot will no longer respond to messages on this channel.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId', 'channelId'], 'properties': {'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot'}, 'channelId': {'type': 'string', 'description': 'Unique identifier (UUID) of the WhatsApp channel to disconnect'}}, 'additionalProperties': False}
neuron_remove_from_contact_list
Remove from Contact List
Remove one or more contacts from a list by their contact IDs. Does not delete the contacts themselves.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['idOrSlug', 'contactIds'], 'properties': {'idOrSlug': {'type': 'string', 'description': 'Unique identifier (UUID) or URL-friendly slug of the contact list'}, 'contactIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Array of contact UUIDs to remove from the list'}}, 'additionalProperties': False}
neuron_remove_group_members
Remove Members from Group
Remove members from a group, resolved from any combination of sources — e.g. remove everyone on a contact list. Address the group by its id, slug, or JID.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['group'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Keep only contacts carrying one of these tags'}, 'group': {'type': 'string', 'description': 'Group id, slug, or JID (ending in @g.us)'}, 'phones': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Raw phone numbers, e.g. pasted from a CSV'}, 'listIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Contact list ids or slugs â\x80\x94 pulls every member'}, 'contactIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Existing contact ids'}, 'allContacts': {'type': 'boolean', 'description': "Union the org's entire address book"}, 'fromGroupIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Copy/combine members live from these WhatsApp group JIDs'}, 'excludeListIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Subtract every member of these lists'}}, 'additionalProperties': False}
neuron_remove_member
Remove Organization Member
Permanently remove a member from the organization. The member loses all access immediately. This action cannot be undone.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orgId', 'userId'], 'properties': {'orgId': {'type': 'string', 'description': 'Unique identifier (UUID) of the organization'}, 'userId': {'type': 'string', 'description': 'Unique identifier (UUID) of the member to remove'}}, 'additionalProperties': False}
neuron_remove_profile_picture
Remove Profile Picture
Remove the bot's WhatsApp profile picture, reverting to the default.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId'], 'properties': {'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_remove_tool_secret
Remove Tool Secret
Permanently delete a stored secret from a custom tool integration. The tool will lose access to this credential.
Destructivo Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'key'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the tool to remove the secret from'}, 'key': {'type': 'string', 'description': "Secret key name to remove (e.g., 'API_KEY', 'AUTH_TOKEN')"}}, 'additionalProperties': False}
neuron_request_approval
Request Approval
Ask a human to approve or reject an action over WhatsApp and get the decision back. The recipient replies approve/reject (optionally with a reason) or quotes the message. Use this to gate any action needing human sign-off (refunds, deploys, spend, publishing). Returns an approvalId; poll neuron_get_approval / neuron_list_approvals for the outcome, or supply a webhook in `callback` to be notified. Requires a bot API key ('nrn_' prefix).
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['apiKey', 'to', 'prompt'], 'properties': {'to': {'type': 'string', 'description': 'Recipient phone number (E.164/digits) or WhatsApp group JID'}, 'apiKey': {'type': 'string', 'description': "Bot API key with 'nrn_' prefix for authentication"}, 'prompt': {'type': 'string', 'description': 'The approval question shown to the human'}, 'context': {'type': 'string', 'description': 'Optional long-form details â\x80\x94 stored in a shareable Neuron Note and linked from the WhatsApp message'}, 'callback': {'type': 'object', 'properties': {'await': {'type': 'boolean', 'description': 'Hold the request until resolved (long-poll)'}, 'delivery': {'type': 'object', 'required': ['scheme'], 'properties': {'config': {'type': 'object', 'description': 'Scheme config: {url,secret} or {webhookId}; {targetJid,channelId}; {toolId}; {method}', 'additionalProperties': {}}, 'scheme': {'enum': ['webhook_signed', 'webhook_simple', 'neuron_message', 'neuron_tool', 'none'], 'type': 'string', 'description': 'How the decision reaches the caller'}}, 'additionalProperties': False}, 'response': {'type': 'object', 'properties': {'code': {'type': 'string', 'description': "One-time confirmation code â\x80\x94 enables the 'code' scheme"}, 'schemes': {'type': 'array', 'items': {'enum': ['interactive', 'keyword', 'code', 'llm'], 'type': 'string'}, 'description': "Ordered fallback for turning a reply into a decision (default: ['keyword'])"}}, 'additionalProperties': False}, 'awaitTimeoutSec': {'type': 'integer', 'maximum': 60, 'minimum': 1}}, 'description': "Callback config. Omit for a poll-only flow (delivery scheme 'none').", 'additionalProperties': False}, 'metadata': {'type': 'object', 'description': 'Opaque data echoed back verbatim in the result/callback', 'additionalProperties': {}}, 'channelId': {'type': 'string', 'description': 'Optional WhatsApp channel override (UUID)'}, 'idempotencyKey': {'type': 'string', 'description': 'Dedupe key â\x80\x94 returns the existing approval on repeat'}, 'expiresInSeconds': {'type': 'integer', 'description': 'Time to live before auto-expiry (default 86400, 60â\x80\x93604800)', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
neuron_request_pair_code
Request Pair Code
Request a numeric pairing code for a Baileys channel as an alternative to QR code scanning. Requires the phone number to pair with.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'phoneNumber'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the Baileys channel'}, 'phoneNumber': {'type': 'string', 'description': "Phone number to generate the pair code for (E.164 format, e.g., '+2348012345678')"}}, 'additionalProperties': False}
neuron_request_payout
Request Payout
Request a payout to transfer funds from the organization wallet to the linked bank account. A bank account must be saved first.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['amount'], 'properties': {'amount': {'type': 'integer', 'description': 'Amount to transfer in the smallest currency unit â\x80\x94 kobo for NGN (e.g., 100000 = NGN 1,000)', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
neuron_reschedule_booking
Reschedule Booking
Reschedule a booking to a new time. Creates a new booking and marks the old one as rescheduled.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'startTime'], 'properties': {'id': {'type': 'string', 'description': 'Booking UUID to reschedule'}, 'startTime': {'type': 'string', 'description': 'New start time (ISO 8601)'}}, 'additionalProperties': False}
neuron_respond_approval
Respond to Approval
Approve or reject a pending approval programmatically — the decision surface for an authorized operator acting via MCP instead of replying on WhatsApp. Fires the configured callback and posts the outcome to the WhatsApp chat. Exactly-once: the first responder (here or on WhatsApp) wins; later responses return 410. Requires a bot API key.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['apiKey', 'approvalId', 'decision'], 'properties': {'apiKey': {'type': 'string', 'description': "Bot API key with 'nrn_' prefix for authentication"}, 'reason': {'type': 'string', 'description': 'Optional reason (recommended for rejections)'}, 'decision': {'enum': ['approve', 'reject'], 'type': 'string', 'description': 'The decision to record'}, 'approvalId': {'type': 'string', 'description': 'The approval request id (UUID)'}, 'responderName': {'type': 'string', 'description': 'Optional display name of the operator making the decision'}}, 'additionalProperties': False}
neuron_resume_ad_request
Resume Ad Request
Resume a paused ad request campaign. Distribution resumes from where it left off. Only paused ad requests can be resumed.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['adRequestId'], 'properties': {'adRequestId': {'type': 'string', 'description': 'Unique identifier (UUID) of the paused ad request to resume'}}, 'additionalProperties': False}
neuron_resume_bot
Resume Bot
Resume a previously paused bot so it begins processing new messages again.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to resume'}}, 'additionalProperties': False}
neuron_resume_campaign
Resume Campaign
Resume a previously paused campaign to restart message delivery.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the paused campaign to resume'}}, 'additionalProperties': False}
neuron_resume_list_campaign
Resume List Campaign
Resume a paused paced list campaign. It picks up from where the cursor left off.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Campaign ID'}}, 'additionalProperties': False}
neuron_resume_sms_campaign
Resume SMS Campaign
Resume a paused drip SMS campaign.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'campaignId': {'type': 'string', 'description': 'UUID of the paused SMS campaign to resume'}}, 'additionalProperties': False}
neuron_revoke_api_key
Revoke API Key
Permanently revoke an API key to immediately invalidate it and prevent further programmatic access. This action cannot be undone.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId', 'keyId'], 'properties': {'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot that owns the API key'}, 'keyId': {'type': 'string', 'description': 'Unique identifier (UUID) of the API key to revoke'}}, 'additionalProperties': False}
neuron_revoke_group_invite
Revoke Group Invite
Revoke the current group invite link and generate a new one. The old link will stop working. Requires admin.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'groupJid'], 'properties': {'groupJid': {'type': 'string', 'description': 'Group JID (ending in @g.us)'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_revoke_invitation
Revoke Invitation
Revoke a pending organization invitation so it can no longer be accepted. This action cannot be undone.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orgId', 'invitationId'], 'properties': {'orgId': {'type': 'string', 'description': 'Unique identifier (UUID) of the organization'}, 'invitationId': {'type': 'string', 'description': 'Unique identifier (UUID) of the invitation to revoke'}}, 'additionalProperties': False}
neuron_rewrite_text
Rewrite Text
Rewrite or rephrase text using AI with specified tone, style, or instructions (e.g., make it more formal, translate, summarize).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The original text to rewrite or transform'}, 'instruction': {'type': 'string', 'description': "Instructions for how to rewrite the text (e.g., 'make it more professional', 'translate to Spanish', 'summarize in 2 sentences')"}}, 'additionalProperties': False}
neuron_run_flow
Run Flow
Manually trigger a flow run for testing. Starts at the 'trigger.manual' node if present, otherwise the first trigger node. Optionally provide a payload object that becomes {{trigger.*}} in the flow.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the flow to run.'}, 'nodeId': {'type': 'string', 'description': 'Specific trigger node id to start from (for flows with multiple triggers).'}, 'payload': {'type': 'object', 'description': "Test payload available as {{trigger.*}} in the flow â\x80\x94 e.g. { text: 'hello', contactPhone: '2348012345678', senderName: 'Test User' }.", 'additionalProperties': {}}}, 'additionalProperties': False}
neuron_run_lead_source
Run Lead Source
Run a lead source now to pull new leads into the pool (queues the extraction).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Lead source UUID'}}, 'additionalProperties': False}
neuron_run_list_campaign_now
Run List Campaign Now
Fire the next batch of a paced list campaign immediately (on the next worker tick, ~30s), regardless of its schedule. The schedule continues normally afterward.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Campaign ID'}}, 'additionalProperties': False}
neuron_run_task
Run Bot Task Now
Trigger a task to run immediately (in addition to its normal schedule). Returns once the run is queued.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the task'}}, 'additionalProperties': False}
neuron_sales_stats
Sales Stats
Total paid sales count and net revenue (kobo) for this seller.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_save_bank_account
Save Bank Account
Save a verified bank account as the organization's payout destination. Verify the account first using neuron_verify_bank_account.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bankCode', 'bankName', 'accountNumber', 'accountName'], 'properties': {'bankCode': {'type': 'string', 'description': "Nigerian bank code (e.g., '058' for GTBank, '044' for Access Bank)"}, 'bankName': {'type': 'string', 'description': "Full name of the bank (e.g., 'Guaranty Trust Bank')"}, 'accountName': {'type': 'string', 'description': 'Account holder name as returned from bank verification'}, 'accountNumber': {'type': 'string', 'description': '10-digit Nigerian bank account number'}}, 'additionalProperties': False}
neuron_search_contacts
Search Contacts
Search contacts by a query string across name, phone number, and email fields. Returns matching contacts ranked by relevance.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['q'], 'properties': {'q': {'type': 'string', 'description': 'Search query string to match against contact name, phone, or email'}}, 'additionalProperties': False}
neuron_search_knowledge
Search Knowledge
Perform semantic search across all entries and documents in a knowledge base to find relevant information.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'q'], 'properties': {'q': {'type': 'string', 'description': 'Search query text to find relevant entries'}, 'id': {'type': 'string', 'description': 'Unique identifier of the knowledge base to search'}, 'limit': {'type': 'number', 'description': 'Maximum number of search results to return'}}, 'additionalProperties': False}
neuron_seller_status
Seller Status
Check whether this account can sell (Pro plan + admin-granted access) and any pending application.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_semantic_search_contacts
Semantic Search Contacts
Search contacts using natural language AI-powered semantic search. Finds contacts based on the meaning of their notes — skills, services, schedules, preferences, etc. Returns ranked results with relevance scores and AI-generated match reasons.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 20, 'description': 'Maximum number of results to return (default: 10, max: 20)', 'exclusiveMinimum': 0}, 'query': {'type': 'string', 'description': "Natural language search query (e.g., 'who can deliver to Lagos on Monday?')"}}, 'additionalProperties': False}
neuron_send_broadcast
Send Broadcast
Send a broadcast message to all its recipients. The broadcast must be in draft status. This triggers message delivery and cannot be undone.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the broadcast to send'}}, 'additionalProperties': False}
neuron_send_campaign_message
Send Campaign Messages
Send a campaign message to selected eligible contacts via WhatsApp. Requires the campaign to be in 'active' status and contacts to be eligible.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'contactIds'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the active campaign'}, 'contactIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Array of contact UUIDs to send the campaign message to'}}, 'additionalProperties': False}
neuron_send_contact_card
Send Contact Card
Send a vCard contact card via WhatsApp with name, phone, and optional organization.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'to', 'contactName', 'contactPhone'], 'properties': {'to': {'type': 'string', 'description': 'Recipient JID or phone number'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}, 'contactOrg': {'type': 'string', 'description': 'Organization or company name'}, 'contactName': {'type': 'string', 'description': 'Full name of the contact to share'}, 'contactPhone': {'type': 'string', 'description': "Phone number in international format (e.g. '+2348012345678')"}}, 'additionalProperties': False}
neuron_send_location
Send Location
Send a location pin via WhatsApp with coordinates and optional name/address.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'to', 'latitude', 'longitude'], 'properties': {'to': {'type': 'string', 'description': 'Recipient JID or phone number'}, 'name': {'type': 'string', 'description': "Location name (e.g. 'Eko Hotel')"}, 'address': {'type': 'string', 'description': 'Street address'}, 'latitude': {'type': 'number', 'description': 'Latitude in decimal degrees'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}, 'longitude': {'type': 'number', 'description': 'Longitude in decimal degrees'}}, 'additionalProperties': False}
neuron_send_message
Send Message
Send a message to an existing conversation. Supports text, image, and document message types with optional media attachments.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'content'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the conversation'}, 'content': {'type': 'string', 'description': 'Message content to send'}, 'mediaUrl': {'type': 'string', 'description': 'URL of media to attach (required for image/document message types)'}, 'messageType': {'type': 'string', 'description': "Type of message: 'text' (default), 'image', or 'document'"}}, 'additionalProperties': False}
neuron_send_poll
Send Poll
Send a poll message via WhatsApp. Polls support 2-12 options and optional multi-select. Only supported on Baileys channels.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'to', 'name', 'options'], 'properties': {'to': {'type': 'string', 'description': 'Recipient JID or phone number (individual or group)'}, 'name': {'type': 'string', 'minLength': 1, 'description': 'Poll question/title'}, 'options': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 12, 'minItems': 2, 'description': 'Poll answer options (2-12 items)'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}, 'selectableCount': {'type': 'integer', 'minimum': 0, 'description': 'Max selections allowed. 0 = unlimited (default). 1 = single-choice.'}}, 'additionalProperties': False}
neuron_send_reaction
Send Reaction
Send or remove an emoji reaction on a WhatsApp message. Pass an empty emoji string to remove a reaction.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'to', 'messageId', 'emoji'], 'properties': {'to': {'type': 'string', 'description': "Chat JID (e.g. '2348012345678@s.whatsapp.net' or group JID)"}, 'emoji': {'type': 'string', 'description': "Emoji character (e.g. 'ð\x9f\x91\x8d', 'â\x9d¤ï¸\x8f'), or empty string to remove reaction"}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}, 'messageId': {'type': 'string', 'description': 'WhatsApp message ID to react to'}}, 'additionalProperties': False}
neuron_send_sms_campaign
Send SMS Campaign
Send a draft SMS campaign. Debits the wallet for the SMS cost plus any curated owner payout, then queues delivery. Returns a 402 with shortfall details if the wallet balance is insufficient (fund the wallet with neuron_fund_wallet and retry).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'campaignId': {'type': 'string', 'description': 'UUID of the draft SMS campaign to send'}}, 'additionalProperties': False}
neuron_send_sticker
Send Sticker
Send a sticker via WhatsApp. The easy way: pass `sticker` as a mood or label (e.g. 'laughing', 'thumbs up', 'fire', 'celebrate') and a matching sticker is found automatically from the platform-wide community sticker library (falling back to this org's own stickers). Advanced: pass `stickerUrl` with a direct public WebP image URL instead. Provide one of the two. Only supported on Baileys channels.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'to'], 'properties': {'to': {'type': 'string', 'description': 'Recipient JID or phone number'}, 'sticker': {'type': 'string', 'description': "Mood or label to auto-match a sticker (e.g. 'laughing', 'fire', 'celebrate'). Preferred over stickerUrl."}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}, 'stickerUrl': {'type': 'string', 'description': 'Advanced: direct URL to a public WebP sticker image. Use only if no mood/label fits.'}}, 'additionalProperties': False}
neuron_send_whatsapp
Send WhatsApp Message
Send a WhatsApp message to a phone number or group. Auto-resolves which channel to use (org default > first connected). Supports text, image, audio, video, and document types.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['to', 'text'], 'properties': {'to': {'type': 'string', 'description': "Recipient: phone number (e.g., '2348012345678') or group JID (e.g., '120363XXX@g.us')"}, 'text': {'type': 'string', 'description': 'Message text content'}, 'sendAt': {'type': 'string', 'description': "ISO 8601 date-time for scheduled delivery (e.g., '2025-12-31T10:00:00Z'). Message sends immediately if omitted."}, 'mediaUrl': {'type': 'string', 'description': 'URL of media to attach (required for non-text message types)'}, 'channelId': {'type': 'string', 'description': 'Unique identifier (UUID) of a specific channel to override auto-resolution'}, 'contactName': {'type': 'string', 'description': 'Display name for the recipient contact'}, 'messageType': {'type': 'string', 'description': "Message type: 'text' (default), 'image', 'audio', 'video', or 'document'"}}, 'additionalProperties': False}
neuron_set_default_channel
Set Default WhatsApp Channel
Set or clear the default WhatsApp channel for the organization. The default channel is used by neuron_send_whatsapp for auto-resolving which channel to send through.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orgId', 'channelId'], 'properties': {'orgId': {'type': 'string', 'description': 'Unique identifier (UUID) of the organization'}, 'channelId': {'type': ['string', 'null'], 'description': 'Identifier (UUID) of the channel to set as default, or null to clear the default'}}, 'additionalProperties': False}
neuron_set_group_join_approval
Set Group Join Approval
Enable or disable join approval mode for a WhatsApp group. When enabled, join requests must be manually approved by admins. Requires admin.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'groupJid', 'enabled'], 'properties': {'enabled': {'type': 'boolean', 'description': 'true to require admin approval for joins, false to allow direct joins'}, 'groupJid': {'type': 'string', 'description': 'Group JID (ending in @g.us)'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_set_override
Set Availability Override
Set a date-specific availability override — mark a day as unavailable, or set custom hours for that date.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendarId', 'date'], 'properties': {'date': {'type': 'string', 'description': 'Date to override (YYYY-MM-DD)'}, 'hours': {'type': 'array', 'items': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string', 'description': 'End time (HH:mm)'}, 'start': {'type': 'string', 'description': 'Start time (HH:mm)'}}, 'additionalProperties': False}, 'description': 'Custom hours for this date (overrides weekly hours)'}, 'reason': {'type': 'string', 'description': "Reason for the override (e.g. 'Holiday')"}, 'calendarId': {'type': 'string', 'description': 'Calendar UUID'}, 'isUnavailable': {'type': 'boolean', 'description': 'Mark the entire day as unavailable'}}, 'additionalProperties': False}
neuron_set_presence
Set Presence
Set typing indicator or online/offline presence on a WhatsApp chat. Only supported on Baileys channels.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'to', 'type'], 'properties': {'to': {'type': 'string', 'description': 'Chat JID to set presence for'}, 'type': {'enum': ['composing', 'paused', 'available', 'unavailable'], 'type': 'string', 'description': 'Presence type'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_start_channel_session
Start Channel Session
Start a Baileys (direct WhatsApp) session for the channel. Generates a QR code for device pairing. Only applicable to Baileys-type channels.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the Baileys channel to start'}}, 'additionalProperties': False}
neuron_start_social_channel_session
Start Social Channel Session
Start or reconnect a social media session for the channel. Initializes the platform client with stored credentials.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the social channel to start'}}, 'additionalProperties': False}
neuron_stop_ad_request
Stop Ad Request
Stop an active or paused ad request campaign permanently. Any remaining unspent budget is refunded to the organization wallet. This cannot be undone.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['adRequestId'], 'properties': {'adRequestId': {'type': 'string', 'description': 'Unique identifier (UUID) of the ad request to stop'}}, 'additionalProperties': False}
neuron_stop_campaign
Stop Campaign
Permanently stop an active campaign and refund the remaining unspent budget to the organization's wallet. This action cannot be undone.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the active campaign to stop'}}, 'additionalProperties': False}
neuron_stop_channel_session
Stop Channel Session
Stop the active Baileys session for the channel and disconnect from WhatsApp. The channel can be restarted later.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the Baileys channel to stop'}}, 'additionalProperties': False}
neuron_stop_social_channel_session
Stop Social Channel Session
Stop the active session for a social media channel. The channel can be restarted later.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the social channel to stop'}}, 'additionalProperties': False}
neuron_studio_agent
Build / edit a video (AI)
Build a new video or edit an existing one from a natural-language instruction. Returns the updated ProjectDoc plus the list of edits made. Pass the returned `doc` back in to keep iterating, or to neuron_studio_render to produce an MP4. Does NOT render.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['instruction'], 'properties': {'doc': {'type': 'object', 'description': 'An existing Studio ProjectDoc to edit. Omit to start a fresh video.', 'additionalProperties': {}}, 'model': {'type': 'string', 'description': 'Override the studio model id (else the org/default is used).'}, 'platform': {'enum': ['instagram-post', 'instagram-story', 'tiktok', 'twitter', 'youtube'], 'type': 'string', 'description': 'Canvas size for a NEW video (default instagram-story 9:16). Use tiktok/instagram-story for a reel.'}, 'instruction': {'type': 'string', 'description': 'Plain-English description of the video to build or the edit to make.'}, 'durationSeconds': {'type': 'number', 'maximum': 600, 'description': 'Length of a NEW blank video in seconds (default 5).', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
neuron_studio_apply
Drive the Studio yourself (no AI key)
Apply a batch of Studio tool calls to a video doc and get back the updated doc plus a fresh scene description — YOU (this agent) are the brain, so this needs NO OpenRouter/AI key. Loop: call neuron_studio_catalog once, then neuron_studio_apply with { doc, calls:[{tool,args}] }, read the returned `scene`, apply more, and finally neuron_studio_render. Omit `doc` (with an optional `platform`) to start a fresh video.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calls'], 'properties': {'doc': {'type': 'object', 'description': 'The ProjectDoc to edit (omit to start fresh). Pass back the `doc` from the previous apply to keep going.', 'additionalProperties': {}}, 'calls': {'type': 'array', 'items': {'type': 'object', 'required': ['tool'], 'properties': {'args': {'type': 'object', 'description': "That tool's arguments.", 'additionalProperties': {}}, 'tool': {'type': 'string', 'description': 'A tool name from neuron_studio_catalog, e.g. add_text, animate_layer, add_overlay.'}}, 'additionalProperties': False}, 'maxItems': 200, 'minItems': 1, 'description': 'Ordered tool calls to apply.'}, 'timeMs': {'type': 'number', 'minimum': 0, 'description': 'Scene-local playhead (ms) for time-based ops (default 0).'}, 'platform': {'enum': ['instagram-post', 'instagram-story', 'tiktok', 'twitter', 'youtube'], 'type': 'string', 'description': 'Canvas size when starting fresh (default instagram-story).'}, 'activeIndex': {'type': 'integer', 'minimum': 0, 'description': 'Which scene subsequent layer calls target (default 0).'}, 'durationSeconds': {'type': 'number', 'maximum': 600, 'description': 'Length when starting fresh (default 5s).', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
neuron_studio_catalog
List Studio tools
Get the Studio's editing vocabulary — every tool (add_text, add_shape, animate_layer, set_visibility_window, group, trim_clip, add_overlay, add_scene, set_transition, …) with its JSON-schema arguments. Read this first when driving the Studio yourself with neuron_studio_apply.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_studio_generate_image
Generate AI b-roll image
Text → image (AI b-roll) via the org's Replicate key. Returns { url } (an external URL). Re-host it (neuron_studio_rehost_media) so it persists, then place it with neuron_studio_apply add_image. Business plan + an image-model version configured in Studio settings.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['prompt'], 'properties': {'aspect': {'enum': ['9:16', '1:1', '16:9'], 'type': 'string', 'description': 'Aspect ratio (default 9:16).'}, 'prompt': {'type': 'string', 'description': 'What the image should show.'}}, 'additionalProperties': False}
neuron_studio_generate_video
Generate AI video (start)
Text → video via Replicate (async). Returns { id, status } — poll neuron_studio_generate_video_status until 'succeeded' to get videoUrl, then re-host + add_video. Needs a genvideo model version configured.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'description': 'What the clip should show.'}, 'imageUrl': {'type': 'string', 'format': 'uri', 'description': 'Optional starting image (imageâ\x86\x92video).'}}, 'additionalProperties': False}
neuron_studio_generate_video_status
Generate AI video (poll)
Poll an AI video job. When status is 'succeeded', videoUrl is the result (external — re-host it before use).
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Job id from neuron_studio_generate_video.'}}, 'additionalProperties': False}
neuron_studio_import_media_url
Import media from a URL (for the Studio)
Fetch a video from a direct link or a platform page (YouTube / Instagram / TikTok / X / LinkedIn) and re-host it so the Studio + renderer can use it. Returns { url, filename, kind, w, h, durationMs }. Put the returned url on a video layer in the ProjectDoc.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'The source video URL or platform page.'}}, 'additionalProperties': False}
neuron_studio_make
Make a video (AI + render)
One-shot: build/edit a video from a prompt AND start the MP4 render. Returns the ProjectDoc, the edits, and a render `job` — poll it with neuron_studio_render_status until status is 'completed' to get the outputUrl. Great for 'make me a 20s TikTok reel about X'. Requires a Pro+ plan.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['instruction'], 'properties': {'doc': {'type': 'object', 'description': 'An existing Studio ProjectDoc to edit. Omit to start a fresh video.', 'additionalProperties': {}}, 'model': {'type': 'string', 'description': 'Override the studio model id (else the org/default is used).'}, 'platform': {'enum': ['instagram-post', 'instagram-story', 'tiktok', 'twitter', 'youtube'], 'type': 'string', 'description': 'Canvas size for a NEW video (default instagram-story 9:16). Use tiktok/instagram-story for a reel.'}, 'instruction': {'type': 'string', 'description': 'Plain-English description of the video to build or the edit to make.'}, 'durationSeconds': {'type': 'number', 'maximum': 600, 'description': 'Length of a NEW blank video in seconds (default 5).', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
neuron_studio_rehost_media
Re-host a media URL (persist it)
Fetch any image/video/audio URL and re-host it on Neuron so it's stable and server-reachable — use this on external/temporary URLs (AI-generated b-roll, etc.) before placing them with add_image/add_video/add_audio. Returns { url, filename }.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'The external media URL to re-host.'}}, 'additionalProperties': False}
neuron_studio_render
Render a video
Submit a Studio ProjectDoc for a headless MP4 render. Returns a job id — poll neuron_studio_render_status until 'completed'. Any media (video/image) in the doc must be a server-reachable URL (use neuron_studio_import_media_url / neuron_studio_upload_media first). Requires a Pro+ plan.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['doc'], 'properties': {'doc': {'type': 'object', 'description': 'The Studio ProjectDoc/SceneDoc to render.', 'additionalProperties': {}}, 'sceneId': {'type': 'string', 'format': 'uuid', 'description': 'Optional saved-scene id to link the job to.'}}, 'additionalProperties': False}
neuron_studio_render_status
Check a render job
Poll a render job by id. When status is 'completed', outputUrl is the finished MP4. status is queued | rendering | completed | failed.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Render job id from neuron_studio_render / neuron_studio_make.'}}, 'additionalProperties': False}
neuron_studio_save
Save the video & get an open link (client-render handoff)
Persist a ProjectDoc and get back an `openUrl`. Opening it drops the video into the Studio in the user's browser, where 'Export MP4' renders CLIENT-SIDE (on their machine, no server render cost). Use this for the hybrid flow: build with neuron_studio_apply/agent, then save and hand the user the link. Use neuron_studio_render instead only for headless/unattended server renders.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['doc'], 'properties': {'doc': {'type': 'object', 'description': 'The ProjectDoc to save.', 'additionalProperties': {}}, 'name': {'type': 'string', 'description': "A title for the saved video (default 'AI video')."}}, 'additionalProperties': False}
neuron_studio_transcribe
Transcribe footage into captions
Transcribe a hosted media/audio URL into time-coded caption cues { cues:[{startSeconds,endSeconds,text}] }. Feed them to neuron_studio_apply add_captions to subtitle existing footage. Needs a transcription key on the org.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'The hosted media/audio URL to transcribe.'}}, 'additionalProperties': False}
neuron_studio_transform_video
Transform a video (bg-remove / face-swap)
Run an AI transform on a hosted video via Replicate (async): op 'bg-remove' or 'face-swap' (face-swap needs imageUrl). Returns { id, status } — poll neuron_studio_transform_video_status for videoUrl. Needs the matching model version configured.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['op', 'videoUrl'], 'properties': {'op': {'enum': ['bg-remove', 'face-swap'], 'type': 'string', 'description': 'Which transform.'}, 'imageUrl': {'type': 'string', 'format': 'uri', 'description': 'Reference face image (face-swap only).'}, 'videoUrl': {'type': 'string', 'format': 'uri', 'description': 'Source video URL.'}}, 'additionalProperties': False}
neuron_studio_transform_video_status
Transform a video (poll)
Poll a video-transform job. When status is 'succeeded', videoUrl is the result (external — re-host before use).
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Job id from neuron_studio_transform_video.'}}, 'additionalProperties': False}
neuron_studio_upload_media
Upload media (for the Studio)
Upload a local image/video (base64) to the Studio media store (uncapped) so the renderer can fetch it. Returns { url, filename }. Put the url on an image/video layer.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['base64', 'filename', 'mimetype'], 'properties': {'base64': {'type': 'string', 'description': 'Base64-encoded file bytes (no data: prefix).'}, 'filename': {'type': 'string', 'description': 'Original filename incl. extension (e.g. clip.mp4).'}, 'mimetype': {'type': 'string', 'description': 'MIME type, e.g. video/mp4 or image/png.'}}, 'additionalProperties': False}
neuron_studio_voiceover
Generate a voiceover (TTS)
Turn a script into a hosted voiceover audio URL, optionally with caption cues synced to the speech. Returns { url, durationSeconds, cues? }. Then place it with neuron_studio_apply: add_audio({url, label:'Voiceover', durationSeconds}) and add_captions({cues}). This makes fully-voiced reels possible from a prompt. Needs a TTS key on the org (captions also need a transcription key).
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The script to speak.'}, 'voice': {'type': 'string', 'description': 'Voice id/name for the engine (else the org default).'}, 'engine': {'enum': ['openai', 'elevenlabs'], 'type': 'string', 'description': 'TTS engine (default openai).'}, 'withCaptions': {'type': 'boolean', 'description': 'Also transcribe the audio into synced caption cues.'}}, 'additionalProperties': False}
neuron_submit_ad_request
Submit Ad Request for Review
Submit a draft ad request for admin review. The request must be in draft status. After submission, an admin must approve it before it can be funded.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['adRequestId'], 'properties': {'adRequestId': {'type': 'string', 'description': 'Unique identifier (UUID) of the draft ad request to submit'}}, 'additionalProperties': False}
neuron_submit_campaign
Submit Campaign for Review
Submit a draft campaign for admin review and approval. The campaign must be in 'draft' status.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the draft campaign to submit for review'}}, 'additionalProperties': False}
neuron_submit_to_list_pool
Submit List to Pool
Submit a contact list to the shared pool marketplace for other organizations to discover and use for ad distribution.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['listId', 'channelId', 'category', 'pricePerDelivery'], 'properties': {'listId': {'type': 'string', 'description': 'Unique identifier (UUID) of the contact list to submit'}, 'category': {'type': 'string', 'description': "Audience category (e.g., 'delivery', 'tech', 'consumers', 'food')"}, 'channelId': {'type': 'string', 'description': 'Unique identifier (UUID) of the WhatsApp channel used for sending messages'}, 'description': {'type': 'string', 'description': 'Human-readable description of the audience and its characteristics'}, 'demographics': {'type': 'object', 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': "Demographic tags describing the audience (e.g., ['young-adults', 'tech-savvy'])"}, 'regions': {'type': 'array', 'items': {'type': 'string'}, 'description': "Geographic regions covered (e.g., ['lagos', 'abuja'])"}}, 'description': 'Demographic information about the contact list audience', 'additionalProperties': False}, 'pricePerDelivery': {'type': 'number', 'description': 'Price per successful message delivery in kobo (e.g., 5000 = NGN 50)'}}, 'additionalProperties': False}
neuron_switch_instance
Switch Neuron Instance
Switch the MCP server to target a different Neuron backend instance. Auth tokens are preserved per instance — if you've previously logged in to an instance, switching back restores your session automatically. Call with no args to list known instances and see which is active.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'url': {'type': 'string', 'description': "Base API URL of the Neuron instance (e.g., 'https://api.client.com/api/v1'). Omit to list known instances."}}, 'additionalProperties': False}
neuron_switch_org
Switch Organization
Switch to a different organization. Returns a new access token scoped to the target organization and automatically sets it.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orgId'], 'properties': {'orgId': {'type': 'string', 'description': 'Unique identifier (UUID) of the organization to switch to'}}, 'additionalProperties': False}
neuron_sync_knowledge
Sync Knowledge
Trigger a synchronization operation to refresh embeddings, reindex content, or update the knowledge base state.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier of the knowledge base to synchronize'}}, 'additionalProperties': False}
neuron_sync_newsletters
Sync Newsletters
Synchronize and import WhatsApp Channels from a connected WhatsApp session into Neuron. Discovers channels created outside Neuron.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId'], 'properties': {'channelId': {'type': 'string', 'description': 'Identifier (UUID) of the WhatsApp session channel to sync newsletters from'}}, 'additionalProperties': False}
neuron_sync_reflections
Sync Reflections
Synchronize all approved reflections into the bot's active knowledge base, applying learned insights to future conversations.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId'], 'properties': {'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to sync reflections for'}}, 'additionalProperties': False}
neuron_sync_whatsapp_contacts
Sync WhatsApp Contacts
Synchronize contacts from all connected WhatsApp channels into the organization's contact database. Creates new contacts for unseen numbers.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_takeover_conversation
Takeover Conversation
Transfer control of a conversation from the bot to a human agent. The bot will stop auto-responding until the conversation is released.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the conversation to take over'}}, 'additionalProperties': False}
neuron_team_availability
Get Team Availability
Find available slots across all team calendars. Mode 'any' returns slots where at least one member is free (round-robin), 'all' requires everyone to be free (collective).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['from', 'to'], 'properties': {'to': {'type': 'string', 'description': 'End date (YYYY-MM-DD)'}, 'from': {'type': 'string', 'description': 'Start date (YYYY-MM-DD)'}, 'mode': {'enum': ['any', 'all'], 'type': 'string', 'description': "'any' for round-robin, 'all' for collective (default: 'any')"}}, 'additionalProperties': False}
neuron_test_tool
Test Tool
Execute a dry-run test of a custom API tool with sample arguments to verify the endpoint responds correctly.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'args'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the tool to test'}, 'args': {'type': 'object', 'description': 'Sample arguments object to pass to the tool for testing', 'additionalProperties': {}}}, 'additionalProperties': False}
neuron_toggle_builtin_tool
Toggle Built-in Tool
Toggle a built-in tool on or off for a specific bot. Enabled tools become available in the bot's conversations. Example tool IDs: delete_message, post_to_channel, post_status, web_search, send_direct_message, react_to_message, set_reminder, create_poll.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId', 'toolId', 'enabled'], 'properties': {'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to toggle the tool for'}, 'toolId': {'type': 'string', 'description': "Identifier of the built-in tool (e.g., 'delete_message', 'post_status', 'web_search')"}, 'enabled': {'type': 'boolean', 'description': 'Whether to enable (true) or disable (false) the tool'}}, 'additionalProperties': False}
neuron_toggle_featured
Toggle Featured Status
Toggle the featured status of a pool item. Featured items appear prominently in the marketplace. Requires admin privileges.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the pool item to feature or unfeature'}}, 'additionalProperties': False}
neuron_toggle_flow
Toggle Flow
Enable or disable a flow. Disabled flows stop receiving events but retain their graph.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'enabled'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the flow.'}, 'enabled': {'type': 'boolean', 'description': 'true to enable, false to disable.'}}, 'additionalProperties': False}
neuron_toggle_task
Toggle Bot Task
Pause or resume a scheduled task (flips its enabled state and reschedules the next run).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the task'}}, 'additionalProperties': False}
neuron_unassign_bot_from_channel
Unassign Bot from Channel
Remove the bot assignment from a WhatsApp channel. The channel will stop auto-responding to messages.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the channel to unassign the bot from'}}, 'additionalProperties': False}
neuron_unassign_bot_from_social_channel
Unassign Bot from Social Channel
Remove the bot assignment from a social media channel. The bot will lose access to the channel's social media credentials.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'botId'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the social channel to unassign the bot from'}, 'botId': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to unassign'}}, 'additionalProperties': False}
neuron_unblock_contact
Unblock Contact
Unblock a previously blocked WhatsApp contact.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'jid'], 'properties': {'jid': {'type': 'string', 'description': 'Contact JID or phone number to unblock'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_unpublish_from_pool
Unpublish from Pool
Permanently remove a published item from the marketplace pool. Organizations that installed this item will retain their copies.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the pool item to unpublish'}}, 'additionalProperties': False}
neuron_update_ad_request
Update Ad Request
Update a draft or rejected ad request. Only draft and rejected ad requests can be edited. Rejected requests revert to draft on update.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['adRequestId'], 'properties': {'budget': {'type': 'number', 'description': 'Updated budget in kobo'}, 'message': {'type': 'string', 'description': 'Updated ad message content'}, 'mediaUrl': {'type': 'string', 'description': 'Updated media URL (set to null to clear)'}, 'targetGoal': {'type': 'number', 'description': 'Updated target number of deliveries'}, 'targetType': {'enum': ['contacts', 'groups'], 'type': 'string', 'description': "Target type: 'contacts' or 'groups'"}, 'adRequestId': {'type': 'string', 'description': 'Unique identifier (UUID) of the ad request to update'}, 'messageType': {'type': 'string', 'description': "Updated message type: 'text', 'image', 'video', or 'document'"}, 'targetingMode': {'enum': ['auto', 'manual'], 'type': 'string', 'description': "Targeting mode: 'auto' for system matching or 'manual' for hand-picked pool entries"}, 'targetDemographics': {'type': 'object', 'properties': {'regions': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Updated target regions'}, 'categories': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Updated target categories'}}, 'description': 'Updated demographic targeting criteria', 'additionalProperties': False}, 'selectedPoolEntryIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Pool entry UUIDs for manual contact targeting'}, 'selectedGroupPoolEntryIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Group pool entry UUIDs for manual group targeting'}}, 'additionalProperties': False}
neuron_update_availability
Update Availability
Set the weekly availability hours for a calendar. Each day maps to an array of { start, end } time windows in HH:mm format.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendarId', 'weeklyHours'], 'properties': {'timezone': {'type': 'string', 'description': 'IANA timezone'}, 'calendarId': {'type': 'string', 'description': 'Calendar UUID'}, 'weeklyHours': {'type': 'object', 'description': "Weekly hours map, e.g. { monday: [{ start: '09:00', end: '17:00' }], saturday: [] }", 'propertyNames': {'enum': ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']}, 'additionalProperties': {'type': 'array', 'items': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string', 'description': 'End time (HH:mm)'}, 'start': {'type': 'string', 'description': 'Start time (HH:mm)'}}, 'additionalProperties': False}}}}, 'additionalProperties': False}
neuron_update_blog_post
Update Blog Post
Update an existing blog post's content, metadata, status, or SEO fields. Only provided fields are changed.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the blog post to update'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': "Replace the post's tags with this list of tag names (created if missing). Empty array clears all tags; omit to leave tags unchanged."}, 'title': {'type': 'string', 'description': 'New title for the blog post'}, 'blocks': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, {'type': 'null'}], 'description': "Structured layout blocks, rendered top-to-bottom as styled components. Each block is an object with a `type` and its fields:\n- hero: { type:'hero', title, kicker?, subtitle?, imageUrl?, align?:'left'|'center', ctaLabel?, ctaHref? }\n- richText: { type:'richText', markdown }  (full GFM markdown)\n- callout: { type:'callout', variant:'info'|'tip'|'warning'|'success'|'danger', title?, markdown }\n- columns: { type:'columns', ratio?:'1-1'|'1-2'|'2-1', columns:[ [block,...], [block,...] ] }  (exactly 2 columns of leaf blocks; no nested columns)\n- codeCard: { type:'codeCard', language?, filename?, code }\n- imageGrid: { type:'imageGrid', columns?:1|2|3|4, images:[{ url, alt?, caption? }] }\n- quote: { type:'quote', quote, attribution? }\n- embed: { type:'embed', provider:'youtube'|'loom'|'vimeo'|'generic', url, title? }  (paste the normal share URL)\n- cta: { type:'cta', headline, body?, buttonLabel, buttonHref, secondaryLabel?, secondaryHref?, accent?:'#hex' }\n- divider: { type:'divider' }\n- html: { type:'html', html, sandboxed?, height? }  (custom HTML. Default is sanitized + indexable, no scripts. Set sandboxed:true to run scripts inside an isolated iframe â\x80\x94 NOT indexed by search.)\nBuild magazine-style posts by composing these, e.g. a hero, then richText, then a columns block, a callout, a codeCard, and a closing cta.\n\nPass null to clear blocks and revert to the markdown `content`. Omit to leave existing blocks unchanged."}, 'status': {'enum': ['draft', 'published', 'hidden'], 'type': 'string', 'description': 'New publication status for the post'}, 'content': {'type': 'string', 'description': 'New markdown body (GFM + inline raw HTML). Supports ![alt](url), <video>, <iframe> embeds, <details>/<summary>, <mark>, <kbd>.'}, 'excerpt': {'type': 'string', 'description': 'New short summary or preview text'}, 'seoTitle': {'type': 'string', 'description': 'New custom SEO title override'}, 'seoKeywords': {'type': 'array', 'items': {'type': 'string'}, 'description': 'New list of SEO keywords'}, 'coverImageUrl': {'type': 'string', 'description': 'New URL for the cover image'}, 'seoDescription': {'type': 'string', 'description': 'New meta description for search engines'}}, 'additionalProperties': False}
neuron_update_booking_notes
Update Booking Notes
Add or update host notes on a booking.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'notes'], 'properties': {'id': {'type': 'string', 'description': 'Booking UUID'}, 'notes': {'type': 'string', 'description': 'Host notes text'}}, 'additionalProperties': False}
neuron_update_bot
Update Bot
Update an existing bot's configuration. Only provided fields are modified; omitted fields remain unchanged.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the bot to update'}, 'name': {'type': 'string', 'description': 'New display name for the bot'}, 'llmModel': {'type': 'string', 'description': "OpenRouter model ID (e.g., 'google/gemini-2.5-flash-lite', 'openrouter/auto')"}, 'metadata': {'type': 'object', 'description': "Arbitrary metadata object stored with the bot. Replaces the entire metadata field â\x80\x94 include ALL existing keys you want to keep. Known keys: 'communityExitFollowUp' (auto-DM users who leave watched groups â\x80\x94 { enabled: boolean, groupJids: string[], message: string with {name} placeholder }), 'learningConfig' (self-learning from conversations â\x80\x94 { enabled: boolean, folder: string, groupChats: string[], dmPhones: string[], useAdminPhones: boolean }), 'loadBalancing' (multi-channel round-robin â\x80\x94 { enabled: boolean, strategy: string }), 'welcomeNewMembers' (fine-tune welcome behavior â\x80\x94 { batchWindowSeconds: number, groupJids: string[] }). Additional custom keys are preserved as-is.", 'additionalProperties': {}}, 'maxTokens': {'type': 'number', 'description': 'Maximum number of tokens the bot can generate per response', 'exclusiveMinimum': 0}, 'assignment': {'type': 'string', 'description': 'One-sentence role definition for the bot (max 2000 chars)'}, 'systemPrompt': {'type': 'string', 'description': "New system prompt defining the bot's behavior and personality"}, 'llmTemperature': {'type': 'number', 'maximum': 2, 'minimum': 0, 'description': 'Temperature parameter controlling response randomness (0 = deterministic, 2 = creative)'}, 'welcomeMessage': {'type': 'string', 'description': 'Welcome message sent to new members joining groups the bot manages. Setting this field activates the batched welcome feature â\x80\x94 new members are accumulated over a window (default 60s) and welcomed in a single message with @mentions. Set to null to disable.'}, 'fallbackMessage': {'type': 'string', 'description': 'Message sent when the bot cannot understand user input (max 2000 chars)'}, 'greetingMessage': {'type': 'string', 'description': 'Automatic greeting sent when a new conversation starts (max 2000 chars)'}, 'escalationPrompt': {'type': 'string', 'description': 'Prompt template used when escalating to a human agent (max 5000 chars)'}, 'responsibilities': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Array of responsibility descriptions defining what the bot handles'}, 'whatsappChannelId': {'type': 'string', 'description': 'Unique identifier (UUID) of the WhatsApp channel to associate with the bot'}}, 'additionalProperties': False}
neuron_update_broadcast
Update Broadcast
Update an existing broadcast's name, message content, or media before sending. The broadcast must still be in draft status.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the broadcast to update'}, 'name': {'type': 'string', 'description': 'New display name or label for the broadcast'}, 'message': {'type': 'string', 'description': 'New message content to broadcast'}, 'mediaUrl': {'type': 'string', 'description': 'New media URL to attach'}, 'messageType': {'type': 'string', 'description': "New message type (e.g., 'text', 'image', 'document')"}}, 'additionalProperties': False}
neuron_update_calendar
Update Calendar
Update a calendar's settings. Only provided fields are modified.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Calendar UUID'}, 'name': {'type': 'string', 'description': 'New display name'}, 'color': {'type': 'string', 'description': 'New hex color code'}, 'isActive': {'type': 'boolean', 'description': 'Enable or disable the calendar'}, 'timezone': {'type': 'string', 'description': 'New IANA timezone'}, 'visibility': {'enum': ['private', 'public', 'org-link'], 'type': 'string', 'description': 'New visibility'}, 'description': {'type': 'string', 'description': 'New description'}, 'notifyEmail': {'type': 'boolean', 'description': 'Toggle email notifications'}, 'notifyPhone': {'type': 'string', 'description': 'New host phone for WhatsApp notifications'}, 'notifyWhatsapp': {'type': 'boolean', 'description': 'Toggle WhatsApp notifications'}, 'notifyEmailAddress': {'type': 'string', 'description': 'New host email for notifications'}}, 'additionalProperties': False}
neuron_update_campaign
Update Campaign
Update a campaign that is in 'draft' or 'rejected' status. Active or completed campaigns cannot be modified.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the campaign to update'}, 'title': {'type': 'string', 'description': 'Updated campaign title'}, 'message': {'type': 'string', 'description': 'Updated WhatsApp message template'}, 'deadline': {'type': 'string', 'description': 'Updated campaign deadline in ISO 8601 date format'}, 'guidelines': {'type': 'string', 'description': 'Updated participant guidelines'}, 'description': {'type': 'string', 'description': 'Updated marketplace description'}, 'totalBudget': {'type': 'number', 'description': 'Updated total campaign budget in kobo'}, 'rewardPerDelivery': {'type': 'number', 'description': 'Updated reward per delivery in kobo (e.g., 5000 = NGN 50)'}, 'requireMutualContact': {'type': 'boolean', 'description': 'Updated mutual contact requirement setting'}}, 'additionalProperties': False}
neuron_update_channel
Update Channel
Update configuration of an existing WhatsApp channel. Only provided fields are modified; omitted fields remain unchanged.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the channel to update'}, 'name': {'type': 'string', 'description': 'New display name for the channel'}, 'phoneNumber': {'type': 'string', 'description': 'New phone number for the channel (E.164 format)'}, 'metaAccessToken': {'type': 'string', 'description': 'New Meta Access Token (meta_cloud channels only)'}, 'metaPhoneNumberId': {'type': 'string', 'description': 'New Meta Phone Number ID (meta_cloud channels only)'}}, 'additionalProperties': False}
neuron_update_contact
Update Contact
Update an existing contact's details. If notes are provided, they are appended as a new structured note entry without overwriting existing notes.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the contact to update'}, 'name': {'type': 'string', 'description': 'Updated full name for the contact'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Updated tags for the contact (replaces existing tags)'}, 'email': {'type': 'string', 'description': 'Updated email address for the contact'}, 'notes': {'type': 'string', 'description': "New note to append to the contact's existing notes"}, 'phone': {'type': 'string', 'description': 'Updated phone number in E.164 format (e.g., +2348012345678)'}, 'doNotBroadcast': {'type': 'boolean', 'description': 'Set true to exclude this contact from all broadcasts, false to allow'}, 'doNotAutoRespond': {'type': 'boolean', 'description': 'Set true so the bot never auto-responds to this contact, false to allow (manual/API and human sends are unaffected either way)'}}, 'additionalProperties': False}
neuron_update_contact_list
Update Contact List
Update an existing contact list's name, slug, description, criteria, or refresh schedule.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['idOrSlug'], 'properties': {'name': {'type': 'string', 'description': 'Updated display name for the list'}, 'slug': {'type': 'string', 'description': 'Updated URL-friendly slug for the list'}, 'criteria': {'anyOf': [{'anyOf': [{'not': {}}, {'type': 'object', 'additionalProperties': {}}]}, {'type': 'null'}], 'description': 'Updated dynamic list criteria. Set to null to clear existing criteria.'}, 'idOrSlug': {'type': 'string', 'description': 'Unique identifier (UUID) or URL-friendly slug of the contact list to update'}, 'description': {'type': 'string', 'description': "Updated description of the list's purpose"}, 'refreshSchedule': {'enum': ['manual', 'daily', 'weekly', 'on_access'], 'type': 'string', 'description': 'Updated refresh schedule for dynamic lists'}}, 'additionalProperties': False}
neuron_update_event
Update Calendar Event
Update a host-created event. Use scope='future' to update all future instances of a recurring series.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Event (booking) UUID'}, 'scope': {'enum': ['single', 'future'], 'type': 'string', 'description': "'single' (default) or 'future' to update all future instances"}, 'title': {'type': 'string', 'description': 'New title'}, 'endTime': {'type': 'string', 'description': 'New end time (ISO 8601)'}, 'attendees': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string'}, 'email': {'type': 'string'}, 'phone': {'type': 'string'}, 'status': {'type': 'string'}, 'contactId': {'type': 'string'}}, 'additionalProperties': False}, 'description': 'Updated attendee list'}, 'startTime': {'type': 'string', 'description': 'New start time (ISO 8601)'}, 'description': {'type': 'string', 'description': 'New description'}, 'locationType': {'enum': ['video', 'phone', 'in_person', 'whatsapp', 'custom'], 'type': 'string', 'description': 'New location type'}, 'locationValue': {'type': 'string', 'description': 'New location value'}}, 'additionalProperties': False}
neuron_update_event_type
Update Event Type
Update an event type's settings. Only provided fields are modified.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Event type UUID'}, 'name': {'type': 'string', 'description': 'New name'}, 'color': {'type': 'string', 'description': 'New hex color'}, 'price': {'type': 'number', 'description': 'New price'}, 'currency': {'type': 'string', 'description': 'New currency code'}, 'duration': {'type': 'number', 'description': 'New duration in minutes'}, 'isActive': {'type': 'boolean', 'description': 'Enable or disable the event type'}, 'description': {'type': 'string', 'description': 'New description'}, 'locationType': {'enum': ['video', 'phone', 'in_person', 'whatsapp', 'custom'], 'type': 'string', 'description': 'New location type'}, 'locationValue': {'type': 'string', 'description': 'New location value'}, 'requireConfirmation': {'type': 'boolean', 'description': 'Require host confirmation'}}, 'additionalProperties': False}
neuron_update_flow
Update Flow
Update a flow's name, description, graph, or enabled state. Only provided fields are changed. When updating the graph, provide the COMPLETE graph (all nodes and edges) — it replaces the existing graph entirely. When a graph is supplied the response includes a non-blocking `warnings` array (same checks as create_flow) — check it and fix any flagged issues.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the flow to update.'}, 'name': {'type': 'string', 'description': 'New name.'}, 'graph': {'type': 'object', 'required': ['nodes', 'edges'], 'properties': {'edges': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'source', 'target'], 'properties': {'id': {'type': 'string', 'description': "Unique edge id, e.g. 'e_msg_reply'."}, 'source': {'type': 'string', 'description': 'Source node id.'}, 'target': {'type': 'string', 'description': 'Target node id.'}, 'sourceHandle': {'type': 'string', 'description': "Which output port of the source node this edge leaves from. Branch nodes use 'true'/'false', switch/router use case ids, wait nodes use 'default'/'timeout', lookup uses 'found'/'not_found'. Defaults to 'default'."}}, 'additionalProperties': False}, 'description': 'Array of edges connecting nodes. Each edge fires when its source node emits on the matching sourceHandle.'}, 'nodes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'type'], 'properties': {'id': {'type': 'string', 'description': "Stable node id unique within the flow, e.g. 'n_a1b2' or 't_msg'."}, 'type': {'type': 'string', 'description': "Registry key â\x80\x94 e.g. 'trigger.message_received', 'logic.branch', 'action.send_message'. Use neuron_get_flow_catalog to see all available types."}, 'label': {'type': 'string', 'description': 'Human label overriding the registry default.'}, 'config': {'type': 'object', 'default': {}, 'description': 'Node-specific configuration. Values may contain {{â\x80¦}} templates resolved at runtime against trigger, vars, and nodes.', 'additionalProperties': {}}, 'position': {'type': 'object', 'required': ['x', 'y'], 'properties': {'x': {'type': 'number'}, 'y': {'type': 'number'}}, 'description': 'Canvas position (UI layout). Use x=300 as center, space nodes ~160px apart vertically.', 'additionalProperties': False}}, 'additionalProperties': False}, 'description': 'Array of flow nodes.'}}, 'description': 'Complete replacement graph. Provide ALL nodes and edges.', 'additionalProperties': False}, 'enabled': {'type': 'boolean', 'description': 'Enable or disable the flow.'}, 'description': {'type': ['string', 'null'], 'description': 'New description (null to clear).'}}, 'additionalProperties': False}
neuron_update_group_description
Update Group Description
Update the description of a WhatsApp group. Requires the bot to be a group admin.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'groupJid', 'description'], 'properties': {'groupJid': {'type': 'string', 'description': 'Group JID (ending in @g.us)'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}, 'description': {'type': 'string', 'description': 'New group description (can be empty string to clear)'}}, 'additionalProperties': False}
neuron_update_group_members
Update Group Members
Add, remove, promote, or demote members in a WhatsApp group. Provide phone numbers or JIDs. Requires admin privileges.
Destructivo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'groupJid', 'participants', 'action'], 'properties': {'action': {'enum': ['add', 'remove', 'promote', 'demote'], 'type': 'string', 'description': 'Action to perform on the participants'}, 'groupJid': {'type': 'string', 'description': 'Group JID (ending in @g.us)'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}, 'participants': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': "Array of phone numbers or JIDs (e.g. ['2348012345678'] or ['2348012345678@s.whatsapp.net'])"}}, 'additionalProperties': False}
neuron_update_group_settings
Update Group Settings
Change WhatsApp group settings: 'announcement' (only admins send), 'not_announcement' (everyone sends), 'locked' (only admins edit info), 'unlocked' (everyone edits info). Requires admin.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'groupJid', 'setting'], 'properties': {'setting': {'enum': ['announcement', 'not_announcement', 'locked', 'unlocked'], 'type': 'string', 'description': 'Group setting to apply'}, 'groupJid': {'type': 'string', 'description': 'Group JID (ending in @g.us)'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_update_group_subject
Update Group Subject
Update the name/subject of a WhatsApp group. Requires the bot to be a group admin.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'groupJid', 'subject'], 'properties': {'subject': {'type': 'string', 'minLength': 1, 'description': 'New group name/subject'}, 'groupJid': {'type': 'string', 'description': 'Group JID (ending in @g.us)'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_update_kb_entry
Update Knowledge Base Entry
Update the content, title, folder, or source of an existing knowledge base entry.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['kbId', 'entryId'], 'properties': {'kbId': {'type': 'string', 'description': 'Unique identifier of the knowledge base'}, 'title': {'type': 'string', 'description': 'New title for the entry'}, 'folder': {'type': 'string', 'description': "New folder: 'general', 'skills', 'contexts', 'documents', or 'faqs'"}, 'source': {'enum': ['manual', 'document', 'url'], 'type': 'string', 'description': 'New source type for the entry'}, 'content': {'type': 'string', 'description': 'New content for the entry'}, 'entryId': {'type': 'string', 'description': 'Unique identifier of the entry to update'}, 'metadata': {'type': 'object', 'description': 'New metadata key-value pairs', 'additionalProperties': {}}}, 'additionalProperties': False}
neuron_update_knowledge_base
Update Knowledge Base
Update the properties of an existing knowledge base such as name, description, or root instruction.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier of the knowledge base to update'}, 'name': {'type': 'string', 'description': 'New name for the knowledge base'}, 'description': {'type': 'string', 'description': 'New description for the knowledge base'}, 'rootInstruction': {'type': 'string', 'description': 'New root instruction or context'}}, 'additionalProperties': False}
neuron_update_list_campaign
Update List Campaign
Update a paced list campaign's name, message source, batch size, schedule, exhaust behavior, or send settings. Changing the schedule reschedules the next run.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Campaign ID'}, 'name': {'type': 'string', 'maxLength': 255}, 'botId': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}]}, 'schedule': {'allOf': [{'anyOf': [{'type': 'object', 'required': ['kind', 'everyMs'], 'properties': {'kind': {'type': 'string', 'const': 'interval'}, 'everyMs': {'type': 'integer', 'minimum': 60000, 'description': 'Milliseconds between runs, e.g. 86400000 for daily'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'hour'], 'properties': {'hour': {'type': 'integer', 'maximum': 23, 'minimum': 0, 'description': 'UTC hour'}, 'kind': {'type': 'string', 'const': 'daily'}, 'minute': {'type': 'integer', 'maximum': 59, 'minimum': 0}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'days', 'hour'], 'properties': {'days': {'type': 'array', 'items': {'type': 'integer', 'maximum': 6, 'minimum': 0}, 'minItems': 1, 'description': 'Days of week, 0=Sun â\x80¦ 6=Sat'}, 'hour': {'type': 'integer', 'maximum': 23, 'minimum': 0, 'description': 'UTC hour'}, 'kind': {'type': 'string', 'const': 'weekly'}, 'minute': {'type': 'integer', 'maximum': 59, 'minimum': 0}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'dayOfMonth', 'hour'], 'properties': {'hour': {'type': 'integer', 'maximum': 23, 'minimum': 0, 'description': 'UTC hour'}, 'kind': {'type': 'string', 'const': 'monthly'}, 'minute': {'type': 'integer', 'maximum': 59, 'minimum': 0}, 'dayOfMonth': {'type': 'integer', 'maximum': 31, 'minimum': 1}}, 'additionalProperties': False}]}, {'type': 'object', 'properties': {'endAt': {'type': 'string', 'description': 'ISO date; the campaign completes after this'}, 'maxRuns': {'type': 'integer', 'minimum': 1, 'description': 'Stop after this many runs'}, 'timezone': {'type': 'string', 'description': "IANA timezone the daily/weekly/monthly time is interpreted in, e.g. 'Africa/Lagos'. Defaults to UTC. Ignored for 'interval'. The schedule holds its local wall-clock time across DST."}}}], 'description': 'When each batch fires. e.g. daily at 9am in Africa/Lagos, or every weekend.'}, 'sendMode': {'enum': ['message', 'bot'], 'type': 'string'}, 'batchSize': {'type': 'integer', 'maximum': 1000, 'minimum': 1}, 'channelId': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}]}, 'onExhaust': {'enum': ['stop', 'loop'], 'type': 'string'}, 'messageSource': {'anyOf': [{'type': 'object', 'required': ['kind', 'text'], 'properties': {'kind': {'type': 'string', 'const': 'static'}, 'text': {'type': 'string', 'minLength': 1, 'description': 'The message body sent to each contact in the batch'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'messages'], 'properties': {'kind': {'type': 'string', 'const': 'rotation'}, 'mode': {'enum': ['sequential', 'random'], 'type': 'string', 'description': 'Rotate in order (default) or pick randomly per run'}, 'messages': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'minItems': 1, 'description': 'Pool of messages'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'ref'], 'properties': {'ref': {'type': 'string', 'minLength': 1, 'description': 'A Neuron Note ID; its content becomes the message, fetched live at each run'}, 'kind': {'type': 'string', 'const': 'content'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'prompt'], 'properties': {'kind': {'type': 'string', 'const': 'ai'}, 'botId': {'type': 'string', 'format': 'uuid', 'description': 'Bot whose system prompt supplies business context'}, 'prompt': {'type': 'string', 'minLength': 1, 'description': 'Instruction for the message the AI should write'}, 'personaId': {'type': 'string', 'format': 'uuid', 'description': 'Persona whose voice the message is written in'}, 'perContact': {'type': 'boolean', 'description': 'Generate a distinct message per recipient (slower, more tokens). Default false = one message for the whole batch'}}, 'description': 'AI-written message generated live at each run (BYOK-aware)', 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'POSTed { campaignId, listId, contact? }; returns { message } or a bare string'}, 'kind': {'type': 'string', 'const': 'webhook'}, 'perContact': {'type': 'boolean', 'description': 'Call once per recipient with the contact in the payload. Default false = one call per batch'}}, 'description': 'Message fetched from your webhook at each run', 'additionalProperties': False}], 'description': "How the message is resolved live at each batch run: 'static' (fixed), 'rotation' (cycle through several), 'ai' (AI-written), 'webhook' (from your service), or 'content' (a saved Neuron Note)."}, 'loopCooldownMs': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}]}}, 'additionalProperties': False}
neuron_update_member
Update Member Permissions
Update a member's permissions within the organization, such as conversation access. Only provided fields are changed.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orgId', 'userId', 'canViewConversations'], 'properties': {'orgId': {'type': 'string', 'description': 'Unique identifier (UUID) of the organization'}, 'userId': {'type': 'string', 'description': 'Unique identifier (UUID) of the member to update'}, 'canViewConversations': {'type': 'boolean', 'description': 'Whether the member can view conversations'}}, 'additionalProperties': False}
neuron_update_newsletter
Update Newsletter
Update the name or description of an existing WhatsApp Channel newsletter. Only provided fields are changed.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the newsletter to update'}, 'name': {'type': 'string', 'description': 'New display name for the newsletter'}, 'description': {'type': 'string', 'description': 'New description for the newsletter'}}, 'additionalProperties': False}
neuron_update_organization
Update Organization
Update organization settings such as name, description, or configuration preferences. Only provided fields are changed.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orgId'], 'properties': {'name': {'type': 'string', 'description': 'New display name for the organization'}, 'orgId': {'type': 'string', 'description': 'Unique identifier (UUID) of the organization to update'}, 'autoOptOutBroadcast': {'type': 'boolean', 'description': "Auto-exclude a contact from broadcasts when they send a broadcast opt-out message (e.g. 'stop messaging me'). Off by default."}, 'autoSuppressHostile': {'type': 'boolean', 'description': 'Auto-exclude a contact from broadcasts when they are hostile about being contacted (e.g. cursing us out for messaging them). Off by default.'}}, 'additionalProperties': False}
neuron_update_outbound_webhook
Update Outbound Webhook
Modify an existing outbound webhook's configuration, including its destination URL, subscribed event types, or filter prompt.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the outbound webhook to update'}, 'url': {'type': 'string', 'description': 'Updated destination URL that will receive webhook event payloads (HTTPS recommended)'}, 'name': {'type': 'string', 'description': 'Updated human-readable name for the webhook'}, 'eventTypes': {'type': 'array', 'items': {'enum': ['message.created', 'message.assistant', 'conversation.created', 'conversation.escalated', 'conversation.closed', 'bot.paused', 'bot.resumed'], 'type': 'string'}, 'description': 'Updated array of event types that should trigger this webhook'}, 'filterPrompt': {'type': 'string', 'description': 'Updated LLM prompt for selectively filtering forwarded events'}}, 'additionalProperties': False}
neuron_update_persona
Update Persona
Update a persona's name/description, or hand-tune its voiceProfile / exemplars.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Persona UUID'}, 'name': {'type': 'string'}, 'exemplars': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'description': {'type': 'string'}, 'voiceProfile': {'type': 'object', 'additionalProperties': {}}}, 'additionalProperties': False}
neuron_update_pool_item
Update Pool Item
Update a pool item you have published — metadata (name, description, category, tags) and content fields (setupInstructions, defaultSecrets for tool_template items). The underlying resource is re-snapshotted and version is bumped on every update.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the pool item to update'}, 'name': {'type': 'string', 'description': 'New display name for the pool listing'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'New list of tags for the pool listing'}, 'category': {'type': 'string', 'description': 'New category name for the pool listing'}, 'description': {'type': 'string', 'description': 'New detailed description for the pool listing'}, 'defaultSecrets': {'type': 'object', 'description': "Updated pre-filled secrets auto-populated on install, e.g. { OAUTH2_TOKEN_URL: 'https://...' }", 'additionalProperties': {'type': 'string'}}, 'setupInstructions': {'type': 'string', 'description': 'Updated setup guide shown after installation (tool_template only, max 5000 chars)'}}, 'additionalProperties': False}
neuron_update_privacy_setting
Update Privacy Setting
Update a specific WhatsApp privacy setting. Settings: lastSeen (all/contacts/contact_blacklist/none), online (all/match_last_seen), profilePicture (all/contacts/contact_blacklist/none), status (all/contacts/contact_blacklist/none), readReceipts (all/none), groupsAdd (all/contacts/contact_blacklist).
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'setting', 'value'], 'properties': {'value': {'type': 'string', 'minLength': 1, 'description': 'New value for the setting (see description for allowed values per setting)'}, 'setting': {'enum': ['lastSeen', 'online', 'profilePicture', 'status', 'readReceipts', 'groupsAdd'], 'type': 'string', 'description': 'Privacy setting to update'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_update_product
Update Product
Update any field of a product (price, delivery, cover, enabled, fee payer, …).
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Product UUID'}, 'kind': {'type': ['string', 'null'], 'description': "Short label e.g. 'E-book', 'Presets', 'Service'"}, 'codes': {'type': 'array', 'items': {'type': 'string'}, 'description': "For codeMode 'pool': the unique codes/keys to add (one gets sent per buyer). Appended to any existing pool."}, 'theme': {'type': 'object', 'description': "Per-product theme: { bg, accent, text (hex), mode: 'light'|'dark', layout: 'hero'|'side', coverAspect: '16/10'|'3/2'|'1/1'|'4/5', cta: buy-button label e.g. 'Reserve your hour' }", 'additionalProperties': {'type': 'string'}}, 'title': {'type': 'string', 'description': 'Product title shown to buyers'}, 'content': {'type': 'array', 'description': 'Rich product-page content blocks. Ordered array of {type, ...}: heading {text,level}, text {markdown}, image {url,caption}, video {url}, callout {emoji,text}, collapsible {title,blocks[]}, divider {}, button {label,url}, embed {url}, spacer {}'}, 'enabled': {'type': 'boolean', 'description': 'Whether the product is live'}, 'category': {'type': ['string', 'null'], 'description': "Category label e.g. 'Productivity'"}, 'codeMode': {'enum': ['shared', 'pool', 'generated'], 'type': 'string', 'description': "For deliveryType 'code': 'shared' (same text to every buyer), 'pool' (a unique code per sale from codes you upload â\x80\x94 sells out when empty), or 'generated' (auto-mint a unique license key per sale)"}, 'currency': {'type': 'string', 'description': 'ISO currency (default NGN)'}, 'feePayer': {'enum': ['buyer', 'seller'], 'type': 'string', 'description': "'buyer' (fee added on top, seller gets full price â\x80\x94 default) or 'seller' (fee deducted)"}, 'channelId': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'description': 'WhatsApp session UUID used to deliver the product (defaults to the org default channel)'}, 'coverType': {'enum': ['none', 'emoji', 'image', 'color', 'gradient'], 'type': 'string', 'description': 'How the cover renders'}, 'coverColor': {'type': ['string', 'null'], 'description': "Cover colour (hex) for 'color'/'gradient' cover types"}, 'coverEmoji': {'type': ['string', 'null'], 'description': 'Emoji used as a cover fallback (e.g. ð\x9f\x93\x93)'}, 'membership': {'type': 'boolean', 'description': 'Make this a recurring subscription/membership: it tracks a paid period per buyer, renews from their Neuron wallet when possible (else emails a reminder â\x80\x94 no card auto-charge), and marks them lapsed when the period + grace passes. React to membership.started/renewed/lapsed in Flows to deliver whatever the membership grants.'}, 'priceMinor': {'type': 'integer', 'description': 'Current price (charged). Amount in kobo (minor units): â\x82¦1 = 100. Minimum â\x82¦500 = 50000. Set 0 for a free product (no payment).'}, 'coverColor2': {'type': ['string', 'null'], 'description': "Second colour (hex) for 'gradient' cover"}, 'description': {'type': 'string', 'description': 'Rich description / what the buyer gets'}, 'deliveryText': {'type': ['string', 'null'], 'description': "For 'link'/'code': the link or code the buyer receives. Optional note for 'file'."}, 'deliveryType': {'enum': ['file', 'link', 'code'], 'type': 'string', 'description': "How the product is delivered: 'file' (uploaded file), 'link' (URL), or 'code' (text/code)"}, 'coverImageUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}], 'description': 'Cover image URL'}, 'checkoutFields': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'label', 'type'], 'properties': {'key': {'type': 'string'}, 'type': {'enum': ['text', 'textarea', 'number', 'email', 'phone', 'select'], 'type': 'string'}, 'label': {'type': 'string'}, 'options': {'type': 'array', 'items': {'type': 'string'}}, 'required': {'type': 'boolean'}, 'placeholder': {'type': 'string'}}, 'additionalProperties': False}, 'description': 'Custom checkout questions the buyer answers (name, address, specs/customisationsâ\x80¦). Their answers are attached to the order and sent to the seller.'}, 'deliveryFileUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}], 'description': "For deliveryType 'file': the uploaded file URL (upload first with neuron_upload_media)"}, 'deliveryFileName': {'type': ['string', 'null'], 'description': 'Filename shown in the WhatsApp document'}, 'membershipInterval': {'anyOf': [{'enum': ['daily', 'weekly', 'monthly'], 'type': 'string'}, {'type': 'null'}], 'description': 'Billing period. Required when membership is true.'}, 'originalPriceMinor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'description': "Optional compare-at / 'was' price (kobo), shown struck through. Must be â\x89¥ current price."}, 'membershipGraceDays': {'type': 'integer', 'minimum': 0, 'description': 'Days after the period ends before an unpaid member lapses (and, if a group is attached, is removed from it). Default 1.'}, 'membershipGroupName': {'type': ['string', 'null'], 'description': 'Group subject used when the attached group is auto-created (defaults to the product title). Only relevant with membershipGroupSlug.'}, 'membershipGroupSlug': {'type': ['string', 'null'], 'description': "OPTIONAL: attach a WhatsApp group as a membership perk. Org-unique handle (lowercase letters, numbers, hyphens); the group is created on the first sale, buyers are added on renewal and removed on lapse. Your connected number must be a group admin. Omit for a membership that isn't group-based."}}, 'additionalProperties': False}
neuron_update_profile_name
Update Profile Name
Update the bot's WhatsApp display name on the given channel.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'name'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'New display name'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_update_profile_picture
Update Profile Picture
Update the bot's WhatsApp profile picture from an image URL.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'imageUrl'], 'properties': {'imageUrl': {'type': 'string', 'format': 'uri', 'description': 'URL of the image to set as profile picture'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_update_profile_status
Update Profile Status
Update the bot's WhatsApp status/bio text.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId', 'status'], 'properties': {'status': {'type': 'string', 'minLength': 1, 'description': 'New status/bio text'}, 'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
neuron_update_scheduled_message
Update Scheduled Message
Update the message content, media, or send time of a scheduled message. Only messages with status 'scheduled' can be updated.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the scheduled message to update'}, 'sendAt': {'type': 'string', 'description': 'New ISO 8601 date-time for scheduled delivery (must be in the future)'}, 'message': {'type': 'string', 'description': 'New message text content'}, 'mediaUrl': {'type': 'string', 'description': 'New media URL to attach'}, 'contactName': {'type': 'string', 'description': 'Updated display name for the recipient'}, 'messageType': {'type': 'string', 'description': "New message type: 'text', 'image', 'audio', 'video', or 'document'"}}, 'additionalProperties': False}
neuron_update_social_channel
Update Social Channel
Update an existing social media channel. Can update label, username, or refresh credentials.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the social channel to update'}, 'label': {'type': 'string', 'description': 'New display name for the channel'}, 'username': {'type': 'string', 'description': 'Updated social media username'}, 'credentials': {'type': 'string', 'description': 'Updated session credentials as JSON string'}}, 'additionalProperties': False}
neuron_update_storefront
Update Storefront
Create or update the seller storefront (nestuge-style page). Handle is auto-generated from the display name if omitted.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'bio': {'type': ['string', 'null'], 'description': 'Short store bio'}, 'handle': {'type': 'string', 'description': 'URL handle (a-z, 0-9, hyphens). Becomes /s/<handle>.'}, 'enabled': {'type': 'boolean', 'description': 'Whether the storefront is public'}, 'socials': {'type': 'object', 'description': "Map of social links e.g. { instagram: 'https://...' }", 'additionalProperties': {'type': 'string'}}, 'avatarUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'brandColor': {'type': ['string', 'null'], 'description': 'Hex brand colour e.g. #188A56'}, 'displayName': {'type': 'string', 'description': 'Store display name'}}, 'additionalProperties': False}
neuron_update_task
Update Bot Task
Update a scheduled task's instruction, schedule, timezone, enabled state, or config. Only provided fields change.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the task'}, 'title': {'type': 'string'}, 'config': {'type': 'object', 'properties': {'dryRun': {'type': 'boolean', 'description': 'Simulate the run without actually sending messages.'}, 'channelId': {'type': 'string', 'description': "WhatsApp channel UUID to act on (defaults to the bot's primary)."}, 'maxActions': {'type': 'integer', 'description': 'Hard cap on outbound actions per run (default 25).'}, 'noRepeatDays': {'type': 'integer', 'description': 'Never re-message the same contact within this many days (default 14).'}, 'approvalPhone': {'type': 'string', 'description': 'Admin phone (international format) to send the approval prompt to.'}, 'requiresApproval': {'type': 'boolean', 'description': 'Ask an admin on WhatsApp to approve before the task sends.'}}, 'description': 'Safety / execution config for the task.', 'additionalProperties': False}, 'enabled': {'type': 'boolean'}, 'schedule': {'type': 'object', 'description': "Schedule payload matching scheduleKind. cron: { time: 'HH:MM', days?: number[] } (0=Sunday..6=Saturday; empty/omitted = every day). interval: { everyMinutes: number }. once: { runAt: ISO8601 string }. manual: {}.", 'additionalProperties': {}}, 'timezone': {'type': 'string'}, 'instruction': {'type': 'string'}, 'scheduleKind': {'enum': ['cron', 'interval', 'once', 'manual'], 'type': 'string', 'description': 'cron = recurring at a clock time (slot); interval = every N minutes; once = a single future moment; manual = only runs on demand.'}}, 'additionalProperties': False}
neuron_update_tool
Update Tool
Modify an existing custom API tool's configuration, including its endpoint, authentication, or request template.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the tool to update'}, 'name': {'type': 'string', 'description': 'Updated human-readable name for the tool'}, 'type': {'enum': ['http_api', 'webhook', 'mcp'], 'type': 'string', 'description': 'Updated type of the tool integration'}, 'config': {'type': 'object', 'properties': {'method': {'enum': ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'], 'type': 'string', 'description': 'Updated HTTP method'}, 'headers': {'type': 'object', 'description': 'Updated HTTP headers as key-value pairs', 'additionalProperties': {'type': 'string'}}, 'endpoint': {'type': 'string', 'description': 'Updated target HTTP endpoint URL'}, 'webhookUrl': {'type': 'string', 'description': 'Updated webhook URL'}, 'asyncConfig': {'type': 'object', 'properties': {'jobIdPath': {'type': 'string', 'description': 'Dot-notation path to extract job ID from initial response'}, 'resultPath': {'type': 'string', 'description': 'Dot-notation path to extract final result from completed response'}, 'statusPath': {'type': 'string', 'description': 'Dot-notation path to status field in poll response'}, 'maxPollingMs': {'type': 'number', 'maximum': 300000, 'minimum': 5000, 'description': 'Maximum time to poll before timeout (default: 120000)'}, 'failedStatuses': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Status values indicating failure'}, 'pollingEndpoint': {'type': 'string', 'description': 'URL template with {{jobId}} placeholder for polling job status'}, 'completedStatuses': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Status values indicating completion'}, 'pollingIntervalMs': {'type': 'number', 'maximum': 30000, 'minimum': 500, 'description': 'Milliseconds between poll requests (default: 2000)'}}, 'description': 'Configuration for async submit-poll-download APIs', 'additionalProperties': False}, 'bodyTemplate': {'type': 'string', 'description': 'Updated Handlebars template for the request body'}, 'mcpServerUrl': {'type': 'string', 'description': 'Updated MCP server URL'}, 'parametersSchema': {'type': 'object', 'description': 'Updated JSON Schema for tool parameters', 'additionalProperties': {}}}, 'description': 'Updated tool configuration', 'additionalProperties': False}, 'authType': {'enum': ['none', 'api_key', 'bearer', 'basic', 'oauth2'], 'type': 'string', 'description': 'Updated authentication type'}, 'rateLimit': {'type': 'number', 'description': 'Updated maximum requests per minute'}, 'timeoutMs': {'type': 'number', 'description': 'Updated request timeout in milliseconds'}, 'description': {'type': 'string', 'description': "Updated description of the tool's purpose"}}, 'additionalProperties': False}
neuron_update_webhook
Update Webhook
Modify an existing inbound webhook's configuration, such as its name, event type, or processing prompt.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the webhook to update'}, 'name': {'type': 'string', 'description': 'Updated human-readable name of the webhook'}, 'isActive': {'type': 'boolean', 'description': 'Whether the webhook should be active and accepting requests'}, 'eventType': {'type': 'string', 'description': 'Updated event type this webhook handles'}, 'processingPrompt': {'type': 'string', 'description': 'Updated prompt instructions for processing webhook data'}}, 'additionalProperties': False}
neuron_update_whatsapp_credentials
Update WhatsApp Credentials
Update WhatsApp Business API credentials for the organization. These credentials are required for sending messages via the WhatsApp Cloud API.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['orgId', 'whatsappPhoneNumberId', 'whatsappBusinessAccountId', 'whatsappAccessToken'], 'properties': {'orgId': {'type': 'string', 'description': 'Unique identifier (UUID) of the organization'}, 'whatsappAccessToken': {'type': 'string', 'description': 'WhatsApp access token for API authentication (keep confidential)'}, 'whatsappPhoneNumberId': {'type': 'string', 'description': 'WhatsApp phone number ID from the Meta Business dashboard'}, 'whatsappBusinessAccountId': {'type': 'string', 'description': 'WhatsApp Business Account ID from the Meta Business dashboard'}}, 'additionalProperties': False}
neuron_upload_document
Upload Document
Upload a text document to a knowledge base. The document will be automatically chunked and indexed for semantic search.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'content', 'filename'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier of the knowledge base'}, 'folder': {'type': 'string', 'description': 'Folder path to organize the document within the knowledge base'}, 'content': {'type': 'string', 'description': 'Text content of the document to upload'}, 'filename': {'type': 'string', 'description': 'Name of the file being uploaded'}}, 'additionalProperties': False}
neuron_upload_media
Upload Media
Upload a media file (image, video, audio, or document) by providing its base64-encoded content. Returns a URL for use in messages and broadcasts.
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['base64', 'filename', 'mimetype'], 'properties': {'base64': {'type': 'string', 'description': 'Base64-encoded file content (without data URI prefix)'}, 'filename': {'type': 'string', 'description': "Original filename including extension (e.g., 'photo.jpg', 'report.pdf')"}, 'mimetype': {'type': 'string', 'description': "MIME type of the file (e.g., 'image/jpeg', 'image/png', 'application/pdf', 'video/mp4')"}}, 'additionalProperties': False}
neuron_validate_social_channel
Validate Social Channel
Test whether the stored credentials for a social channel are still valid by making a test API call to the platform.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Unique identifier (UUID) of the social channel to validate'}}, 'additionalProperties': False}
neuron_verify_bank_account
Verify Bank Account
Verify a Nigerian bank account number via Paystack to confirm the account holder name before saving.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['bankCode', 'accountNumber'], 'properties': {'bankCode': {'type': 'string', 'description': "Nigerian bank code (e.g., '058' for GTBank, '044' for Access Bank)"}, 'accountNumber': {'type': 'string', 'description': '10-digit Nigerian bank account number to verify'}}, 'additionalProperties': False}
neuron_verify_wallet_funding
Verify Wallet Funding
Verify a wallet funding transaction using the Paystack payment reference to confirm the payment was successful.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['reference'], 'properties': {'reference': {'type': 'string', 'description': 'Paystack payment reference returned from the checkout session'}}, 'additionalProperties': False}
neuron_wallet_balance
Wallet Balance
Retrieve the current wallet balance for the organization, including available and pending amounts.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_wallet_transactions
Wallet Transactions
Retrieve the wallet transaction history for the organization, with optional filtering by transaction type.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'description': 'Page number for pagination (default: 1)', 'exclusiveMinimum': 0}, 'type': {'type': 'string', 'description': "Filter by transaction type: 'credit' or 'debit'"}, 'limit': {'type': 'integer', 'description': 'Number of transactions per page (default: 20)', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
neuron_webagent_command_history
Web-agent command history
See the launch/stop/open commands queued for the extension and their outcomes (pending|claimed|done|failed, plus the runId a launch created).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}}, 'additionalProperties': False}
neuron_webagent_get_run
Get a web-agent run
Fetch one run's status, config snapshot and latest live stats (captured/flushed/leads/reels/hops/scrolls). status is running|stopped|completed|killed|stale.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['runId'], 'properties': {'runId': {'type': 'string', 'description': 'The agent-run id.'}}, 'additionalProperties': False}
neuron_webagent_kill
Kill a web-agent run
The kill switch — flags a run to stop. It's cooperative: the browser extension stops on its next heartbeat (usually within ~12s) and finalizes the run.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['runId'], 'properties': {'runId': {'type': 'string', 'description': 'The agent-run id to kill.'}}, 'additionalProperties': False}
neuron_webagent_list_runs
List web-agent runs
List browser-mission runs (live + recent). Stale runs (no heartbeat >2min) show as 'stale'. Note the result nests as data.data[].
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'minimum': 1}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'status': {'enum': ['running', 'stopped', 'completed', 'killed', 'stale'], 'type': 'string', 'description': 'Filter by status.'}}, 'additionalProperties': False}
neuron_webagent_open_launcher
Open the web-agent launcher in the browser
Ask the extension to open its Web Agent panel so the user can review/adjust a mission before it runs. Delivered on the extension's next poll.
Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
neuron_webagent_run
Launch a web-agent browser mission
Queue a browser mission for the user's Neuron extension to run — mine content into a Collection or prospects into the lead pool. Returns a command id; the extension picks it up on its next poll (so the browser must be open, signed in, and remote-control enabled in the extension). Watch it with neuron_webagent_list_runs / neuron_webagent_get_run and stop it with neuron_webagent_kill.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['mission', 'platform'], 'properties': {'hop': {'type': 'object', 'required': ['enabled'], 'properties': {'enabled': {'type': 'boolean'}, 'maxHops': {'type': 'integer'}, 'maxPages': {'type': 'integer'}, 'followBioLinks': {'type': 'boolean'}}, 'description': 'active posture: multi-hop navigation from seeds.', 'additionalProperties': False}, 'url': {'type': 'string', 'format': 'uri', 'description': 'Optional page to open the mission on (else the platform home / active tab).'}, 'caps': {'type': 'object', 'properties': {'maxScrolls': {'type': 'integer', 'exclusiveMinimum': 0}, 'targetItems': {'type': 'integer', 'exclusiveMinimum': 0}, 'maxDurationMin': {'type': 'integer', 'exclusiveMinimum': 0}}, 'description': 'Stop conditions.', 'additionalProperties': False}, 'sink': {'enum': ['collection', 'lead-pool'], 'type': 'string', 'description': 'Where output goes (defaults to match the mission).'}, 'seeds': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'description': 'active posture: starting URLs (hashtag/search/profile pages) to crawl from.'}, 'pacing': {'enum': ['gentle', 'normal', 'brisk'], 'type': 'string', 'description': 'Speed/rate (default normal).'}, 'mission': {'enum': ['content', 'leads'], 'type': 'string', 'description': 'content = capture posts into a Collection; leads = capture prospects into the lead pool.'}, 'posture': {'enum': ['read-only', 'read-light', 'active'], 'type': 'string', 'description': "How much it interacts (default read-light; 'active' enables hop + cinematic)."}, 'leadTags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'leads mission: tags to attach to captured leads.'}, 'platform': {'enum': ['ig', 'x', 'tk', 'li', 'fb'], 'type': 'string', 'description': 'ig=Instagram, x=X/Twitter, tk=TikTok, li=LinkedIn, fb=Facebook.'}, 'cinematic': {'type': 'object', 'required': ['enabled'], 'properties': {'enabled': {'type': 'boolean'}, 'maxFrames': {'type': 'integer', 'maximum': 8, 'minimum': 2}}, 'description': 'active posture: cinematic reel/video capture.', 'additionalProperties': False}, 'collectionName': {'type': 'string', 'description': 'content mission: the Collection to fill (created if new).'}}, 'additionalProperties': False}
neuron_webagent_stop
Ask the web agent to stop (graceful)
Queue a graceful stop for the current mission (the extension finalizes it). For an immediate hard stop of a specific run, use neuron_webagent_kill.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'runId': {'type': 'string', 'description': 'Specific run to stop (else the active one).'}}, 'additionalProperties': False}
neuron_whoami
Check Current Account
Check which Neuron account is currently logged in, including user name, email, role, and organization.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Añadido
neuron_delete_flow_run
21 de September de 2026 a las 02:50
Añadido
neuron_google_calendar_disconnect
17 de September de 2026 a las 12:41
Añadido
neuron_google_calendar_status
17 de September de 2026 a las 12:41
Añadido
neuron_team_availability
17 de September de 2026 a las 12:41
Añadido
neuron_delete_override
17 de September de 2026 a las 12:41
Añadido
neuron_set_override
17 de September de 2026 a las 12:41
Añadido
neuron_list_overrides
17 de September de 2026 a las 12:41
Añadido
neuron_update_availability
17 de September de 2026 a las 12:41
Añadido
neuron_get_availability
17 de September de 2026 a las 12:41
Añadido
neuron_update_booking_notes
17 de September de 2026 a las 12:41
Añadido
neuron_mark_no_show
17 de September de 2026 a las 12:41
Añadido
neuron_complete_booking
17 de September de 2026 a las 12:41
Añadido
neuron_reschedule_booking
17 de September de 2026 a las 12:41
Añadido
neuron_cancel_booking
17 de September de 2026 a las 12:41
Añadido
neuron_confirm_booking
17 de September de 2026 a las 12:41
Añadido
neuron_get_booking
17 de September de 2026 a las 12:41
Añadido
neuron_list_bookings
17 de September de 2026 a las 12:41
Añadido
neuron_delete_event
17 de September de 2026 a las 12:41
Añadido
neuron_update_event
17 de September de 2026 a las 12:41
Añadido
neuron_list_events
17 de September de 2026 a las 12:41
Añadido
neuron_create_event
17 de September de 2026 a las 12:41
Añadido
neuron_get_available_slots
17 de September de 2026 a las 12:41
Añadido
neuron_delete_event_type
17 de September de 2026 a las 12:41
Añadido
neuron_update_event_type
17 de September de 2026 a las 12:41
Añadido
neuron_create_event_type
17 de September de 2026 a las 12:41
Añadido
neuron_get_event_type
17 de September de 2026 a las 12:41
Añadido
neuron_list_event_types
17 de September de 2026 a las 12:41
Añadido
neuron_delete_calendar
17 de September de 2026 a las 12:41
Añadido
neuron_update_calendar
17 de September de 2026 a las 12:41
Añadido
neuron_create_calendar
17 de September de 2026 a las 12:41