The score starts with an email, not a customer
Workflow 02.02 watches Gmail for a message labelled Lead or a subject containing a common enquiry term. It passes the sender, subject and up to 3,000 characters of the message to a model. The model extracts a contact name, company, requested service, stated budget and timeline. It also returns a score, a reason for that score and a decision on whether the message is a real enquiry.
That last distinction matters. Spam, cold sales pitches and job applications are meant to stop before the reply and lead-sheet branches. A real enquiry continues down both branches. One creates a Gmail draft. The other writes the extracted facts to a Google Sheet and checks whether the score is high enough for a Slack alert.
The score is not a revenue prediction. It is a routing signal from one inbound message. It decides whether the owner gets interrupted, not whether the sender deserves a reply.
The four fields that produce the score
The extraction prompt gives the model an explicit weighting:
- Budget clarity contributes 40 points. The field is
budgetStated. If the sender does not state a figure, the model must returnnullrather than invent one. - Timeline urgency contributes 25 points. The field is
timeline, extracted from whatever the sender says about dates, urgency or desired start. - Fit to the listed services contributes 25 points. The field is
service. It is compared with theservicestext in Vault Config, which ships with placeholder offerings and must be replaced for the actual business. - Specificity of the request contributes 10 points. This rewards an enquiry that explains the work rather than merely asking whether the business is available.
Those fields answer practical questions. Can the sender describe the job? Is it work this business sells? Is there a usable time frame and a stated commercial range? Together they separate an actionable brief from a vague opening message.
They are not independent. A detailed request often includes a timeline. A prepared sender may state both budget and scope. Several fields can reward the same quality. It looks like arithmetic, but the inputs remain model judgements about prose.
What happens at the threshold
Every real enquiry reaches the lead sheet. The workflow records received time, name, email, company, service, budget, timeline, score, status and last-contact time. In parallel, it writes a reply that restates the request, answers the obvious next question and ends with the booking link. It stays as a Gmail draft by default, so a person decides whether to send it.
Only the notification is selective. A filter passes scores of 70 or more to Slack. The alert includes contact, company, score reason, service and timeline. A lower score still produces the draft and sheet row. It simply does not claim immediate attention in Slack.
The consequence is limited. A borderline result changes the interruption, not the record. The owner can still see and answer the enquiry.
A score that would be wrong
Imagine a long-standing client refers a new company with this message: “Mara suggested I contact you. We need the same onboarding fix you built for her. Could we talk next week?” It is specific to both people, but sparse on the four scoring inputs. There is no stated budget. “Next week” is a conversation date, not necessarily an urgent delivery timeline. The service is described through a reference that may not match the configured service words. The request omits scope because the sender assumes the referral supplies context.
That can produce a low score even though the referral makes the opportunity credible. The workflow has no field for referrer, relationship, buying authority or CRM evidence. It reads the email and configured service list. A model may mention the referral in scoreReason, but the scheme gives it no points.
The opposite error is possible. A polished cold pitch can state budget, urgent timing and precise scope resembling the service list. The isRealEnquiry gate should reject it, but if that classification fails, its clarity can produce a strong score.
The repair is a rule, not a smarter adjective
Do not ask the model to be “more accurate”. Add evidence the workflow can test. A referral mailbox, a form field for the referrer or a known-client lookup can set a flag before scoring. That flag can trigger its own alert or a review queue. The model still extracts the brief without inferring relationship history from one sentence.
The same applies to service fit. Replace the placeholder services with concrete offers and exclusions. If discovery calls are welcome without a budget, do not let missing budget clarity dominate. Change the weights or add a rule. Points help only when they match how the business qualifies work.
Where this workflow does not fit
If volume is low and the owner reads every enquiry promptly, scoring adds ceremony. A Gmail label and lead sheet may be enough. A CRM is better when referrals, account history, deal stage and several employees determine priority. This workflow sees one message, not shared sales context.
There is another limit. The file was checked against a real n8n installation, but not run end to end with real Gmail, OpenAI, Google Sheets and Slack accounts. Test accounts and controlled messages come first. The score is a documented design, not proof of consistent interpretation.
The useful question behind the points
The four inputs in workflow 02.02 are budget clarity, timeline urgency, fit to the configured services and request specificity. They measure how actionable the email looks. They do not measure trust, relationship or the full value of the opportunity.
Keep that boundary. Use the score to decide which recorded enquiry creates an extra interruption. Keep the draft, sheet row and human decision outside the threshold. Then a wrong score stays visible and recoverable instead of quietly ignoring a customer.