Lead Scoring Pipeline with Mattermost and Trello
This workflow automatically enriches incoming form-based leads, calculates a lead-score from multiple data points, and then routes high-value prospects to a Mattermost alert channel while adding all leads to Trello for further handling. It centralizes lead intelligence and streamlines sales team triage—no manual spreadsheet work required.
Pre-conditions/Requirements
Prerequisites
- n8n instance (self-hosted or n8n cloud)
- ScrapeGraphAI community node installed
- Active Trello and Mattermost workspaces
- Lead-capture form or webhook that delivers JSON payloads
Required Credentials
- Trello API Key & Token – Access to the board/list where cards will be created
- Mattermost Access Token – Permission to post messages in the target channel
- (Optional) Clearbit / Apollo / 3rd-party enrichment keys – If you replace the sample enrichment HTTP requests
Specific Setup Requirements
| Variable |
Purpose |
Example Value |
MM_CHANNEL_ID |
Mattermost channel to post high-score leads |
leads-alerts |
TRELLO_BOARD_ID |
Board where new cards are added |
62f1d… |
TRELLO_LIST_ID_HOT |
Trello list for hot leads |
Hot Deals |
TRELLO_LIST_ID_BACKLOG |
Trello list for all other leads |
New Leads |
LEAD_SCORE_THRESHOLD |
Score above which a lead is considered hot |
70 |
How it works
This workflow grabs new leads at a defined interval, enriches each lead with external data, computes a custom score, and routes the lead: high-scorers trigger a Mattermost alert and are placed in a “Hot Deals” list, while the rest are stored in a “Backlog” list on Trello. All actions are fully automated and run unattended once configured.
Key Steps:
- Schedule Trigger: Runs every 15 minutes to poll for new form submissions.
- HTTP Request – Fetch Leads: Retrieves the latest unprocessed leads from your form backend or CRM API.
- Split In Batches: Processes leads 20 at a time to respect API rate limits.
- HTTP Request – Enrich Lead: Calls external enrichment (e.g., Clearbit) to append company and person data.
- Code – Calculate Score: JavaScript that applies weightings to enriched attributes and outputs a numeric score.
- IF – Score Threshold: Branches flow based on
LEAD_SCORE_THRESHOLD.
- Mattermost Node: Sends a rich-text message with lead details for high-score prospects.
- Trello Node (Hot List): Creates a Trello card in the “Hot Deals” list for high-value leads.
- Trello Node (Backlog): Creates a Trello card in the “New Leads” list for everyone else.
- Merge & Flag Processed: Marks leads as processed to avoid re-processing in future runs.
Set up steps
Setup Time: 10–15 minutes
- Import the Workflow: Download the JSON template and import it into n8n.
- Create / Select Credentials:
- Add your Trello API key & token under Trello API credentials.
- Add your Mattermost personal access token under Mattermost API credentials.
- Configure Environment Variables: Set
MM_CHANNEL_ID, TRELLO_BOARD_ID, TRELLO_LIST_ID_HOT, TRELLO_LIST_ID_BACKLOG, and LEAD_SCORE_THRESHOLD in n8n → Settings → Environment.
- Form Backend Endpoint: Update the first HTTP Request node with the correct URL and authentication for your form or CRM.
- (Optional) Enrichment Provider: Replace the sample enrichment HTTP Request with your chosen provider’s endpoint and credentials.
- Test Run: Execute the workflow manually with a sample payload to ensure Trello cards and Mattermost messages are produced.
- Activate: Enable the workflow; it will now run on the defined schedule.
Node Descriptions
Core Workflow Nodes:
- Schedule Trigger – Triggers workflow every 15 minutes.
- HTTP Request (Fetch Leads) – Pulls unprocessed leads.
- SplitInBatches – Limits processing to 20 leads per batch.
- HTTP Request (Enrich Lead) – Adds firmographic & technographic data.
- Code (Calculate Score) – JavaScript scoring algorithm; outputs
score field.
- IF (Score ≥ Threshold) – Determines routing path.
- Mattermost – Sends formatted message with lead summary & score.
- Trello (Create Card) – Adds lead as a card to the appropriate list.
- Merge (Flag Processed) – Updates source system to mark lead as processed.
Data Flow:
- Schedule Trigger → HTTP Request (Fetch Leads) → SplitInBatches
- → HTTP Request (Enrich Lead) → Code (Calculate Score) → IF
- IF (Yes) → Mattermost → Trello (Hot List)
- IF (No) → Trello (Backlog)
- Both branches → Merge (Flag Processed)
Customization Examples
Adjust Scoring Weights
// Code node: adjust weights to change scoring logic
const weights = {
industry: 15,
companySize: 25,
jobTitle: 20,
intentSignals: 40
};
Dynamic Trello List Mapping
// Use a Lookup table instead of IF node
const mapping = {
hot: 'TRELLO_LIST_ID_HOT',
cold: 'TRELLO_LIST_ID_BACKLOG'
};
items[0].json.listId = mapping[items[0].json.segment];
return items;
Data Output Format
The workflow outputs structured JSON data:
{
"leadId": "12345",
"email": "[email protected]",
"score": 82,
"priority": "hot",
"trelloCardUrl": "https://trello.com/c/abc123",
"mattermostPostId": "78yzk9n8ppgkkp"
}
Troubleshooting
Common Issues
- Trello authentication fails – Ensure the token has write access and that the API key & token pair belong to the same Trello account.
- Mattermost message not sent – Confirm the token can post in the target channel and that
MM_CHANNEL_ID is correct.
Performance Tips
- Batch leads in groups of 20–50 to avoid enrichment API rate-limit errors.
- Cache enrichment responses for repeat domains to reduce API calls.
Pro Tips:
- Add a second IF node to send ultra-high (>90) scores directly to an account executive via email.
- Store raw enrichment responses in a database for future analytics.
- Use n8n’s built-in Execution Data Save to debug edge-cases without rerunning external API calls.