How to Build a Commercial Lead Qualification Agent in CogniAgent

“We need our office cleaned” isn’t enough for anyone to scope or price against. Behind that one line sits square footage, occupancy, current provider status, who signs off on a contract, and whether the site needs a walkthrough before anyone can quote it at all. Collecting all of that by hand means a slow back-and-forth for every lead and a different set of questions depending on who happens to answer the phone. This build turns that into one consistent conversation that ends with a summarized brief landing directly in an estimator’s inbox.

The architecture at a glance

This is a Conversational Flow with a single actor. The actor collects the facility and service details it needs, one question at a time, skipping anything the contact already volunteered. Once the conversation is complete, a built-in Act action inside the actor summarizes everything gathered, and a connected Gmail integration is what sends that summary to the estimator, with no separate branching logic or downstream Application involved.

Step 1: Connect the customer channels

Configure whichever channels commercial enquiries arrive through: Website Widget, Phone, SMS, Gmail, or Outlook. Remove any channel this business doesn’t use. An unused channel sitting connected is one more surface someone has to check when a lead doesn’t show up where expected, and it’s easy to forget it’s live months after setup.

Step 2: Define commercial services in Global Context

Add the real service area, service types, minimum contract size, notice period, and exclusions to Global Context, as plain facts rather than instructions. For example: “We service commercial accounts within 40 miles of downtown. We offer daily janitorial, weekly cleaning, deep cleaning, floor care, window cleaning, and post-construction cleanup. We require a minimum 3-month contract for recurring accounts. We do not service facilities requiring hazmat certification or work above two stories without a specialized subcontractor.” This is what every question the actor asks reasons against, so it needs real numbers, not placeholders.

Step 3: Add the Commercial Qualification actor

Add an actor named Commercial Qualification, with Focus Mode set to Persistent. This conversation needs to reach a complete brief even if the contact’s answers wander, rather than closing out on a partial one.

In Context, alongside the service details from Step 2, list the fields the brief needs: business name, primary contact name and title, contact details, business address, facility type, square footage, number of floors, service type, frequency, current provider status, decision-maker and procurement process, budget approval timeline, and access or security requirements.

In Instructions: “Qualify commercial cleaning leads for office, retail, medical, industrial, and other facility types. Collect business name, contact name and title, contact details, business address, facility type, square footage, number of floors, service type, frequency, current provider status (if any), decision-maker and procurement process, budget approval timeline, and access/security constraints. Ask about specialist hazards, biohazard exposure, restricted-access areas, working at height, only when relevant. Set qualification_outcome to booking_ready, site_visit_required, manual_review, or specialist_review. Never quote a price or confirm availability.”

Set the Definition of Done: “The conversation has finished, and the contact has provided all of the necessary details.”

Step 4: Connect the Gmail integration

Open the actor’s Capabilities panel and go to the Integrations tab. Click Add Integration, select Gmail (legacy), and connect the account that should do the sending. Until this is connected, the integration sits there showing NO CONNECTION, and nothing downstream can send anything, regardless of what the actor’s instructions say.

Enable the SEND EMAIL action, which sends via the Gmail API using the authenticated account. In When to use, write the exact trigger condition, since the actor reads this note every time it decides what to do next: “Send a summary email to {{estimator_email}} when the conversation has finished.” Replace the placeholder with the real estimator address, the same way as the Act action in Step 5; this note is a second place that address needs to be correct, not a duplicate of the same setting.

Step 5: Add the Prepare Outcome act action

In the actor’s Advanced tab, add an Act action named Prepare outcome.

In What should happen here?, write: “Summarize the commercial brief, and send the summary of the call to {{estimator_email}}.” This action decides what the summary says; the Gmail integration from Step 4 is what carries it out. Without that integration connected, this instruction has nothing to call.

Leave Definition of Done for this action set to: “The conversation has finished, the contact has provided all of the necessary details.” This is optional and CogniAgent will infer it from the instruction above if left blank, but spelling it out here keeps the action from firing on a conversation that’s only partway through.

Leave Wait for the user to reply turned on. This action runs once the qualifying conversation is finished, not mid-sequence between two of the actor’s own questions, so there’s no reason to disable the wait here.

Step 6: Test representative accounts

Run test conversations for a small office account, a multi-location retail account, and a case with missing facility information. Confirm the actor never states a price or confirms availability in any of them, and confirm the summary email arrives at the estimator’s address with the full brief once each conversation reaches its natural end, not a partial one triggered early. Confirm that a facility likely to need a walkthrough, a large multi-floor building or one with restricted access, gets routed to site_visit_required rather than booking_ready.

Step 7: Deploy

Deploy once the channel connections, the Gmail connection, and the summary email have all passed testing. An estimator who never receives the email has no way to know a qualified lead came through, even if the conversation itself went perfectly, and an unconnected Gmail integration is the most likely reason that email never sends.

What this saves the business

Every commercial enquiry that reaches an estimator today probably went through a slightly different set of questions depending on who took the call and what they remembered to ask, and commercial accounts have more moving parts than a residential job: procurement processes, current-provider contracts, facility access rules. This build asks the same complete set every time and lands the summary directly in the estimator’s inbox, so there’s a usable brief waiting the moment the conversation ends instead of a transcript someone still has to read and organize by hand.

Other Guides