Rapls AI Chatbot Manual (Pro Edition)
Version 1.9.10 | PHP 7.4+ | WordPress 6.3+ | Requires Free 1.20.0+
The Pro edition includes all Free features plus the advanced capabilities documented below.
For settings available in the Free version, please refer to the Free Manual.
All Pro settings are found under AI Chatbot → Pro Settings in the WordPress admin menu. The Pro Settings page is organized into 6 groups (tabs) with a total of 33 sub-tabs.
Group 1: CUSTOMER
Customer-facing settings that control how visitors interact with the chatbot. This group contains 7 sub-tabs: Lead Capture, Offline, Conversion, UI, Badge Icon, Footer & CSS, and Chat Features.
Lead Capture
Configure under AI Chatbot > Pro Settings > CUSTOMER > Lead Capture.
Show a form that collects the visitor’s contact details before the chat starts. Lead data is stored in the wp_raplsaich_leads database table and can be exported as CSV or JSON. Leads can also be sent to external services in real time through the Webhook or Google Sheets integrations.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable Lead Capture | lead_capture_enabled | Disabled | Show lead capture form before chat |
| Require Lead Info | lead_capture_required | Disabled | Require lead information before allowing chat. When off, visitors can skip the form. |
| Form Title | lead_form_title | Before we start | Heading displayed at the top of the form |
| Form Description | lead_form_description | Please enter your information | Text below the form title |
| Email Notification | lead_notification_enabled | Disabled | Send email notification for new leads |
| Email Notification (address) | lead_notification_email | Empty | Leave empty to use admin email. |
Capture Fields (lead_fields)
| Field | Default | Required | Type |
|---|---|---|---|
| Name | Enabled | Required | text |
| Enabled | Required | email | |
| Phone | Disabled | Optional | tel |
| Company | Disabled | Optional | text |
Custom Fields (lead_custom_fields)
Add fields beyond name/email/phone/company. Each field has a label, a type (text, email, tel, textarea, select) and a required flag; a select field takes comma-separated options. Custom fields are saved in the custom_fields column alongside lead data.
Example:
- Label: Department, Type: text, Required: no
- Label: Inquiry Type, Type: select, Required: yes
Options: Product,Pricing,Demo request,Other Lead Export
Export collected leads from the Leads page in CSV or JSON format. Date range filters are available.
How to Configure Lead Capture:
- Go to AI Chatbot → Pro Settings → CUSTOMER → Lead Capture
- Check “Show lead capture form before chat”
- Choose whether lead information is required
- Customize the form title and description
- Enable the fields you want to collect (name, email, phone, company)
- Optionally add custom fields
- To be notified by email, check “Send email notification for new leads” and enter an address
- Save settings
Offline Messages
Configure under AI Chatbot > Pro Settings > CUSTOMER > Offline.
Outside business hours, visitors can leave a message through an offline form instead of chatting with the AI. Messages are saved as leads and can be emailed to your team. Works together with Business Hours.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable Offline Form | offline_message_enabled | Disabled | Show offline message form outside business hours |
| Form Title | offline_form_title | We are currently offline | Title of the offline form |
| Form Description | offline_form_description | Please leave a message and we will get back to you. | Text below the form title |
| Email Notification | offline_notification_enabled | Disabled | Send email notification when offline message is received |
| Notification Email | offline_notification_email | Empty | Leave empty to use admin email. |
How to Configure:
- Set up and enable Business Hours first
- Go to AI Chatbot → Pro Settings → CUSTOMER → Offline
- Check “Show offline message form outside business hours”
- Customize the form title and description
- Enable the email notification and set the recipient address
- Save settings
Conversion Tracking
Track when a chat leads to a desired outcome: when a visitor who chatted opens a goal URL, it is recorded as a conversion for that chat session. Conversion counts and the conversion rate appear in the Analytics dashboard.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable Tracking | conversion_tracking_enabled | Disabled | Master toggle for conversion tracking |
| Conversion Goals | conversion_goals | Empty | A list of goals, each with a goal name and a URL pattern. Add rows with the “Add Goal” button |
URL patterns can be plain text (substring match) or regular expressions. A value that is not a valid regular expression is treated as a plain substring. Examples:
/thank-you /order-complete ^https://.*\/checkout\/success
How to Configure:
- Go to AI Chatbot → Pro Settings → CUSTOMER → Conversion
- Check “Enable conversion tracking”
- Enter a goal name and a URL pattern; click “Add Goal” for more
- Save settings
- View conversion data in AI Chatbot → Analytics
UI Customization
Configure under AI Chatbot > Pro Settings > CUSTOMER > UI.
Customize the appearance and behavior of the chatbot widget beyond the standard theme settings available in the Free version.
| Setting | Key | Default | Description |
|---|---|---|---|
| Welcome Screen | welcome_screen_enabled | Disabled | Show welcome screen when chat opens |
| Welcome Screen (title) | welcome_screen_title | Empty | Heading on the welcome screen |
| Welcome Screen (message) | welcome_screen_message | Empty | Body text on the welcome screen |
| Quick start buttons | welcome_screen_buttons | Empty | Entered comma-separated; tapping a button sends that question |
| Fullscreen Mode | fullscreen_mode | Disabled | Show fullscreen toggle button in chat header |
| Response Delay | response_delay_enabled | Disabled | Add typing delay before showing AI response |
| Response Delay (ms) | response_delay_ms | 500 | Delay in milliseconds |
| Notification Sound | notification_sound_enabled | Disabled | Play sound when bot responds |
| Tooltips | tooltips_enabled | Disabled | Show tooltips on icon buttons |
| Custom Font | custom_font | Default (System) | Pick a font from the list (Inter, Roboto, Noto Sans JP, M PLUS Rounded 1c, and more). It is loaded from Google Fonts and applied to the whole widget; no URL or custom CSS is needed |
| Seasonal Theme | seasonal_theme | None | Seasonal decoration: spring, summer, autumn, winter, Christmas, or Halloween |
Badge Icon
Configure under AI Chatbot > Pro Settings > CUSTOMER > Badge Icon.
Customize the floating chat badge icon. Choose a preset icon, an emoji, or upload a custom image.
| Setting | Key | Default | Description |
|---|---|---|---|
| Icon Type | badge_icon_type | default | default: Default (speech bubble) / preset: Preset icon / image: Custom image / emoji: Emoji |
| Select Preset | badge_icon_preset | Empty | 25 SVG icons: headset, question, message, robot, sparkle, heart, lightning, help-circle, chat-smile, notification, mic, code, terminal, wifi, rocket, analytics, search, diamond, crown, fire, music, camera, palette, pets, fitness |
| Badge Image | badge_icon_image | Empty | Choose from the Media Library. Recommended: square image, at least 72x72px. |
| Badge Emoji | badge_icon_emoji | Empty | Enter a single emoji character. |
The badge position is set in the Free plugin’s display settings.
Hierarchical Preset Question Buttons (Pro 1.6.0+)
Configure under AI Chatbot > Pro Settings > CUSTOMER > UI, in the “Hierarchical Preset Buttons” section.
Free’s preset buttons are flat (up to 10 entries). Pro adds a two-level “Group ▸ Child” structure with up to 8 groups × 8 children = 64 entries. The widget first shows the group buttons; tapping a group reveals its children with an automatic “← Back” navigation.
Setting keys: hierarchical_presets_enabled / hierarchical_presets
Per-level structure:
| Level | Field | Description |
|---|---|---|
| Group | Label | Text shown on the group button (max 40 chars) |
| Children | Up to 8 child entries per group | |
| Child | Label | Text shown on the child button (max 40 chars) |
| Question | Actual question sent to the AI on click (max 200 chars). Same semantics as Free presets | |
| Fixed response | Optional canned reply that bypasses the AI (max 1000 chars; matches Free 1.6.6+) |
Drag & drop reordering (Pro 1.6.5+):
Each row has a drag handle ⋮⋮ on the left. Drag to reorder both groups and children:
- Group handle: moves the entire group (header + all its children) up or down
- Child handle: moves a child within the same group only. Cross-group drops are blocked — dropping outside the source group snaps the child back
- Saving order: click Save Changes and the DOM order is persisted as-is. No separate reorder button
Group button color (adjusted in Free 1.7.6+):
Before 1.7.6, group buttons used the primary brand color, which clashed visually with user message bubbles (matsuura’s feedback). From 1.7.6, group buttons render in neutral grey to read clearly as “tap to expand” UI. Child buttons retain the same styling as Free flat presets.
Click analytics (Pro 1.6.1+):
The Analytics dashboard’s “Preset question clicks” panel shows hierarchical entries in Group ▸ Child form. (Pro 1.6.0 had a bug where labels stayed as “Preset #N”; fixed in 1.6.1.)
Per-Bot Preset Questions (Pro 1.5.0+)
Configured per bot under AI Chatbot > Pro Settings > OPERATIONS > Chatbots.
In a multi-bot setup (see Multiple Chatbots), each bot has its own independent preset question buttons. Pages routed to different bots can show different question suggestions tailored to each bot’s domain.
Behavior:
- Each bot can be flat or hierarchical, independently of the others
- Whichever bot is resolved by page assignment or intent routing has its presets applied automatically
- Click counts are aggregated per bot in Analytics, with the bot name shown alongside the entry in the “Preset question clicks” panel
Footer & CSS
Configure under AI Chatbot > Pro Settings > CUSTOMER > Footer & CSS.
Add a custom branded footer to the chatbot widget and inject custom CSS to fine-tune its appearance.
As of v1.5.1, the Free edition no longer shows a “Powered by Rapls AI Chatbot” footer by default. Pro lets you add your own footer — your brand, a disclaimer, or a link.
| Setting | Key | Default | Description |
|---|---|---|---|
| Footer Message | white_label_footer | Empty | Displayed at the bottom of the chatbot window. Leave empty to hide. Shown as plain text (HTML is not rendered) |
| Link URL (optional) | white_label_footer_url | Empty | URL adds a link to the text |
| Link target | white_label_footer_target | _blank | New tab (_blank) or Same tab (_self) |
| Custom CSS | custom_css | Empty | Add custom CSS to further customize the chatbot appearance. |
There is no separate on/off switch: the footer appears when Footer Message has text and disappears when it is empty.
Custom CSS Examples:
/* Change the chat header background */
.wp-ai-chatbot .chatbot-header {
background: linear-gradient(135deg, #667eea, #764ba2) !important;
}
/* Make the message bubbles rounder */
.wp-ai-chatbot .chatbot-message__content {
border-radius: 20px !important;
}
/* Change the user message bubble color */
.wp-ai-chatbot .chatbot-message--user .chatbot-message__content {
background: #e3f2fd !important;
color: #1a237e !important;
}
/* Increase the message font size */
.wp-ai-chatbot .chatbot-messages {
font-size: 16px !important;
}
/* Hide the bot avatar next to messages */
.wp-ai-chatbot .chatbot-message__avatar {
display: none !important;
}
/* Custom scrollbar */
.wp-ai-chatbot .chatbot-messages::-webkit-scrollbar {
width: 6px;
}
.wp-ai-chatbot .chatbot-messages::-webkit-scrollbar-thumb {
background: #ccc;
border-radius: 3px;
} .chatbot-badge (floating open button), .chatbot-window (chat window), .chatbot-input (input area), .chatbot-footer-branding (footer message), .chatbot-welcome-screen (welcome screen). Use your browser’s developer tools (F12) to find others. !important may conflict with theme styles. Always preview in both desktop and mobile views. Group 2: AI
AI-powered features that enhance the chatbot’s intelligence and response quality. This group contains 4 sub-tabs.
AI Enhancement
Configure under AI Chatbot > Pro Settings > AI > AI Enhancement.
Toggle and configure AI-powered features that enhance the chat experience beyond basic Q&A.
Pro’s AI features (analytics, audit logging, webhooks, the LINE channel, FAQ generation, and so on) use whichever chat provider is active in Free (1.7.0+). If you select the WordPress AI Client (Connectors) provider in Free, no Pro-side configuration is needed.
| Setting | Key | Default | Description |
|---|---|---|---|
| Related Suggestions | related_suggestions_enabled | Disabled | Show related question suggestions after each response |
| Autocomplete | autocomplete_enabled | Disabled | Show autocomplete suggestions while typing |
| Regenerate Button | show_regenerate_button | Enabled | Show regenerate button on bot messages |
| Sentiment Analysis | sentiment_analysis_enabled | Disabled | Analyze user emotions and adjust AI response tone (frustrated / confused / urgent / positive / negative / neutral) |
| Context Memory | context_memory_enabled | Disabled | Remember conversation context across sessions |
| Context Memory (days) | context_memory_days | 30 | How long to keep remembered context |
| Multimodal Support | multimodal_enabled | Disabled | Allow users to upload and analyze images |
| Multimodal Support (max size) | multimodal_max_size | 2048 (KB) | Maximum image size |
| Allowed formats | multimodal_formats | jpg, png, gif, webp | Accepted image types |
| File Upload | file_upload_enabled | Disabled | Allow users to upload files (PDF, Word, etc.) |
| File Upload (max size) | file_upload_max_size | 5120 (KB) | Maximum file size |
| Allowed file types | file_upload_types | pdf, doc, docx, txt, csv | Accepted document types |
| Voice Input | voice_input_enabled | Disabled | Enable microphone button for speech-to-text input |
| Text-to-Speech | tts_enabled | Disabled | Enable TTS toggle button to read bot responses aloud |
| TTS Language | tts_lang | Empty (auto) | Language code for text-to-speech and voice input (e.g., ja, en-US). Leave empty to auto-detect from site language. |
| AI Content Generation | ai_content_enabled | Disabled | “Enable AI Assistant sidebar in the block editor”. See AI Tools |
wp_raplsaich_user_context table. On returning visits, this context is included in the system prompt so the AI can reference past interactions. - OpenAI: every model offered (GPT-6 Astra, GPT-6.1 Sol, GPT-6 Luna, GPT-5.6 Sol / Terra / Luna, GPT-5.2, GPT-5.2 Pro, GPT-4.1, GPT-4.1 mini, GPT-4o, GPT-4o mini)
- Claude: every model offered (Claude Opus 5.5, Sonnet 5.5, Haiku 4.5, Sonnet 4.6, Opus 4.6, Opus 4.5)
- Gemini: every model offered (Gemini 3.8 Flash, 3.7 Flash, 3.6 Flash, 3.5 Flash, 3.5 Flash Lite, 3.1 Flash Lite, 3.1 Pro and 3 Flash preview, 2.5 Pro, 2.5 Flash, 2.5 Flash Lite)
AI Prompts
Configure under AI Chatbot > Pro Settings > AI > AI Prompts.
Choose an industry prompt template to use as the system prompt, and customize the prompts that Pro features send to the AI.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable Prompt Templates | prompt_templates_enabled | Disabled | Use a prompt template as the system prompt |
| Active template | active_prompt_template | Empty | ID of the template in use |
| Template edits | prompt_template_overrides | Empty | Your edits to a template’s prompt text. Dynamic variables like {site_name} will be replaced automatically |
20 industry templates are available: customer_support, ecommerce, educational, faq, appointment, restaurant, real_estate, saas_tech, healthcare, business_consulting, legal_consulting, landing_page, corporate, blog_media, recruitment, travel_hotel, fitness_wellness, nonprofit, event, membership.
Customizable prompts:
| Prompt | Key | Used for |
|---|---|---|
| Sentiment Detection Prompt | sentiment_prompt | Classifying the sentiment of a message |
| Tone adjustment (per sentiment) | sentiment_tone_frustrated etc. | Tone instruction added for each sentiment |
| Related Suggestions Prompt | suggestions_prompt | Generating follow-up question suggestions |
| Conversation Summary Prompt | pro_summary_prompt | Summarizing conversations |
| Context Extraction Prompt | context_extraction_prompt | Extracting what to remember from a conversation |
| Context Memory Template | context_memory_prompt | Injecting remembered context into the system prompt |
| FAQ Generation Prompt | faq_generation_prompt | Drafting FAQ answers from knowledge gaps |
{message} (user message), {conversation} (conversation history), {question} (question text), and {summary} / {topics} / {preferences} / {last_date} (context memory). Template text can also use Dynamic Variables such as {site_name} and {business_hours}. External Learning
Configure under AI Chatbot > Pro Settings > AI > External Learning.
Crawl pages outside your WordPress site and add them to the knowledge the chatbot answers from.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable | external_learning_enabled | Disabled | Crawl external URLs for RAG context |
| URLs | external_urls | Empty | Enter one URL per line. Content will be crawled and indexed during scheduled site learning. |
Test Mode
Configure under AI Chatbot > Pro Settings > AI > Test Mode.
When enabled, the chatbot returns a fixed response without calling the AI API, so you can check the widget and conversation flow without API cost.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable | test_mode_enabled | Disabled | Enable test mode |
| Test Response | test_mode_response | Empty | The response returned to all users when test mode is active. When empty: “This is a test mode response. The AI API is not being called.” |
Group 3: OPERATIONS
Operational settings that control how the chatbot functions in your business workflows. This group contains 7 sub-tabs.
Business Hours
Configure under AI Chatbot > Pro Settings > OPERATIONS > Business Hours.
Define your operating hours. Outside business hours the chatbot shows a special message, or the offline form if enabled. The schedule is also available as the {business_hours} dynamic variable.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable Business Hours | business_hours_enabled | Disabled | Show special message outside business hours. When off, the chatbot runs 24/7 |
| Timezone | business_hours_timezone | Asia/Tokyo | Timezone for schedule calculations |
| Business Hours Schedule | business_hours | Mon–Fri 09:00–18:00 | Start/end time per day; each day can be enabled or disabled (Sat/Sun default to 10:00–17:00, disabled) |
| Outside Hours Message | outside_hours_message | We are currently outside business hours… | Message shown to visitors outside hours |
| Holidays | holidays_enabled | Disabled | Enable holiday schedule |
| Holiday Dates | holidays | Empty | One date per line (YYYY-MM-DD format). |
| Holiday Message | holiday_message | We are closed today… | Message shown on holidays |
Example: Complete Business Hours Configuration
Timezone: America/New_York Monday: 09:00 - 18:00 Tuesday: 09:00 - 18:00 Wednesday: 09:00 - 18:00 Thursday: 09:00 - 18:00 Friday: 09:00 - 17:00 Saturday: 10:00 - 14:00 Sunday: Closed Holidays: 2026-01-01 (New Year's Day) 2026-07-04 (Independence Day) 2026-12-25 (Christmas Day) 2026-12-31 (New Year's Eve)
Handoff
Configure under AI Chatbot > Pro Settings > OPERATIONS > Handoff.
Hand a conversation over from the AI to a human operator, triggered by keywords or by the visitor’s request.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable Handoff | human_handoff_enabled | Disabled | Enable live agent handoff |
| Auto-detect Keywords | handoff_auto_detect | Enabled | Automatically detect handoff requests from keywords |
| Auto-detect Keywords (English) | handoff_keywords | Empty | Comma-separated keywords that trigger handoff (English). |
| Auto-detect Keywords (Japanese) | handoff_auto_keywords_ja | 人間と話したい,オペレーター,サポートに繋いで,担当者 | Comma-separated keywords that trigger handoff (Japanese). |
| Handoff Message | handoff_message | I understand this may need human assistance… | Message shown to the visitor when handoff is triggered. |
| Notification Method | handoff_notification_method | email / slack / both | |
| Notification Email | handoff_email | Empty | Leave blank to use the site admin email. |
| Slack Webhook URL | handoff_slack_webhook_url | Empty | Slack Incoming Webhook URL for handoff notifications. |
| Auto-close (minutes) | operator_auto_close_minutes | 30 | Automatically close handoff sessions after this many minutes of inactivity. |
Operator Mode
An operator can reply directly to a conversation that is in handoff from the admin screen. There is no separate setting for operator mode on the settings screen (the operator_mode_enabled / operator_takeover_message keys are saved but have no effect in the current version).
Operator Mode: Step-by-Step Handoff Process
- Trigger: The visitor types a handoff keyword (e.g., “speak to a human”).
- Notification: The operator team is alerted by email, Slack, or both.
- Operator Login: An operator logs into WordPress and navigates to AI Chatbot → Conversations.
- Find Conversation: Look for conversations with the “Handoff” status indicator.
- Take Over: Open the conversation and reply as the operator. AI API calls are skipped while the handoff is active.
- Chat Directly: The operator types responses directly to the visitor in real time.
- Close or Resume AI: When done, end the handoff and the conversation returns to the AI.
AI Forms
Configure under AI Chatbot > Pro Settings > OPERATIONS > AI Forms.
Create AI-powered forms that collect user input and generate AI responses. Place a form on any page with its shortcode.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable AI Forms | ai_forms_enabled | Disabled | Enable AI Forms shortcode |
| Forms | ai_forms | Empty | The list of defined forms |
Each form consists of:
- ID — generated when the form is saved, from the letters and digits of the form name plus a random number (e.g.
quote_4821). Click the shortcode in the form list to copy it - Form Name and Description
- System Prompt — instructions for AI behavior
- Prompt Template — use
{field_key}placeholders - Form Fields — label, key, type (
text,email,tel,number,textarea,select), required;selecttakes comma-separated options - Submit Button Label
- Email Notification — send submission notification
Example: Quote Calculator Form
Form Name: Quote
Description: Fill in the details and we'll calculate your estimate.
Shortcode: [raplsaich_form id="quote_4821"] (the ID is assigned on save)
Form Fields:
1. Label: Service Type, Key: service, Type: select
Options: Web Design, SEO, Content Writing, Social Media
2. Label: Budget Range, Key: budget, Type: select
Options: $500-$1000, $1000-$5000, $5000-$10000, $10000+
3. Label: Project Description, Key: details, Type: textarea
4. Label: Email Address, Key: email, Type: email (required)
System Prompt:
You are an expert estimator for a web agency. Give a rough cost
and timeline in USD, with a short breakdown.
Prompt Template:
Estimate a {service} project with a budget of {budget}.
Details: {details}
Submit Button Label: Get My Quote Moderation
Configure under AI Chatbot > Pro Settings > OPERATIONS > Moderation.
Content filtering and abuse prevention. This tab holds Banned Words, IP Blocking, and Rate Limiting; the spam, PII, country, and whitelist settings in the second table are on the SYSTEM > Security tab.
| Setting | Key | Default | Description |
|---|---|---|---|
| Banned Words | banned_words_enabled | Disabled | Enable banned words filter |
| Banned Words (list) | banned_words | Empty | One word per line |
| Banned word message | banned_words_message | Your message contains prohibited content. | Shown when a banned word is detected |
| IP Blocking | ip_block_enabled | Disabled | Enable IP blocking |
| IP Blocking (list) | blocked_ips | Empty | One IP per line (supports CIDR notation) |
| IP block message | ip_block_message | Access denied. | Message shown to blocked IPs |
| Rate Limiting | enhanced_rate_limit_enabled | Disabled | Enable enhanced rate limiting (per-minute/per-hour two-tier throttling; overrides the basic rate limits when enabled) |
| Max messages per minute | rate_limit_per_minute | 5 | Burst limit |
| Max messages per hour | rate_limit_per_hour | 30 | Sustained limit |
| Rate limit message | rate_limit_message | Too many messages… | Shown when the limit is reached |
| Setting (SYSTEM > Security) | Key | Default | Description |
|---|---|---|---|
| Spam Detection | spam_detection_enabled | Disabled | Enable spam message detection |
| Spam Detection (threshold) | spam_score_threshold | 3 | Messages scoring at or above this are blocked; lower is stricter |
| PII Masking | pii_masking_enabled | Disabled | Mask personal information in stored messages |
| PII Masking (patterns) | pii_patterns | email,phone,credit_card | Pattern types to detect and mask |
| Country Blocking | country_block_enabled | Disabled | Block chat access by country |
| Country Blocking (codes) | blocked_countries | Empty | Comma-separated ISO 3166-1 alpha-2 codes (e.g. CN, RU, KP) |
| Country Blocking (message) | country_block_message | Access denied from your region. | Message shown to blocked visitors |
| IP Whitelist | ip_whitelist_enabled | Disabled | Only allow whitelisted IPs |
| IP Whitelist (list) | whitelisted_ips | Empty | One IP per line; CIDR supported |
Actions
Configure under AI Chatbot > Pro Settings > OPERATIONS > Actions.
Detect user intents during conversation and execute predefined actions such as redirects, link buttons, email notifications, or webhooks.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable Actions | actions_enabled | Disabled | Enable action recognition |
| Actions | actions | Empty | The list of defined actions |
Each action has:
- Trigger — “AI Detection” (the AI decides from the “AI Description” you write) or “Keyword” (comma-separated keywords)
- Action Type:
- Redirect — shows a button that opens the given URL
- Link Buttons — labelled link buttons (maximum 4 links per action)
- Email Notification — emails the given address (default: admin email) and shows an optional message in the chat
- Webhook — posts to the given URL and shows an optional message in the chat
Maximum 10 actions. Each action adds approximately 50 tokens to the system prompt.
Scenarios
Configure under AI Chatbot > Pro Settings > OPERATIONS > Scenarios.
Create guided conversation flows that walk users through structured multi-step interactions such as bookings, surveys, or lead qualification.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable Scenarios | scenarios_enabled | Disabled | Enable conversation scenarios |
| Scenarios | scenarios | Empty | The list of defined scenarios |
Each scenario consists of:
- Name and Description
- Trigger — “Keyword” (comma-separated), “AI Detection” (describe when to trigger), or “Quick Reply” (a button label)
- Steps (up to 20, drag to reorder), each one of:
- Message — text to show; supports
{field_name}placeholders; “AI rephrase” lets the AI polish the wording - Input — a question whose answer is saved under a field name; type Text, Email, Phone, Number, or Select (comma-separated options, shown as buttons)
- Condition — tests a field with Not empty / Empty / Equals / Not equals / Contains, and jumps to the “Then” or “Else” step ID
- Action — Email Notification or Webhook
- Message — text to show; supports
Example: Troubleshooting Wizard Scenario
Name: Printer Troubleshooting Trigger: Keyword (printer problem, printer not working, can't print) (Step IDs such as step_1 are for illustration; real IDs are assigned automatically.) step_1 (Message): I can help you troubleshoot your printer. step_2 (Input): Question: Is it a wireless or a USB printer? Field name: printer / Type: Select / Options: Wireless,USB step_3 (Condition): printer Equals "USB" -> Then: step_5 / Else: step_4 step_4 (Message): Restart your router and the printer, then reconnect the printer to Wi-Fi. step_5 (Message): Check that the USB cable is firmly connected, then try printing again. step_6 (Input): Question: Did that fix it? Field name: resolved / Type: Select / Options: Yes,No step_7 (Condition): resolved Equals "No" -> Then: step_8 step_8 (Action): Email Notification (to the support team)
Multiple Chatbots
Configure under AI Chatbot > Pro Settings > OPERATIONS > Chatbots.
Run multiple chatbot configurations on different pages, and route visitors between them by page rules, intent, or round robin.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable Multi-Bot | multi_bot_enabled | Disabled | Enable multiple chatbot configurations |
| Chatbot List | bots | Empty | The list of defined bots |
| Enable (coordination) | multi_bot_coordination_enabled | Disabled | Enable coordination between multiple chatbots |
| Routing Mode | bot_routing_mode | manual | manual: Manual (page rules) / intent: intent-based / round_robin: round robin |
Each bot is configured with:
- Name and Slug
- AI Provider — OpenAI, Claude, Gemini, or OpenRouter. Uses global API key for the selected provider.
- Model — the model ID, typed in (e.g.
gpt-4o,claude-sonnet-5-5) - Temperature and Max Tokens
- Theme, Badge Icon, Welcome Message
- Page Rules — which pages this bot appears on
- System Prompt — leave blank to use the global prompt
- Routing Keywords — keywords used for intent-based routing
Example: Sales Bot + Support Bot
Bot 1: Sales Assistant
- AI Provider: OpenAI
- Model: gpt-4o
- Pages: /products/*, /pricing/, /demo/
- Prompt: "You are a sales assistant. Help visitors understand
our products, answer pricing questions, and guide them toward
a purchase. Be enthusiastic and highlight key benefits."
Bot 2: Technical Support
- AI Provider: Claude
- Model: claude-sonnet-5-5
- Pages: /support/*, /docs/*, /faq/
- Prompt: "You are a technical support agent. Help users solve
problems step by step. Be patient and precise. Always suggest
checking the documentation first."
Routing Mode: manual (each bot appears only on its assigned pages) intent, the visitor’s message is matched against each bot’s name, knowledge categories, and Routing Keywords, and the best-matching bot answers. For example, a pricing question goes to the Sales bot, while a bug report goes to the Support bot. Group 4: INTEGRATIONS
Connect the chatbot with external services and platforms. This group contains 4 sub-tabs.
Webhook
Configure under AI Chatbot > Pro Settings > INTEGRATIONS > Webhook.
Send real-time event data to external services via HTTP POST webhooks. Useful for integrating with CRMs, ticketing systems, and automation platforms (Zapier, Make, n8n).
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable Webhook | webhook_enabled | Disabled | Send webhook notifications |
| Webhook URL | webhook_url | Empty | The endpoint that receives the JSON payload |
| Webhook Secret | webhook_secret | Empty | Used for signature verification (optional). When set, each request carries an X-Webhook-Signature: sha256=<HMAC-SHA256 of the body> header |
| Events | webhook_events | See below | Select which events trigger webhook notifications. |
Available Webhook Events (webhook_events):
| Event | Default | Description |
|---|---|---|
new_conversation | Enabled | New conversation |
new_message | Enabled | New message |
lead_captured | Enabled | Lead captured |
handoff_requested | Enabled | Handoff requested |
handoff_resolved | Enabled | Handoff resolved |
offline_message | Enabled | Offline message |
ai_error | Enabled | AI API error |
budget_alert | Enabled | Budget alert |
rate_limit_exceeded | Disabled | Rate limit exceeded |
banned_word_detected | Disabled | Banned word detected |
recaptcha_failed | Disabled | reCAPTCHA failure (frequent) |
Webhook Payload Example (lead_captured):
{
"event": "lead_captured",
"timestamp": "2026-03-14T10:30:00+00:00",
"site_url": "https://example.com",
"data": {
"lead_id": 42,
"conversation_id": 128,
"name": "John Doe",
"email": "john@example.com",
"phone": "+1-555-0123",
"company": "Acme Inc"
}
} Requests also carry an X-Webhook-Event header with the event name. timestamp is in UTC. If the endpoint returns a 5xx error or cannot be reached, the webhook is retried up to 3 times (after 1, 5, and 30 minutes).
Webhook with Zapier / Make (Integromat):
- In Zapier: Create a new Zap → Trigger: “Webhooks by Zapier” → “Catch Hook”
- Copy the webhook URL provided by Zapier
- Paste it into the “Webhook URL” field in Pro Settings
- Click “Test Webhook” to send a test payload
- In Zapier, map the fields to your desired action (e.g., add to Google Sheets, create HubSpot contact)
- For Make: Use the “Custom Webhook” module and follow similar steps
X-Webhook-Signature header on your receiving end to ensure requests are legitimate. LINE Messaging API
Connect your chatbot to LINE, the dominant messaging platform in Japan, Thailand, and Taiwan. Visitors can interact with your chatbot through your LINE Official Account.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable LINE | line_enabled | Disabled | Receive and reply to LINE messages via AI |
| Channel Secret | line_channel_secret | Empty | From LINE Developers Console |
| Channel Access Token | line_channel_access_token | Empty | Long-lived channel access token |
Webhook URL (shown on the tab, with a Copy button):
LINE Messaging API Setup: Step-by-Step
- Go to LINE Developers Console and log in
- Create a new Provider (or select existing)
- Create a new Messaging API Channel
- Under “Basic settings”, copy the Channel Secret
- Under the “Messaging API” tab, issue a Channel Access Token (long-lived)
- In Pro Settings → INTEGRATIONS → LINE, check “Receive and reply to LINE messages via AI” and paste both values
- Copy the Webhook URL shown on the tab
- Back in LINE Developers Console, go to “Messaging API” → “Webhook settings”
- Paste the Webhook URL, enable “Use webhook”, and click “Verify”
- Disable “Auto-reply messages” in the LINE Official Account Manager (otherwise LINE sends its own responses)
Markdown → Plain Text Conversion (1.6.2+)
LINE messages don’t support Markdown rendering, so AI responses with raw Markdown (**bold**, *italic*, [link](url), # heading, etc.) would otherwise reach the user with the symbols intact and read poorly. From 1.6.2, the plugin converts Markdown to LINE-friendly plain text before sending.
Conversion rules (applied in order):
| Pattern | Result |
|---|---|
/ indented blocks | Inner code preserved, fences removed |
 | Removed (LINE images need rich-message API instead) |
[label](https://...) | label (https://...) |
**bold** / __bold__ | Strip markers, keep text |
*italic* / _italic_ | Strip markers, keep text |
~~strike~~ | Strip markers, keep text |
# Heading through ###### | Strip leading #, keep text |
- item / * item / + item | “・ item” |
1. item | Numbered lists preserved as-is |
> quote | “│ quote” |
--- / *** / ___ (horizontal rule) | Removed |
Inline code | Backticks stripped, text kept |
| 3+ consecutive newlines | Collapsed to 2 |
Customization:
To override the converted output, hook the raplsaich_line_markdown_to_plain filter. It receives both the converted plain text and the original Markdown, so any further reshaping is possible.
add_filter('raplsaich_line_markdown_to_plain', function($plain, $original_markdown) {
// e.g. append a signature
return rtrim($plain) . "\n\n— Support team";
}, 10, 2); preg_replace('/[#*_`~]/', '', $content) which broke link syntax ([label](url)), stripped code-block content, and dropped list bullets. 1.6.2 reimplements this as an order-dependent regex chain. Slack & Google Sheets
Configure under AI Chatbot > Pro Settings > INTEGRATIONS > Slack & Sheets.
Send notifications to a Slack channel and add captured leads to a Google Sheet.
Slack Integration
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable Slack | slack_enabled | Disabled | Send notifications to Slack |
| Slack Webhook URL | slack_webhook_url | Empty | Incoming Webhook URL from Slack |
| Slack Events | slack_events | Lead captured, Handoff requested | Events to post to Slack; the others (new conversation, new message, handoff resolved, offline message, AI API error, budget alert, and so on) are off by default |
Slack Webhook Setup:
- Go to Slack API → Your Apps
- Click “Create New App” → “From scratch”
- Name your app (e.g., “AI Chatbot Alerts”) and select your workspace
- Go to “Incoming Webhooks” and toggle it ON
- Click “Add New Webhook to Workspace”
- Select the channel for notifications (e.g., #chatbot-alerts)
- Copy the Webhook URL (starts with
https://hooks.slack.com/services/) - Paste it into Pro Settings → Slack & Sheets → Slack Webhook URL and save
Google Sheets Integration
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable Google Sheets | google_sheets_enabled | Disabled | Export lead data to Google Sheets via Apps Script webhook |
| Apps Script Web App URL | google_sheets_url | Empty | Deploy a Google Apps Script as web app to receive lead data via POST. |
Step 1: Create a Google Apps Script
- Open your Google Sheet
- Go to Extensions → Apps Script
- Replace the code with the following:
function doPost(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lead = JSON.parse(e.postData.contents);
// Add headers if sheet is empty
if (sheet.getLastRow() === 0) {
sheet.appendRow(['Date', 'Name', 'Email', 'Phone', 'Company', 'Page URL']);
}
// The plugin posts one lead as flat JSON:
// { name, email, phone, company, date, page_url }
sheet.appendRow([
lead.date || new Date(),
lead.name || '',
lead.email || '',
lead.phone || '',
lead.company || '',
lead.page_url || ''
]);
return ContentService
.createTextOutput(JSON.stringify({status: 'ok'}))
.setMimeType(ContentService.MimeType.JSON);
} Google Sheets only receives leads, sent when a lead is captured. Unlike the webhook, there is no event / data wrapper: the lead’s fields are at the top level of the JSON. To log conversations or messages as well, use the Webhook with Zapier or Make.
Step 2: Deploy as Web App
- Click Deploy → New deployment
- Select type: Web app
- Execute as: Me
- Who has access: Anyone
- Click “Deploy” and copy the Web App URL
- Paste the URL into Pro Settings → Slack & Sheets → Apps Script Web App URL and save
Booking
Configure under AI Chatbot > Pro Settings > INTEGRATIONS > Booking.
When a visitor’s message contains a trigger keyword, the chatbot adds a booking button that opens your booking page (Calendly, Cal.com, or any URL).
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable | booking_enabled | Disabled | Enable booking integration |
| Provider | booking_provider | Empty | calendly (Calendly) / cal.com (Cal.com) / url (Booking Page URL) |
| Booking URL | booking_page_url | Empty | URL to your booking page. Shown when booking intent is detected. |
| Trigger Keywords | booking_keywords | Empty | Comma-separated keywords that trigger booking suggestions. |
Calendly Setup Example:
- Create a Calendly account and set up your event types
- Copy your Calendly scheduling link (e.g.,
https://calendly.com/your-name/30min) - Go to Pro Settings → INTEGRATIONS → Booking
- Enable booking and select “Calendly” as the provider
- Paste your Calendly URL into Booking URL
- Enter trigger keywords, e.g.
book, schedule, appointment, meeting, demo - Save settings
book). The reply then carries a button labelled “Book with Calendly”, “Book with Cal.com”, or “Book an appointment”, which opens the Booking URL. The booking page is not embedded in the chat. No button is added during a handoff or when another feature has already attached one. Group 5: MANAGEMENT
Administrative and management tools for monitoring costs, controlling access, and maintaining your chatbot configuration. This group contains 5 sub-tabs.
Usage & Budget
Configure under AI Chatbot > Pro Settings > MANAGEMENT > Usage & Budget.
Monitor AI API costs and set alerts and a hard limit to prevent unexpected charges.
| Setting | Key | Default | Description |
|---|---|---|---|
| Cost Alert | budget_alert_enabled | Disabled | Send email alert when monthly cost exceeds threshold |
| Alert Email | budget_alert_email | Empty | Leave empty to use admin email. |
| Alert Threshold (USD) | budget_alert_threshold | 10.00 | Alert sent once per month when cost exceeds this amount. |
| Budget Limit | budget_limit_enabled | Disabled | Block AI responses when monthly cost exceeds limit |
| Limit Amount (USD) | budget_limit_amount | 50.00 | Maximum monthly spend |
| Block Message | budget_block_message | The AI service is temporarily unavailable… | Message shown to visitors when budget limit is reached. |
| Monthly Report | monthly_report_enabled | Disabled | Send monthly usage report by email (on the 1st of each month) |
| Report Email | monthly_report_email | Empty | Leave empty to use admin email. |
| Summary Report | summary_report_enabled | Disabled | Send periodic summary report by email |
| Frequency | summary_report_frequency | weekly | daily (sent at 09:00) or weekly (sent every Monday at 09:00) |
| Summary Email | summary_report_email | Empty | Recipient of the summary report |
Budget Setup Example:
Step 1: Start with an alert only
Cost Alert: on
Alert Threshold (USD): 20.00
Alert Email: admin@example.com
Step 2: Add a hard limit once you know your usage
Budget Limit: on
Limit Amount (USD): 50.00
Block Message: "AI chat is temporarily unavailable.
Please email support@example.com." Role Access
Control chat access and message limits per WordPress user role (the section is titled Role-Based Access Control). When disabled, site-wide settings apply to all users.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable Role Access | role_access_enabled | Disabled | Enable role-based access control |
| Default Policy | role_access_default | Allow | Allow or Deny. Applied to guest (not logged-in) users and roles not listed below |
| Role Settings | role_limits | Empty | Per role: “Chat Allowed” and “Monthly Limit” (messages, 0 = unlimited). Unchecking “Chat Allowed” blocks chat entirely for that role |
Administrators default to unlimited (0). Logged-in users are counted individually; guest users share the site-wide limit.
Usage Control — Credits & Token Limits (1.9.0+)
On the same Role Access tab. It builds on the free Usage Control safety valve (Settings → Security) and protects your own BYOK API cost when the chatbot is open to members.
| Setting | Key | Default | Description |
|---|---|---|---|
| Per-user Credits | usage_credits_enabled | Disabled | Give each logged-in user a monthly credit allowance (1 credit = 1 answered message). Blocks when exhausted; resets monthly |
| Admin Override | usage_admin_override | Enabled | Never apply usage limits or credits to administrators (recommended) |
| Monthly Credits (per role) | usage_credits_by_role | 0 | 0 = no limit. A user with several roles gets the most generous value |
| Monthly Token Limit (per role) | usage_role_token_limits | 0 | 0 = no limit. A user with several roles gets the strictest value. Requires the free Usage Control to be enabled |
- Top Consumers (this month): a read-only table of this month’s heaviest users with messages, tokens, and credits left. Usage is only metered while the free Usage Control is enabled.
- Grant Credits: enter a user ID and an amount to add credits to a user by hand.
A visitor who runs out of credits sees a credit-specific message: “You have used up your credits. Please wait until the next reset.” (1.9.1+).
Backup
Configure under AI Chatbot > Pro Settings > MANAGEMENT > Backup.
Back up plugin settings to a JSON file and restore them (the section is titled Backup & Restore Settings).
Export: click “Export Settings (JSON)” to download the Free and Pro settings as one JSON file (raplsaich-settings-YYYY-MM-DD.json). These values are blanked before the file is written:
- the OpenAI, Claude, Gemini, OpenRouter, and OpenAI-compatible provider API keys
- the reCAPTCHA secret key and the MCP API key hash
- the webhook secret, the LINE channel secret and channel access token, the Slack webhook URLs (notifications and handoff), and the Google Sheets Apps Script Web App URL
Every other setting is exported as-is. Up to version 1.9.7 the OpenAI-compatible provider’s API key (compat_api_key) and the handoff Slack webhook URL (handoff_slack_webhook_url) were not blanked; a file exported with 1.9.7 or earlier may contain them, so do not share it.
Import: choose an exported JSON file (up to 200KB) and click “Import Settings”. Settings in the file overwrite the current ones; settings not in the file keep their current values. For the keys and secrets listed above, the current value is kept when the file has them blank (“API keys, which are always preserved”).
Change History
Configure under AI Chatbot > Pro Settings > MANAGEMENT > Change History.
Track configuration changes with version history, rollback, staging, and an optional approval workflow.
| Setting | Key | Default | Description |
|---|---|---|---|
| Change History | change_history_enabled | Disabled | Record settings change history |
| Max History Entries | change_history_max | 50 | How many versions to keep |
| Rollback | rollback_enabled | Disabled | Allow rollback to previous settings versions |
| Staging Mode | staging_enabled | Disabled | Enable staging mode (save changes for review before publishing) |
| Approval Workflow | approval_workflow_enabled | Disabled | Require admin approval for settings changes (non-admin users) |
| Approval Email | approval_email | Empty | Email to notify when changes are pending approval. |
Approval Workflow Process:
- Submit: An editor saves settings changes. Instead of going live immediately, changes are saved as “Pending.”
- Review: An administrator sees the pending changes in the Change History tab with a diff view showing what changed.
- Approve/Reject: The admin can approve (changes go live) or reject (changes are discarded).
- Rollback: If approved changes cause issues, any previous version can be restored from the version history.
License
Configure under AI Chatbot > Pro Settings > MANAGEMENT > License.
Enter, activate, and deactivate your Pro license. The license key and status are managed on this tab, not through settings keys.
| Item | Description |
|---|---|
| Email Address / License Key | Enter the email address used for the purchase and the license key issued with it; they are verified against the license server |
| Activate License | Registers the license to this site. A license is active on one site at a time |
| Deactivate License | Releases the license so it can be activated on another site |
| Status | Shows whether the license is active, inactive, or expired |
| Automatic updates | An active license receives plugin updates |
How to Activate:
- Purchase a Pro license from rapls.com
- Copy the license key from your purchase confirmation email
- Go to Pro Settings → MANAGEMENT → License
- Enter your email address and the license key, then click “Activate License”
- The status should change to “License Active”
RAPLSAICH_ENCRYPTION_KEY (a random string of at least 32 characters) in wp-config.php and the license stays activated across salt changes. A license stored under the old key is read and re-encrypted automatically. Without the constant, behaviour is unchanged. See “Fixed Encryption Key” in the Free manual. Group 6: SYSTEM
System-level configuration for performance, security, and infrastructure. This group contains 6 sub-tabs.
Cache
Configure under AI Chatbot > Pro Settings > SYSTEM > Cache.
Cache AI responses to reduce API costs. When the same question is asked, the cached answer is returned without calling the AI API. The cache uses a SHA-256 hash of the user message to identify duplicates.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable Cache | response_cache_enabled | Disabled | Cache AI responses to reduce API costs. Responses with negative feedback are excluded from cache. |
| Cache TTL (Days) | cache_ttl_days | 7 | Number of days to keep cached responses. After this period, a fresh AI response will be generated. |
Cache Statistics (Last 30 Days): Cache Hit Rate, Cache Hits, Saved Tokens, and Total Requests. Clear All Cache invalidates every cached response.
Similar Cache (similar_cache_enabled, on the SYSTEM > Performance tab): questions are normalized before matching (punctuation stripped, whitespace collapsed, lowercased), so “What is your return policy?” and “what is your return policy” hit the same entry. Requires response caching to be enabled.
cache_hit column in the messages table tracks whether each response came from cache. Queue
Configure under AI Chatbot > Pro Settings > SYSTEM > Queue.
Control concurrent AI requests to prevent overload during high traffic.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable | queue_enabled | Disabled | Enable request queue |
| Max Concurrent | queue_max_concurrent | 5 | Maximum number of simultaneous AI requests. |
| Priority for Logged-in Users | queue_priority_logged_in | Enabled | Give logged-in users priority in queue |
The tab also shows the Queue Status and a Reset Queue button for clearing stuck requests.
Performance
Configure under AI Chatbot > Pro Settings > SYSTEM > Performance.
| Setting | Key | Default | Description |
|---|---|---|---|
| Similar Cache | similar_cache_enabled | Disabled | Enable similar question caching (see Cache) |
| Batch Processing | batch_processing_enabled | Disabled | Enable batch embedding processing. Adds a “Run Batch Embedding” button; needs an OpenAI or Gemini API key (Claude does not provide an embedding API) |
| Performance Monitoring | performance_monitoring_enabled | Disabled | Track API response times and performance metrics |
Current Stats: Total API Requests, Avg / Max / Min Response Time, and Last Updated.
Security
Configure under AI Chatbot > Pro Settings > SYSTEM > Security.
Security headers and data retention. The spam detection, PII masking, country blocking, and IP whitelist settings on this tab are described under Moderation.
| Setting | Key | Default | Description |
|---|---|---|---|
| Security Headers | security_headers_enabled | Disabled | Add security headers to REST API responses |
| Data Retention | data_retention_enabled | Disabled | Automatically delete old conversations |
| Data Retention (days) | data_retention_days | 365 | Delete conversations older than this many days |
| Allowed Extra Origins | allowed_extra_origins | Empty | One origin per line. These origins will be allowed for cross-origin API requests. |
Encryption
Configure under AI Chatbot > Pro Settings > SYSTEM > Encryption.
Encrypt sensitive data stored in the database using AES-256-GCM (authenticated encryption with tamper detection).
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable | encryption_enabled | Disabled | Enable data encryption at rest |
| Fields to Encrypt | encryption_fields | messages,leads | Comma-separated: messages, leads, context |
Migration: “Encrypt All Messages” encrypts existing messages in batches; “Decrypt All Messages” decrypts them (use it before disabling encryption).
How to Enable Encryption:
- Go to Pro Settings → SYSTEM → Encryption (the PHP OpenSSL extension is required)
- Check “Enable data encryption at rest” and choose the fields to encrypt
- Save settings. New records are encrypted from now on
- Click “Encrypt All Messages” to encrypt existing messages (this may take a while for large databases)
AUTH_KEY / AUTH_SALT). If you change your WordPress salts, encrypted data will become unreadable. Always bulk-decrypt before changing salts, or keep a backup of the old salts. With Free 1.20.0 or later, if RAPLSAICH_ENCRYPTION_KEY is defined in wp-config.php, the key is derived from that constant instead; back up its value. Security Scan
Configure under AI Chatbot > Pro Settings > SYSTEM > Security Scan.
Scan plugin settings for potential security vulnerabilities.
| Setting | Key | Default | Description |
|---|---|---|---|
| Enable Scheduled Scan | vulnerability_scan_enabled | Disabled | Enable scheduled vulnerability scanning |
| Schedule | vulnerability_scan_schedule | weekly | daily / weekly / monthly |
What the Security Scan Checks:
| Check | Severity | Description |
|---|---|---|
| API key encryption | High | An OpenAI, Claude, Gemini, or OpenRouter API key is stored unencrypted |
| Custom CSS | High | Custom CSS contains javascript: or expression( |
| HTTPS URLs | Medium | The Webhook URL, Slack Webhook URL, Google Sheets URL, or Booking URL does not start with https:// |
| Rate limiting | Low | The enhanced rate limit per minute is set above 20 |
| Security headers | Low | Security headers for REST API responses are disabled |
| Data retention | Info | No data retention policy is enabled |
| PII masking | Info | PII masking is disabled |
“Run Scan Now” runs a scan immediately. Scheduled scans are recorded in the audit log, and the site admin is emailed when a High finding appears.
Pro-Only Pages
These admin pages are added when the Pro plugin is active. Without Pro, the Free plugin shows a single “Pro Features” overview page instead.
Site Learning (Crawler)
The Site Learning page manages the content crawler that indexes your WordPress site for RAG (Retrieval-Augmented Generation). The AI uses this indexed content to answer questions about your site.
| Feature | Description |
|---|---|
| Learning Status | Shows enabled/disabled, indexed page count, last crawl date (updated after every crawl run since Free 1.19.4), WooCommerce detection |
| Embedding Status | Provider info, embedded chunk count with progress bar |
| Content Types | Select which post types to index (posts, pages, products, custom types) |
| Exclusions | Exclude specific URLs or content patterns from indexing |
| Custom Fields | Since Free 1.19.3, custom fields (post meta) are not indexed; the crawler indexes the title, excerpt, taxonomy terms, and page body. To index a field you use as content, add its key with the raplsaich_crawl_indexed_meta_keys filter, then run Site Learning again |
| Crawl Depth | How deep to follow internal links |
| Scheduled Crawl | Automatically re-crawl on a schedule (daily, weekly) |
| Differential Crawl | Only re-index content that changed since the last crawl |
Pro crawl settings:
| Setting | Key | Default | Description |
|---|---|---|---|
| Scheduled crawl | scheduled_crawl_enabled | Disabled | Re-crawl automatically on a schedule |
| Crawl frequency | scheduled_crawl_frequency | weekly | daily / weekly / monthly |
| Crawl time | scheduled_crawl_time | 03:00 | Time of day to run the crawl (24-hour) |
| Differential crawl | diff_crawl_enabled | Enabled | Only re-crawl content that changed |
| Enable enhanced HTML content extraction | enhanced_content_extraction | Disabled | Uses DOMDocument to parse HTML and extract structured content from headings, tables, lists, code blocks, and meta tags. |
Conversations
View and manage all chatbot conversations. The Pro version unlocks the full conversation management interface.
| Feature | Description |
|---|---|
| Statistics Cards | Total / Active / Closed / Today / Archived / Handoff count |
| Search & Filter | Message search (encryption-aware, 1.7.6+), status filter, date range, or pin to a single conversation via ?conversation_id=N (1.7.6+) |
| Bulk Operations | Select and delete, delete all, reset all sessions |
| Export | CSV / JSON with date filters |
| Conversation Detail | Click to view full message history with timestamps |
| Operator Mode | Take over a conversation for live human chat |
| AI Error Badge | A message whose AI call failed carries an error badge; hover for the time, provider, model, and HTTP status (Free 1.15+) |
Encryption-aware search (Free 1.7.6+):
Search now works under AES-256-GCM message encryption. It runs in two phases: an SQL LIKE sweep for plaintext rows (cap 500 conversation IDs), then if any encg:-prefixed rows exist, a decrypt-and-match scan over the most recent rows (cap 2000, configurable via the raplsaich_search_decrypt_limit filter). Before 1.7.6, search silently returned zero results on encryption-enabled sites.
Direct conversation ID filter (Free 1.7.6+):
Append ?page=raplsaich-conversations&conversation_id=123 to deep-link straight to a single conversation (status/date filters are bypassed). An inline notice with a “Show all conversations” reset link is shown above the list. Used by the Pro 1.6.5 Analytics “View Conversation” button and by external systems linking to a specific thread.
Analytics Dashboard
Comprehensive analytics for understanding chatbot performance, user behavior, and ROI.
| Feature | Description |
|---|---|
| Period Selection | 7 / 30 / 90 days |
| PDF / Print Export | Export the full analytics report as PDF or print |
| Statistics Cards | Conversations / Messages / Avg messages per conversation / Satisfaction / Cost / AI Quality Score / Bounce Rate |
| Conversation Drop-off | Distribution chart showing where users leave conversations |
| Daily Conversations | Line chart of conversation volume over time |
| Hourly Distribution | Heatmap of chat activity by hour |
| FAQ Ranking | Most frequently asked questions table |
| Top Pages | Pages where chatbot is used most |
| Device Statistics | Desktop / Mobile / Tablet breakdown |
| Country Statistics | Geographic distribution of users |
| Cost Analysis | Daily cost trend line + per-model breakdown |
| Feedback Analysis | Satisfaction bar, daily feedback trend, summary cards |
| Knowledge Gaps | Questions the AI could not answer well |
| Low-Rated Feedback | Responses that received negative feedback |
| Unanswered Questions (1.4.0+) | Questions where the AI replied “I don’t know” or could not source an answer. Each row has a “View Conversation” button that jumps directly to the source conversation |
| Preset Question Clicks (1.5.0+) | Click counts for per-bot and hierarchical presets. Hierarchical entries display as Group ▸ Child (label resolution fixed in 1.6.1) |
“View Conversation” button (overhauled in 1.6.5):
Used by Unanswered Questions, Preset Question Clicks, and Low-Rated Feedback rows to open the source conversation. Behavior has changed across versions:
| Version | Method | Status |
|---|---|---|
| ≤ 1.6.2 | ?highlight=N (unimplemented param) | Broken — link did nothing |
| 1.6.3 | ?s=<question text> search prefill | Works only with encryption disabled |
| 1.6.4 | ?s= with double-encoding fix | Still fails on encrypted sites |
| 1.6.5 current | ?conversation_id=N direct filter | Works under encryption — jumps to the exact conversation by ID |
Clicking opens the Conversations page in a new tab pinned to the target conversation. An inline notice (“Showing conversation #N only — Show all conversations”) appears at the top of the list with a reset link.
“Unanswered Questions” accuracy (1.6.1+):
- Preset fixed responses are excluded — they are intentional canned replies, not knowledge gaps
- Infrastructure failures (API quota exceeded, empty AI responses) are also excluded
- CJK short-text threshold loosened from 10 to 4 characters in 1.3.11+
- Added a “Last asked” timestamp column to help prioritize alongside frequency
“FAQ Ranking” / “Knowledge Gaps” encryption fix (1.3.10+):
Before 1.3.10, encrypted message ciphertext (encg: prefix) leaked directly into these tables. From 1.3.10 they show decrypted text.
Leads
Manage all captured leads from the chatbot’s lead form and offline messages.
| Feature | Description |
|---|---|
| Search & Filter | Search by name/email/company, date range filter |
| Export | CSV / JSON export |
| Statistics Cards | Total / Today / This Week / This Month |
| Lead Table | Name / Email / Phone / Company / Type / Conversation Link / Date / Actions |
| Pagination | Navigate through large lead lists |
Audit Log
Track all administrative actions performed on the chatbot plugin. The audit log provides an immutable record for compliance and accountability.
| Feature | Description |
|---|---|
| Filter | Action type / Date range / Text search |
| Export | CSV export of audit records |
| Log Table | Date / Action (severity color-coded) / User / Target / Details |
| Pagination | Navigate through log history |
Tracked Actions Include:
- Settings changes (with before/after values)
- Knowledge base additions, edits, and deletions
- Crawl operations (start, complete, error)
- Data exports and imports
- User access and permission changes
- Encryption operations
- Cache clearing
- License activation/deactivation
Additional Features
Dynamic Variables
Placeholders in Knowledge Base answers, AI responses, prompt templates (AI Prompts tab), and operator answer templates are replaced with real values.
| Variable | Output | Description |
|---|---|---|
{site_name} | Your Site Name | WordPress site title |
{site_url} | https://example.com | WordPress site URL |
{current_date} | March 14, 2026 | Today’s date in the format set under Settings > General |
{current_year} | 2026 | Current year |
{admin_email} | admin@example.com | Site admin email address |
{business_hours} | Monday: 09:00 – 18:00 | Business hours schedule, one line per day (“Closed” on days off); empty when Business Hours is disabled |
Example usage in a Knowledge Base answer:
Our support desk at {site_name} is open:
{business_hours}
Outside these hours, email us at {admin_email}.
© {current_year} {site_name} {business_hours} you never have to rewrite answers when your hours change. The system prompt entered in the Free settings is not processed; to use variables in the system prompt, put them in a prompt template on the AI Prompts tab. Pro Themes
The Pro edition adds 10 premium themes and dark mode support on top of the 6 Free themes.
| Theme | Description |
|---|---|
| Modern | Clean, contemporary design with subtle shadows |
| Gradient | Colorful gradient header and accents |
| Dark | Dark background theme for low-light environments |
| Glass | Frosted glass (glassmorphism) effect |
| Rounded | Extra-rounded corners and soft appearance |
| Ocean | Blue-toned aquatic color scheme |
| Sunset | Warm orange and red gradient tones |
| Forest | Natural green color palette |
| Neon | Vibrant neon accents on dark background |
| Elegant | Sophisticated serif typography with gold accents |
Dark Mode: When enabled, dark mode applies an overlay to any theme (Free or Pro). It respects the user’s system preference by default, or can be forced on/off.
Voice Input & Text-to-Speech
Enable voice interaction with the chatbot. Voice input uses the browser’s built-in Web Speech API for speech-to-text, and TTS reads AI responses aloud.
- Voice Input (STT): A microphone button appears in the input area. Users click to speak, and their words are converted to text. Supports major languages. Requires HTTPS.
- Text-to-Speech (TTS): A speaker button appears on each AI response. Click to have the response read aloud. Uses the browser’s built-in speech synthesis.
AI Tools
Additional AI-powered tools for content management beyond the chatbot itself.
- AI Content Editor: the AI Assistant sidebar in the block editor, turned on with “Enable AI Assistant sidebar in the block editor” on the AI Enhancement tab. It can also be opened from the editor’s Options (⋮) menu, and it uses the AI provider and key set in Free. It offers:
- Tone / Style (Default, Professional, Casual, Friendly, Persuasive, Formal, Concise), applied to drafts, improvements, and custom instructions (1.8.0+)
- Generate Draft from a topic or title, with an optional character count
- Improve Text, Summarize, and Translate for the selected text, or the whole post when nothing is selected
- Custom Instruction: a free-form instruction applied to the selection or the whole post (1.8.0+)
- Title Ideas: five title suggestions; click one to set it as the post title (1.8.0+)
- SEO Metadata: SEO title, meta description, and focus keywords
- Refine (remove AI-smell): runs the free plugin’s Japanese humanizer cleaner on the generated text with no AI call and no network request, and shows the before/after AI-smell score. Requires Free 1.10.0+ (1.8.0+)
- Response Edit Suggestions: AI analyzes low-rated chatbot responses and suggests improvements for your knowledge base.
- FAQ Auto-Generation (
faq_auto_generation_enabled, default off;faq_min_occurrences, default 3): automatically draft FAQ entries from knowledge gaps asked at least that many times. - Similar Question Merge (
similar_question_merge_enabled, default off;similar_threshold, default 80%): detect knowledge base entries with similar questions using word similarity and suggest merging them.
Chat Features
Additional chat interaction features available in the Pro edition.
- Quick Replies (
quick_replies_enabled/quick_replies): pre-defined buttons below the chat input that send a set message. - Chat Bookmarks (
chat_bookmarks_enabled): users can bookmark important messages for later reference. - Conversation Search (
chat_search_enabled): search within the current conversation history. - Conversation Sharing (
conversation_sharing_enabled): a share button lets visitors copy the conversation to the clipboard. No shareable URL is created. - Screen Sharing (
screen_sharing_enabled): capture a screenshot of the current page and include it in the conversation for visual context. - Conversation Summary: AI-generated summary of the conversation available to both the user and operators.
WooCommerce Integration
When WooCommerce is active, the chatbot automatically detects and can index product data. Product information is included in the RAG context for product-related queries.
| Setting | Key | Default | Description |
|---|---|---|---|
| Product cards | woocommerce_cards_enabled | Enabled | Show product cards under answers that drew on product pages |
Product Cards show:
- Product image (thumbnail)
- Product name
- Price (sale price included when there is one)
- An “out of stock” label when applicable
The whole card links to the product page.
raplsaich_chat_response_data filter adds a card for each of those products, with the current price and stock taken from WooCommerce. No special configuration is needed beyond enabling Site Learning with WooCommerce products included. Setup:
- Ensure WooCommerce is installed and products are published
- Go to AI Chatbot → Site Learning
- Enable learning and include “Products” in the content types
- Run a crawl to index your product catalog
- The chatbot will now reference products and display cards automatically
Multisite Support
The Pro edition supports WordPress Multisite installations.
| Setting | Key | Default | Description |
|---|---|---|---|
| Multisite | multisite_enabled | Disabled | Enable multisite support |
| Multisite (network settings) | multisite_network_settings | Disabled | Use network-wide settings (overrides per-site settings) |
- Network-Wide Settings: Configure default settings that apply across all sites in the network.
- Per-Site Overrides: Individual sites can override network defaults with their own settings.
Knowledge Base Pro Features
Extra Knowledge Base management features added to the Free Knowledge screen.
| Setting | Key | Default | Description |
|---|---|---|---|
| Knowledge Versioning | knowledge_versioning_enabled | Disabled | Track version history for knowledge entries |
| Knowledge Expiration | knowledge_expiration_enabled | Disabled | Enable automatic expiration of knowledge entries |
| Knowledge Expiration (days) | knowledge_expiration_days | 90 | Days until an entry expires |
| Auto Priority | knowledge_auto_priority_enabled | Disabled | Automatically adjust knowledge priority based on usage frequency |
| Related Links | knowledge_related_links_enabled | Disabled | Show related knowledge links in AI responses |
| Intent Classification | intent_classification_enabled | Disabled | Classify user intent to improve knowledge retrieval accuracy |
| Custom Intents | custom_intents | Empty | JSON format: {“intent_name”: [”keyword1″, “keyword2″]}. Custom intents take priority over built-in patterns. |

