Download the PHP package totalwebcreations/chatflow without Composer
On this page you can find all versions of the php package totalwebcreations/chatflow. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download totalwebcreations/chatflow
More information about totalwebcreations/chatflow
Files in totalwebcreations/chatflow
Package chatflow
Short Description Conversational form builder with WhatsApp-like interface for Craft CMS
License MIT
Informations about the package chatflow
ChatFlow
A conversational form builder plugin for Craft CMS that transforms traditional forms into engaging, chat-like experiences.
💰 Pricing: $39 USD one-time purchase + $19/year optional renewals for continued updates and support
Features
🎯 Conversational Forms
- Chat-like Interface: Transform boring forms into engaging conversations
- One Question at a Time: Keep users focused with a progressive disclosure pattern
- Real-time Validation: Instant feedback as users type
- Multiple Field Types: Support for text, email, phone, textarea, multiple choice buttons, and date fields
- Optional Questions: Allow users to skip non-required questions with customizable skip button text
- Mobile-First Design: Responsive and touch-friendly interface
🎨 Customizable Appearance
- Avatar Styles: Choose between solid color, gradient, or custom image avatars
- Brand Colors: Customize primary and secondary colors to match your brand
- Custom Initials: Set custom initials for the chat avatar
- Automatic Text Contrast: Smart text color selection based on background brightness
- CSS Custom Properties: Full theming control via CSS variables
📧 Flexible Notifications
- Multiple Email Recipients: Send notifications to multiple email addresses (comma or newline separated)
- Slack Integration: Send submission notifications to Slack channels via webhooks
- Microsoft Teams Integration: Post submissions to Teams channels
- Custom Webhooks: Integrate with any service via custom webhook URLs (Zapier, Make, etc.)
- Form-Level Settings: Configure notifications per form with fallback to global plugin settings
- Rich Email Templates: Beautiful HTML email notifications with all submission data
🌍 Multi-Site & Multi-Language Support
- Multi-Site Ready: Full support for Craft CMS multi-site installations
- Site-Specific Content: Translate question text, placeholders, skip text, and multiple choice options per site
- Easy Site Switching: Switch between sites directly from the form editor with a convenient dropdown
- Fallback Logic: Automatically falls back to primary site content when translations are missing
- Built-in Translations: Control panel available in English (en), Dutch (nl), German (de), French (fr), and Spanish (es)
🛡️ Built-in Spam Protection
- Honeypot Fields: Hidden fields that bots fill but humans cannot see
- Time-Based Validation: Reject submissions that are too fast (bots) or too slow (expired)
- JavaScript Validation: Ensures JavaScript is enabled with token generation
- Rate Limiting: Prevent spam floods with configurable per-IP limits
- Zero Dependencies: No external services required - works out of the box
- Fully Configurable: Enable/disable and adjust all thresholds from settings
🔧 Developer-Friendly
- Simple Template Tag: Render forms with a single Twig tag
- Headless API: Submit forms via AJAX for custom integrations
- Webhook Payload: Structured JSON data for easy integration
- Extensible: Clean architecture for custom modifications
Requirements
- Craft CMS 5.0.0 or later
- PHP 8.2 or later
Installation
Via Composer (Recommended)
Then install the plugin via the Craft Control Panel or command line:
Manual Installation
- Download the latest release
- Extract to
plugins/chatflow/ - Install via Control Panel or command line
Usage
Creating a Form
- Navigate to ChatFlow → Forms in the Control Panel
- Click New Form
- Configure the form:
- General Tab: Set form name, handle, and success message
- Questions Tab: Add and configure questions
- Notifications Tab: Set up email, Slack, Teams, or webhook notifications
Multi-Site Forms
If you have multiple sites configured in Craft CMS, ChatFlow automatically supports site-specific content:
- Site Selector: When editing a form, use the site dropdown in the breadcrumb navigation (top-left) to switch between sites
- Translatable Content: The following fields can be customized per site:
- Question text
- Placeholder text
- Skip button text
- Multiple choice options
- Shared Structure: Form structure (field types, field names, required status) is shared across all sites
- Automatic Detection: Forms automatically display content based on the current site when rendered on the frontend
- Fallback: If content hasn't been translated for a site, it falls back to the primary site's content
Example: Create a contact form in English, then switch to your Dutch site and translate all question text, placeholders, and button labels while keeping the same form structure.
Adding Questions
Each question supports:
- Question Text: The question shown to users
- Field Type: text, email, tel, textarea, buttons (multiple choice), or date
- Field Name: Technical name for the field (used in submissions and templates)
- Placeholder: Optional placeholder text
- Required: Toggle to make the question mandatory
- Skip Button Text: Custom text for the skip button (optional questions only)
- Options: Multiple choice options (for button field type, one per line)
Rendering a Form
First, create your trigger button with a unique ID:
Then, render the ChatFlow modal and connect it to your button:
Replace contactForm with your form's handle and contactButton with your button's ID.
Complete Example:
The modal will automatically open when the user clicks the element with the specified ID.
Headless/AJAX Integration
Submit forms programmatically:
Configuration
Plugin Settings
Navigate to Settings → Plugins → ChatFlow to configure:
Appearance
- Avatar Type: Solid color, gradient, or custom image
- Primary Color: Main brand color
- Secondary Color: Secondary brand color (used in gradients)
- Initials: Avatar initials (2 characters)
- Avatar Image: Upload a custom avatar image
Notifications (Global Defaults)
- Default Notification Emails: Comma or newline separated email addresses
- Enable Email Notifications: Toggle email notifications on/off
- Slack Webhook URL: Default Slack webhook for all forms
- Teams Webhook URL: Default Microsoft Teams webhook
- Custom Webhook URL: Default custom webhook endpoint
Spam Protection
- Enable Spam Protection: Toggle spam protection on/off (enabled by default)
- Minimum Submission Time: Reject submissions faster than this (default: 2 seconds)
- Maximum Submission Time: Reject submissions slower than this (default: 1800 seconds / 30 minutes)
- Max Submissions: Maximum submissions per IP within time window (default: 3)
- Rate Limit Time Window: Time window for rate limiting (default: 600 seconds / 10 minutes)
How it works:
- Honeypot: Hidden field (
_chatflow_website) that legitimate users won't see, but bots will fill - Time Validation: Too fast = bot, too slow = expired session
- JavaScript Token: Ensures JavaScript is enabled (ChatFlow requires JS anyway)
- Rate Limiting: Prevents spam floods from the same IP using Craft's cache system
All spam protection runs automatically when enabled. Failed spam checks are logged to storage/logs/web.log for monitoring.
Form-Level Notifications
Each form can override global notification settings:
- Go to the form's Notifications tab
- Configure notifications specific to this form:
- Email addresses (leave empty to use plugin default)
- Slack webhook URL (leave empty to use plugin default)
- Teams webhook URL (leave empty to use plugin default)
- Custom webhook URL (leave empty to use plugin default)
Notifications
Email Notifications
Email notifications include:
- Form name and submission date
- All answered questions with responses
- Submission ID and IP address
- Beautiful HTML template with ChatFlow branding
Multiple Recipients: Enter multiple email addresses separated by commas or newlines:
Slack Notifications
- Create a Slack App at https://api.slack.com/apps
- Enable Incoming Webhooks
- Add a webhook to your workspace
- Copy the webhook URL (looks like
https://hooks.slack.com/services/...) - Paste into ChatFlow settings or form notification settings
Slack messages include:
- ChatFlow branding and color
- Form name
- All submission data as fields
- Timestamp
Microsoft Teams Notifications
- In Teams, go to your channel
- Click ••• → Connectors → Incoming Webhook
- Configure and create the webhook
- Copy the webhook URL
- Paste into ChatFlow settings
Teams messages use MessageCard format with:
- Form name
- Submission timestamp
- All answers as facts
Custom Webhooks
Send submission data to any webhook endpoint (Zapier, Make, custom APIs):
Payload Structure:
Testing Webhooks Locally:
ChatFlow includes a built-in webhook tester:
- Use this URL in your webhook settings:
https://yoursite.test/actions/chatflow/webhook-test/receive - Submit a form
- View the logs at:
https://yoursite.test/actions/chatflow/webhook-test/logs - Or check the log file:
storage/logs/chatflow-webhook-test.log
Viewing Submissions
- Navigate to ChatFlow → Submissions
- View all submissions across all forms
- Filter by form
- See submission date, form name, and submission data
Click on a submission to view:
- All answered questions
- Submission metadata (IP address, user agent, date)
Theming & Customization
CSS Custom Properties
ChatFlow uses CSS custom properties for easy theming:
Custom Styling
Override ChatFlow styles in your own CSS:
Translation
To add a new language:
- Copy
src/translations/en/chatflow.php - Create a new folder for your language (e.g.,
itfor Italian) - Translate all strings
- Submit a pull request!
Troubleshooting
Forms Not Appearing
- Check that the form handle is correct
- Verify the form has at least one question
- Check browser console for JavaScript errors
- Clear Craft's caches
Notifications Not Sending
- Check Craft's email settings (Settings → Email)
- Verify webhook URLs are correct
- Check
storage/logs/web.logfor errors - For Slack/Teams: verify the webhook is active in the service
Styling Issues
- Check for CSS conflicts with other plugins/themes
- Use browser DevTools to inspect elements
- Verify ChatFlow assets are loaded (check Network tab)
Development
Project Structure
Building Assets
Frontend assets are located in src/assets/:
js/chatflow.js- Main conversational form logiccss/chatflow.css- Styles for the chat interface
Database Schema
chatflow_forms
- Form metadata (name, handle, success message)
- Notification settings (email, Slack, Teams, webhook)
chatflow_questions
- Question configuration
- Field types and validation
- Sort order for display
chatflow_submissions
- Submission data (JSON)
- User metadata (IP, user agent)
- Timestamps
Support
- Documentation: https://github.com/TotalWebCreations/chatflow
- Issues: https://github.com/TotalWebCreations/chatflow/issues
- Email: [email protected]
License
This plugin is licensed under the MIT License. See LICENSE.md for details.
Credits
Developed by TotalWebCreations
Enjoying ChatFlow? Please star the repo and share with others! ⭐