Module Fields
Each AI module record holds the following fields:| Field | Type | Required | Description |
|---|---|---|---|
tenant_id | integer | Yes | The tenant this module belongs to |
name | string | Yes | A human-readable label for the module, max 255 chars |
module_type | string | Yes | The functional role of the module (see below), max 100 chars |
provider | string | Yes | The AI provider to use (e.g. openai, vapi), max 100 chars |
status | string | Yes | Whether the module is active or inactive, max 50 chars |
config | JSON object | No | Provider-specific configuration key/value pairs |
config is stored and returned as a JSON object. When submitting via the admin panel form, enter valid JSON in the config textarea — the platform calls json_decode on the raw string before saving.Module Types
Themodule_type field controls what the AI module actually does when attached to a call flow. Based on the platform’s AI sub-system, the following module types are supported:
module_type | Description |
|---|---|
AiLeadAgent | A voice AI agent that answers inbound calls, converses with callers, and qualifies them as leads. Configurable with voice_name, language, llm_model, system_prompt, and an optional handoff_destination for live agent transfer. |
AiLeadCampaign | An outbound dialling campaign that pairs an AI lead agent with a target DID and source number. Drives automated outreach to a list of contacts and tracks outcomes per call. |
AiLeadProduct | Associates the module with a specific product offering defined by product_type and api_scope, allowing the AI to present or qualify callers against a product catalogue. |
Creating an AI Module
Select a tenant and set the basics
Choose the
tenant_id from the dropdown. Enter a descriptive name, select the module_type that matches your use case, and choose the provider (e.g. openai, vapi). Set status to active when you are ready to enable the module.Supply the provider config
In the Config textarea, enter a valid JSON object with the settings your provider requires. See the example below for a VAPI-backed lead agent.
config example — VAPI lead agent
Tenant Isolation
Every AI module is scoped to a single tenant viatenant_id. Modules from one tenant are never accessible to another tenant’s call flows or admin users. This lets you run different AI providers and prompt strategies per tenant on the same LaraCopilot instance.