create_assistant
Build a custom AI assistant with detailed settings, including name, welcome message, AI platform, and integrations like Google Calendar and Twilio for tailored voice or text interactions.
Instructions
Create a new assistant with comprehensive configuration
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| active | No | Whether assistant is active | |
| ai_platform | No | AI Provider | |
| apiKey | Yes | OpenAI API Key | |
| assistant_type | No | AI Type | |
| booking_bot | No | Is booking bot | |
| calendar | No | Calendar ID | |
| custom_field | No | Custom field | |
| elevenlabs_voice_id | No | ElevenLabs Voice ID | |
| google_calendar | No | Google Calendar Integration | |
| limit_call_time | No | Limit call time in seconds | |
| limit_call_tokens | No | Limit call tokens | |
| location | No | GoHighLevel Location | |
| max_call_tokens | No | Max call tokens | |
| name | Yes | Assistant name | |
| openai_model | No | AI Model | gpt-3.5-turbo |
| openai_realtime | No | OpenAI Realtime | |
| openai_realtime_voice | No | OpenAI Realtime Voice | |
| openai_temperature | No | AI Temperature (0-2) | |
| openai_websites | No | OpenAI Websites | |
| prompt | No | Instructions/Prompt for the assistant | |
| timezone | No | Timezone | |
| twilio_initial_delay | No | Twilio Initial Delay | |
| twilio_phone | No | Twilio Phone Number | |
| twilio_sid | No | Twilio SID | |
| twilio_speech_timeout | No | Twilio Speech Timeout | |
| twilio_token | No | Twilio Token | |
| twilio_welcome | No | Twilio Welcome Message | |
| webhook_to_send | No | Webhook URL | |
| welcome_message | No | Welcome message | Hello how can I help you today? |
Implementation Reference
- index.js:166-204 (registration)Registers the 'create_assistant' tool including its description and detailed input schema in the ListTools response.{ name: 'create_assistant', description: 'Create a new assistant with comprehensive configuration', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Assistant name' }, apiKey: { type: 'string', description: 'OpenAI API Key' }, welcome_message: { type: 'string', description: 'Welcome message', default: 'Hello how can I help you today?' }, prompt: { type: 'string', description: 'Instructions/Prompt for the assistant' }, active: { type: 'boolean', description: 'Whether assistant is active', default: true }, assistant_type: { type: 'string', enum: ['Text Only', 'Voice Only', 'Text & Voice', 'Voice & Text'], description: 'AI Type' }, ai_platform: { type: 'string', enum: ['openai', 'gemini', 'openrouter', 'deepseek'], description: 'AI Provider' }, openai_model: { type: 'string', description: 'AI Model', default: 'gpt-3.5-turbo' }, openai_temperature: { type: 'number', description: 'AI Temperature (0-2)', default: 0.8 }, booking_bot: { type: 'boolean', description: 'Is booking bot', default: false }, location: { type: 'string', description: 'GoHighLevel Location' }, calendar: { type: 'string', description: 'Calendar ID' }, timezone: { type: 'string', description: 'Timezone' }, custom_field: { type: 'string', description: 'Custom field' }, limit_call_time: { type: 'number', description: 'Limit call time in seconds', default: 240 }, limit_call_tokens: { type: 'number', description: 'Limit call tokens', default: 2000 }, max_call_tokens: { type: 'number', description: 'Max call tokens', default: 18000 }, elevenlabs_voice_id: { type: 'string', description: 'ElevenLabs Voice ID' }, twilio_sid: { type: 'string', description: 'Twilio SID' }, twilio_token: { type: 'string', description: 'Twilio Token' }, twilio_phone: { type: 'string', description: 'Twilio Phone Number' }, twilio_welcome: { type: 'string', description: 'Twilio Welcome Message' }, twilio_speech_timeout: { type: 'number', description: 'Twilio Speech Timeout', default: 3 }, twilio_initial_delay: { type: 'number', description: 'Twilio Initial Delay', default: 1 }, google_calendar: { type: 'boolean', description: 'Google Calendar Integration', default: false }, webhook_to_send: { type: 'string', description: 'Webhook URL' }, openai_realtime: { type: 'boolean', description: 'OpenAI Realtime', default: false }, openai_realtime_voice: { type: 'string', enum: ['alloy', 'echo', 'fable', 'nova', 'onyx', 'shimmer'], description: 'OpenAI Realtime Voice' }, openai_websites: { type: 'array', items: { type: 'string' }, description: 'OpenAI Websites' } }, required: ['name', 'apiKey'] } },
- index.js:556-560 (handler)Executes the 'create_assistant' tool by preparing a POST request to the backend /assistants endpoint with filtered arguments.case 'create_assistant': url = `${this.baseUrl}/assistants`; method = 'POST'; body = this.filterEmptyValues(args); break;
- index.js:722-730 (helper)Utility function to remove undefined, null, or empty string values from the tool arguments object before API submission.filterEmptyValues(obj) { const cleaned = {}; for (const [key, value] of Object.entries(obj)) { if (value !== undefined && value !== null && value !== '') { cleaned[key] = value; } } return cleaned; }