Case study / Trades and field services
From email enquiry to an owned CRM opportunity
How an Auckland property services business used n8n, AI classification and Brevo CRM controls to turn direct emails into actionable sales opportunities.
01 / Context
The operating problem
Direct customer enquiries arrived in a shared mailbox alongside internal messages, form notifications, newsletters and reply threads. Genuine requests had to be recognised, copied into Brevo CRM, assigned to the Quote Requested stage and acknowledged. Manual handling made that process dependent on someone monitoring and interpreting every message.
The production n8n workflow already classified emails and created CRM records, but two batch-handling defects could hide or misroute valid enquiries. Rejecting one non-enquiry could stop processing the entire batch. In a later branch, only the first contact's open-deal result could control routing for several contacts. The happy path worked; the risk sat in mixed batches and duplicate prevention.
02 / Process
What the work looked like
The workflow begins with an IMAP mailbox trigger. Explicit filters remove known system messages, form notifications, replies and forwards before an AI classification step decides whether the remaining message is a genuine customer enquiry and extracts useful contact and service details.
For accepted enquiries, the workflow creates or locates the Brevo contact and checks for an existing open opportunity. An existing deal receives the new context; otherwise the workflow creates a deal in Quote Requested with Direct Email as its source. The customer then receives a branded acknowledgement, while the sales team retains responsibility for qualification and response.
03 / Change
What was redesigned
We repaired the parser so a rejected item skips only that email instead of returning an empty result for the whole batch. Accepted and error items preserve their original input position, and fallback data is read from the matching source email. Malformed AI output remains visible as an error rather than being mistaken for a valid enquiry.
We also changed the open-deal filter to emit one independently paired result for every contact lookup. Won and lost deals remain excluded, while the first open deal in each contact's own response determines whether the workflow adds a note or creates a new opportunity.
The deployment was kept narrow: parser and routing logic changed while credentials, prompts, filters, contact and deal rules, outbound messages and the IMAP cursor were preserved. The published workflow version was read back to confirm the intended source was active.
04 / Outcome
What changed and how it was measured
A controlled replay of a saved four-message batch reproduced the original failure: the old parser returned no results even though the third message was a genuine enquiry. The repaired parser retained that enquiry and preserved its original source position.
A second mixed test combined an empty contact response, an existing open deal and a contact requiring a new deal. The previous first-result behaviour was reproduced, then the repaired filter produced three separately paired outcomes with the correct note or create route for each contact. All 21 automated tests across both controls passed.
The repaired workflow is active, but a new live multi-contact execution has not yet provided end-to-end confirmation. No time-saving, response-time or revenue claim is made from the offline replay and routing tests.