neuron
Ce que fait ce MCP
Operates AI chatbots and messaging workflows across WhatsApp and social channels, including contacts, campaigns, conversations, products, and bookings.
Outils
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Booking UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Booking UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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: , <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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Calendar UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Event type UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Campaign ID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['overrideId'], 'properties': {'overrideId': {'type': 'string', 'description': 'Override UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Persona UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Product UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the task'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Order UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendarId'], 'properties': {'calendarId': {'type': 'string', 'description': 'Calendar UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId'], 'properties': {'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Booking UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Calendar UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['collectionId'], 'properties': {'collectionId': {'type': 'string', 'description': 'The collection id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Event type UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the flow.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['runId'], 'properties': {'runId': {'type': 'string', 'description': 'UUID of the run.'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Campaign ID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Persona UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId'], 'properties': {'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Product UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaignId'], 'properties': {'campaignId': {'type': 'string', 'description': 'UUID of the SMS campaign'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendarId'], 'properties': {'calendarId': {'type': 'string', 'description': 'Calendar UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calendarId'], 'properties': {'calendarId': {'type': 'string', 'description': 'Calendar UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'calendarId': {'type': 'string', 'description': 'Filter by calendar UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['botId'], 'properties': {'botId': {'type': 'string', 'description': 'UUID of the bot'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Booking UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Campaign ID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Order UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channelId'], 'properties': {'channelId': {'type': 'string', 'description': 'WhatsApp channel identifier (UUID)'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Campaign ID'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Lead source UUID'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'Campaign ID'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the task'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'UUID of the task'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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 , <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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['runId'], 'properties': {'runId': {'type': 'string', 'description': 'The agent-run id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'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}
Schéma d’entrée
{'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}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Modifications récentes des outils
Serveurs MCP similaires
Emailchaser
Manages cold-email campaigns, leads, sender mailboxes, sequences, outreach automation, deliverability, prospect sourcing, webhook…
send16-mcp
Provides email marketing and transactional messaging tools for contacts, audiences, campaigns, templates, automations, analytics,…
agent-cold-email
Manages cold-email infrastructure, lead lists, campaigns, mailbox provisioning, sending, replies, suppression, and deliverability…
PersuadioAI
Manages leads and outreach campaigns, supports audience selection and message drafting, analyzes responses, and launches SMS camp…
bird
Reads Bird workspace email, SMS, and WhatsApp messages and manages contacts and audiences through additive CRM operations.
Smartwebchat
Creates and manages website chatbots, tests responses, diagnoses deployment issues, captures leads, and updates lead statuses.
loops
Manages Loops contacts and custom properties, mailing lists, event-triggered automations, and transactional email delivery.
Bottled
Manages branded domain email, aliases, contacts, drafts, one-to-one messages, campaigns, delivery controls, domain verification, …