Evaluate Leads Transparently by Fit, Interest, and Authority
Lead scoring becomes transparent by evaluating fit, interest, and authority: Structured lead data is received via webhook, validated, and scored using a clear scheme. Each lead receives a score (0–100) and is automatically classified as High, Medium, or Low priority, sorted by relevance. Marketing and sales teams can efficiently prioritize leads and trigger follow-up processes. Invalid inputs are clearly reported. The solution is ready to use, flexible, and saves time in lead evaluation.
Aimed at marketing and sales teams seeking structured lead evaluation and prioritization, this workflow provides an automated approach. After importing into n8n, a webhook endpoint is available to accept POST requests with a list of leads. Each lead must include the fields name (string), fit (0–5), intent (0–5), and authority (0–5). The workflow checks for completeness and valid value ranges, calculates a score for each lead using a weighted formula (Fit 40%, Intent 35%, Authority 25%, scaled 0–100), classifies leads as High (≥80), Medium (≥55), or Low (<55), and returns the results as a sorted JSON array. Invalid or incomplete entries receive a clear error message with HTTP 400. Webhook authentication must be enabled separately in n8n to prevent unauthorized access. The solution is immediately deployable but can be customized in the code node (e.g., weightings). Execution is logged in n8n, so data protection and retention policies should be observed. This workflow is particularly suitable for companies seeking consistent and transparent lead scoring within their digital processes.
AI-generated image
Installation
1. Import the workflow into n8n.
2. Check the Webhook node: method POST, path /lead-qualifizierung-score.
3. Set up webhook authentication in n8n (e.g., Basic Auth or API Key) and secure it with separate credentials.
4. Save the workflow.
5. Start the test listener in the Webhook node and use the displayed test URL.
6. Send a sample POST request with Content-Type application/json to the test URL (see usage example).
7. Verify the result. Only after a successful test, publish/activate the workflow and use the production URL from the Webhook node.
8. Configure logging and data retention in n8n as needed.
Usage
1. Send a POST request with the following JSON to the webhook URL:
```json
{
"leads": [
{"name": "Max Mustermann", "fit": 5, "intent": 4, "authority": 3},
{"name": "Erika Beispiel", "fit": 2, "intent": 3, "authority": 5}
]
}
```
Expected response (HTTP 200):
```json
{
"status": "success",
"scored": [
{"name": "Max Mustermann", "fit": 5, "intent": 4, "authority": 3, "score": 87, "tier": "high"},
{"name": "Erika Beispiel", "fit": 2, "intent": 3, "authority": 5, "score": 61, "tier": "medium"}
],
"total": 2
}
```
2. For invalid inputs (e.g., missing name or values outside 0–5):
```json
{
"leads": [
{"name": "", "fit": 5, "intent": 4, "authority": 3}
]
}
```
Response (HTTP 200):
```json
{
"status": "error",
"message": "Ungültige Lead-Daten.",
"invalidIndex": 0
}
```
3. Weightings for Fit, Intent, and Authority can be adjusted in the code node.
4. Webhook authentication is mandatory before going live.
5. Execution is logged in n8n; configure data protection and access control accordingly.
Required connections and APIs
API connections
No saved API credentials were detected in the workflow JSON. Still check webhooks, target systems, credentials, and data protection before activation.
Nodes
WebhookCodeRespond to Webhook
Isolated functional test passed
Optional isolated functional test
The isolated data flow was tested without external services or credentials.
✓ Standard case with complete dataChecks the complete standard flow with valid sample data.Isolated functional test passed✓ Variation or boundary caseChecks a valid variation or an important boundary case.Isolated functional test passed✓ Additional processing ruleChecks this workflow's additional business processing rule.Isolated functional test passed✓ Invalid or incomplete inputChecks that invalid or incomplete data is rejected safely.Isolated functional test passed✓ Empty inputChecks that an empty request receives a controlled response.Isolated functional test passed