Deal Flow Documentation
Complete guide to installing, configuring, and using Deal Flow for Mautic®.
Installation
Deal Flow installs as a standard Mautic plugin via download and extract.
Requirements
- Mautic 7.x (mostly compatible with 5.x+, PHP 8.1+)
- MySQL 8.0+ or MariaDB 10.4+
Install
# From your Mautic root directory
wget https://dealflowplugin.com/download/DealFlowBundle.zip
unzip DealFlowBundle.zip -d plugins/
# Clear and rebuild cache (run as web server user)
sudo -u www-data php bin/console cache:clear --no-warmup
sudo -u www-data php bin/console cache:warmup
# Load the plugin (runs database migrations)
sudo -u www-data php bin/console mautic:plugins:reload
cache:clear or cache:warmup as root creates files that the web server cannot write to, resulting in 500 errors. Use sudo -u www-data php bin/console ... on most setups.
Verify Installation
Navigate to /s/dealflow in your Mautic instance. You should see the Deal Flow pipeline view. The plugin also registers a Deal Flow entry in the Mautic main menu.
Quick Start
Get your first deal tracked in five steps:
- Install the plugin using the wget/unzip instructions above.
- Create a pipeline. Go to Deal Flow → Pipelines → New. Name it (e.g., "Sales Pipeline") and add stages: Qualification, Discovery, Proposal, Negotiation, Closed Won, Closed Lost. Set probability percentages for each stage.
- Create a deal. Go to Deal Flow → Deals → New. Enter a title, amount, select your pipeline, choose an initial stage, and assign an owner.
- Add buying committee members. On the deal detail page, click "Add Contact" to associate Mautic contacts with roles like Decision Maker, Champion, or Influencer.
- Track progress. Drag deals between stages on the kanban board. Add notes, tasks, and attachments as the deal progresses.
Configuration
Access Deal Flow settings at Deal Flow → Config.
Display Preferences
| Setting | Description | Default |
|---|---|---|
| Default Pipeline | Pipeline shown when opening Deal Flow | First created |
| Currency | ISO currency code for deal amounts | USD |
| Date Format | Display format for dates | System default |
| Items Per Page | Deals shown per page in list view | 30 |
Risk Thresholds
Health indicators on the kanban board use days-in-stage to flag stale deals:
| Indicator | Condition | Default |
|---|---|---|
| Yellow | Deal has been in the current stage longer than threshold | 14 days |
| Red | Deal has been in the current stage much longer than expected | 21 days |
Task Settings
| Setting | Description | Default |
|---|---|---|
| Default Priority | Priority assigned to new tasks | Normal |
| Reminder Lead Time | Hours before due date to send reminder | 24 hours |
Integration
| Setting | Description |
|---|---|
| Webhook Secret | HMAC signing secret for inbound webhook verification |
| API Rate Limits | Maximum API requests per minute |
Pipeline Management
Creating a Pipeline
Navigate to Deal Flow → Pipelines → New. Each pipeline needs:
- Name — descriptive label (e.g., "Enterprise Sales", "SMB Pipeline")
- Default flag — mark one pipeline as default for new deals
- Stages — ordered list of deal stages
Stages
Each stage has:
| Field | Description |
|---|---|
| Name | Stage label displayed on kanban |
| Type | open, won, or lost |
| Probability | Default win probability (0-100%) for deals in this stage |
| Sort Order | Position in the pipeline (left to right on kanban) |
won and one lost stage. These are used for win rate calculations and forecasting.
Bidirectional Stage Sync
Deal stages can be mapped to Mautic contact stages. When a deal moves to a mapped stage, all associated contacts are updated in Mautic. When a contact's Mautic stage changes (e.g., via a campaign), associated deals are updated automatically.
Configure mappings in the pipeline stage editor by selecting a corresponding Mautic contact stage.
Deals
Creating a Deal
New deals require a title and a pipeline. All other fields are optional:
| Field | Type | Notes |
|---|---|---|
| Title | Text | Deal name (required) |
| Amount | Decimal | Deal value in configured currency |
| Pipeline | Select | Required — determines available stages |
| Stage | Select | Current position in pipeline |
| Confidence | 0-100 | Win probability override (defaults to stage probability) |
| Status | Enum | open, won, or lost |
| Qualification | Enum | unqualified, marketing_qualified, sales_qualified, opportunity |
| Expected Close | Date | Forecasted close date |
| Source | Text | Lead source attribution |
| Company | Lookup | Mautic company association |
| Owner | User | Assigned sales rep |
| Description | Text | Free-form notes |
| External Ref | Text | Reference ID from external systems |
Kanban Board
The pipeline kanban view shows deals as cards organized by stage. Drag and drop to move deals between stages. Cards display:
- Deal title and amount
- Owner avatar
- Health indicator (green/yellow/red based on days in stage)
- Buying committee count
Batch Actions
Select multiple deals in list view to:
- Move to a different stage
- Change owner
- Update status (mark won/lost)
- Delete
Search
Use the search input on the deal list to filter by title, company, owner, or stage. Supports Mautic's standard search syntax.
CSV Import
Import deals in bulk via Deal Flow → Import. Upload a CSV with headers matching deal fields. The importer supports field mapping for non-standard column names.
Deal Notes & Activity
Add notes to deals with activity types:
note— general notescall— phone call recordsemail— email summariesmeeting— meeting notestask_completed— completed task records
Tasks
Create tasks associated with deals. Each task has a title, description, priority, due date, optional reminder, and assigned owner.
Attachments
Upload files (proposals, contracts, etc.) to the deal record for centralized document management.
Buying Committee
Buying Committee Intelligence is Deal Flow's structural differentiator. It lets you map multiple Mautic contacts to a deal, each with a role label that describes their influence on the buying decision.
Adding Contacts
On the deal detail page, use the Add Contact button to search for and associate Mautic contacts. Assign a role label to each:
| Role | Description |
|---|---|
| Decision Maker | Has final authority to approve the purchase |
| Champion | Internal advocate who drives the deal forward |
| Influencer | Shapes requirements and evaluation criteria |
| Blocker | May oppose or slow down the purchase |
| End User | Will use the product day-to-day |
| Budget Holder | Controls the budget allocation |
| Technical Evaluator | Assesses technical fit |
Contact Timeline
Deal events are injected into the Mautic contact timeline for associated contacts. This gives your team visibility into deal activity from the contact record, without switching views.
Email Personalization
Use deal tokens in Mautic email templates to personalize outreach for contacts associated with deals:
| Token | Output |
|---|---|
{dealflow_title} | Deal title |
{dealflow_amount} | Deal amount (formatted) |
{dealflow_stage} | Current stage name |
{dealflow_company} | Associated company name |
{dealflow_owner} | Deal owner name |
Campaigns
Deal Flow integrates natively with Mautic's campaign builder, adding deal-aware conditions, actions, and segment filters.
Campaign Conditions
| Condition | Description |
|---|---|
| Deal Match | Contact has an associated deal matching criteria (pipeline, stage, status) |
| Stage Check | Contact's associated deal is in a specific stage |
| Deal Value Threshold | Contact's associated deal amount is above/below a value |
Campaign Actions
| Action | Description |
|---|---|
| Move Stage | Move the contact's associated deal to a specified stage |
| Update Deal Field | Set a field value on the contact's associated deal |
| Create Deal | Create a new deal associated with the contact |
Segment Filters
| Filter | Description |
|---|---|
| Has Deal in Stage | Contacts associated with a deal in a specific stage |
| Deal Value Range | Contacts associated with deals in a value range |
| Deal Age | Contacts with deals older than N days |
Reports & Metrics
Access the reports dashboard at Deal Flow → Reports.
Key Metrics
| Metric | Description | Calculation |
|---|---|---|
| Weighted Forecast | Expected revenue adjusted by probability | Sum of (deal amount × stage probability) for open deals |
| Win Rate | Percentage of deals closed won | Won deals ÷ (Won + Lost deals) over period |
| Average Deal Size | Mean value of closed-won deals | Total won revenue ÷ number of won deals |
| Pipeline Velocity | Speed at which deals move through pipeline | (Deals × Win Rate × Avg Deal Size) ÷ Avg Sales Cycle Length |
| Stage Coverage | Number and value of deals per stage | Count and sum grouped by current stage |
| Monthly Close Rate | Revenue closed per month | Sum of won deal amounts by month |
Owner Leaderboard
Ranks deal owners by total pipeline value, deals won, and win rate. Useful for sales team performance reviews.
At-Risk Deals
Lists deals that have exceeded risk thresholds (days in stage). Sorted by severity — red indicators first, then yellow.
Dashboard Widgets
Deal Flow provides dashboard widgets that can be added to your Mautic home dashboard. Go to Dashboard → Add Widget and select from:
| Widget | Description |
|---|---|
| Pipeline Summary | Deal count and total value per stage (bar chart) |
| My Deals | Current user's open deals with stage and amount |
| My Tasks | Upcoming and overdue tasks assigned to current user |
| Owner Leaderboard | Top performers by pipeline value |
| At-Risk Deals | Deals exceeding days-in-stage thresholds |
| Win Rate Trend | Win rate over the last 6 months (line chart) |
| Revenue Forecast | Weighted forecast for current and next month |
| Recent Activity | Latest deal events across all pipelines |
API Reference
Deal Flow exposes a REST API under the /api/dealflow/ namespace. All endpoints require Mautic API authentication (OAuth2 or Basic Auth).
Deal Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/dealflow/deals | List deals (paginated, filterable) |
GET | /api/dealflow/deals/{id} | Get deal details |
PATCH | /api/dealflow/deals/{id} | Update deal fields |
POST | /api/dealflow/deals/{id}/stage | Move deal to a stage |
POST | /api/dealflow/deals/{id}/contacts | Associate a contact (buying committee) |
POST | /api/dealflow/deals/{id}/notes | Add a note |
POST | /api/dealflow/deals/{id}/tasks | Create a task |
PATCH | /api/dealflow/deals/{id}/tasks/{taskId} | Update a task |
POST | /api/dealflow/deals/{id}/attachments | Upload an attachment |
GET | /api/dealflow/deals/{id}/timeline | Get deal timeline events |
POST | /api/dealflow/deals/import | CSV import |
Example: Create a Note
curl -X POST https://mautic.example.com/api/dealflow/deals/42/notes \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"body": "Proposal sent to procurement team.",
"activity_type": "note"
}'
Example: Move Stage
curl -X POST https://mautic.example.com/api/dealflow/deals/42/stage \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"stage_id": 5}'
Example: Associate Contact
curl -X POST https://mautic.example.com/api/dealflow/deals/42/contacts \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"contact_id": 108,
"label": "Decision Maker"
}'
For complete API documentation including request/response schemas, see the Webhooks and FAQ sections below.
Webhooks
Inbound Webhooks
Receive deal data from external systems via inbound webhook sources. Each source gets a unique URL and optional HMAC signing for request verification.
Setting Up an Inbound Source
- Go to Deal Flow → Webhooks → New Source
- Name the source (e.g., "Typeform Submissions")
- Copy the generated webhook URL
- Optionally set an HMAC secret for request signing
- Configure field mapping: map source JSON fields to deal fields
HMAC Verification
When an HMAC secret is configured, Deal Flow verifies inbound requests by computing HMAC-SHA256 of the request body and comparing it to the X-Signature header.
# Compute the expected signature
echo -n '{"title":"New Deal","amount":5000}' | \
openssl dgst -sha256 -hmac "your-webhook-secret"
Outbound Webhooks
Deal Flow fires events through Mautic's native webhook system. Configure outbound webhooks in Mautic Settings → Webhooks and subscribe to Deal Flow events:
dealflow.deal.created— New deal createddealflow.deal.updated— Deal fields updateddealflow.deal.stage_changed— Deal moved to a new stagedealflow.deal.won— Deal marked as wondealflow.deal.lost— Deal marked as lostdealflow.deal.contact_added— Contact associated with deal
FAQ
What version of Mautic is required?
Deal Flow requires Mautic 5.x running on PHP 8.1 or higher.
Is this a CRM replacement?
No. Deal Flow is a Revenue Operations plugin. It adds deal and pipeline management to Mautic — it does not replace Mautic's contact management, campaigns, or marketing features. It enhances them.
How is this different from other Mautic CRM plugins?
Buying Committee Intelligence. Most deal trackers associate one contact per deal. Deal Flow lets you map entire buying committees with role labels, giving you visibility into multi-stakeholder deals.
What happens when my renewal expires?
The plugin continues to work. You lose access to updates and support. Your data is never locked or deleted.
Is there a free tier?
No. Deal Flow is a commercial plugin priced at $149 one-time with a $49/year renewal for updates and support. No free tier, no feature gates — all customers get all features.
Can I use custom fields?
Yes. Deal Flow supports custom fields via the DealField entity. Add text, number, select, and date fields through the configuration screen.
How do I upgrade?
wget https://dealflowplugin.com/download/DealFlowBundle.zip
unzip -o DealFlowBundle.zip -d plugins/
sudo -u www-data php bin/console cache:clear --no-warmup
sudo -u www-data php bin/console cache:warmup
sudo -u www-data php bin/console mautic:plugins:reload
Where do I get support?
Email support@dealflowplugin.com.
What is the license?
Deal Flow is a commercial plugin. Purchase includes a perpetual per-subdomain license with 1 year of updates.