ZCode B2B Inquiry Workflow
This guide shows you how to give the Laifaxin B2B outreach toolkit to ZCode. You describe the product and approve each stage. The AI finds prospects, saves contacts, writes outreach emails, and creates a follow-up plan—but it still stops for your explicit approval before real sending begins.
Toolkit repository (the prompts in this guide mirror it; when they differ, the repository wins):
https://github.com/tony-apan/laifaxin-b2b-sales
Understand the Process First
Do not worry about the technical terms that appear later. For a beginner, this is a five-stage loop that feeds qualified-inquiry websites back in as new seeds. Every round still needs human review; accuracy does not improve automatically:
Loop Step 1: Prepare the tools
Complete five prerequisites: install and sign in to ZCode, enable the core capabilities, choose a BigModel plan and everyday model, prepare Laifaxin SVIP, and connect the account. Follow 5 Things one item at a time.
Loop Step 2: Confirm the seed
A seed customer is a proven example that resembles the customers you want. The AI uses it to find similar companies. Choose the starting route in this order:
| What you already have | How to start |
|---|---|
| An inquiry customer's website | Research it, confirm that it is a real target buyer, and use its official website as the seed |
| An existing or ideal customer's website | Validate it as a suitable example, then use it as the seed |
| Only a product, with no customer website | Infer audiences from the product, find candidate companies within an audience, then choose one accurate customer website |
Whichever route you start from, the first-round goal is the same: obtain one accurate customer website worth copying.
Loop Step 3: Prepare outreach
After approving the seed, the AI finds similar prospects and prepares outreach in order:
Find similar prospects → review the list and point cost → approve saving → save contacts → preview emails → approve sequence rules → create an inactive sequence
If the list is inaccurate, change the seed or direction. If an email is unsuitable, revise it. At this stage, all sending materials are prepared, but the sequence remains inactive.
Loop Step 4: Send and handle replies
Review the prospect list, emails, cadence, and contact count before giving the exact activation instruction. Outreach begins only after activation. When replies arrive, classify them as A / B / C / D:
A / B: prioritize follow-up and research · C: continue nurturing · D: apply Do Not Send and stop outreach
Loop Step 5: Feed inquiries back
Choose genuinely qualified inquiries from A / B replies. After researching them, extract their official websites, use those websites as new seeds, and return to Loop Step 2 to find more similar prospects.
This is not “search for one list and stop.” The loop is: prepare the tools → confirm an accurate seed → find similar prospects and reach out → receive qualified inquiries → turn inquiry-customer websites into new seeds → find similar prospects again.
5 Things
| Order | Requirement | What you need | Guide |
|---|---|---|---|
| 1 | Install and sign in to ZCode | Install it and select “Connect BigModel to continue” | Install and Sign In to ZCode |
| 2 | Enable core capabilities | Enable Full Access, Computer Control, Browser Control, memory, and indexing | ZCode Core Capability Settings |
| 3 | Configure the plan and model | Use a built-in BigModel plan and start with GLM-5.3-Flash; add third-party models only when needed | Configure ZCode Plans and Models |
| 4 | Prepare Laifaxin SVIP | Prepare an active SVIP account; the full workflow in this guide requires SVIP | Register for Laifaxin · SVIP Benefits and Upgrades |
| 5 | Connect the Laifaxin account | Sign in to Laifaxin in your browser and prepare the accesstoken plus current workspace orgId | Get the token and orgId, then Connect AI |
The minimum information for starting is only:
My email sign-off name: Tony
My product: Stainless steel insulated bottles for US promotional-gift wholesalers.
If you have an inquiry-customer, existing-customer, or ideal-customer website, include it. Missing details are acceptable. The AI should ask for only the next required decision, rather than present a long form at the beginning.
Install Kit
Create a ZCode task and send this entire prompt (it mirrors the repository README's install prompt):
Please install and learn this Laifaxin outreach Skill:
https://github.com/tony-apan/laifaxin-b2b-sales
Follow this order:
1. Download the latest code. If it is already installed locally,
identify the existing installation and local data first, then upgrade
by the repository's update rules; never overwrite or delete
existing `.local/` and `runs/` data.
2. Check and prepare the runtime environment automatically.
Do not assume Python, Git, curl, or other dependencies are present;
strictly follow the repository's environment-setup instructions
to install and recheck.
3. Read README.md, SKILL.md, RULES.md, and the relevant specs.
Treat this repository's SKILL.md as the entry point for later execution;
learn the full workflow, confirmation gates, safety boundaries,
website-profile enhancement, and device-migration rules.
Do not create a duplicate rule set.
4. Run the repository's self-check tool; fix any issue and recheck.
If the self-check does not pass, do not start finding prospects,
saving contacts, creating sequences, or sending.
5. When installation and learning finish, report in plain language:
- the install directory and current version
- whether the environment and self-check passed
- what this Skill can do
- which actions require my confirmation
- whether an existing project can be continued
6. Finally ask only: “Installation complete. What would you like to do?”
Do not request product, market, website, nickname, token, or any other
business data during installation.
After I describe what I want to do, follow SKILL.md's progressive guidance.
The toolkit updates faster than this guide. If the prompt above differs from the repository's current README, the repository wins — copy the latest prompt from there.
After installation the AI will still ask for your confirmation at every step; real sending starts only after you explicitly say “Activate <sequence name>” (see Step 6).
ZCode should download the repository, attempt the supported runtime setup, and read the current README.md, SKILL.md, RULES.md, and relevant output templates.

Continue only after ZCode reports that the environment and onboarding checks passed. For future upgrades, use Update an Existing Installation rather than creating a duplicate directory.
Connect, Choose a Direction, and Pass the Gate
Follow Get the token and orgId, then Connect AI to use the one-command console method and copy the complete accesstoken=... / orgId=... two-line block, then paste it unchanged into the current trusted local ZCode task. Do not split it, remove the field names, or retype it manually; the current tool recognizes the block automatically. Both values may be used temporarily during this workflow for check_login.py, gate_check.sh, and later tools that genuinely require authentication. They must never be written to files, runs/, logs, summaries, screenshots, backups, or migration packages, or echoed in messages. Clear both when the workflow ends; retrieve both again after switching accounts, workspaces, login state, or tasks. Never send them to group chats, support tickets, public documents, or an untrusted shared AI task.
Complete these five small gates in order:
- Environment check: The AI runs
tools/onboard_check.pyand clearly reports whether it passed. - Login check: The AI passes the complete two-line block unchanged to
tools/check_login.py --token '<complete block>', lets the current tool splitaccesstokenandorgIdautomatically, then reports the current user and workspace separately without displaying the token. - Minimum input: After login passes, provide only a personal sign-off name and one-sentence product description:
My email sign-off name is Tony.
I sell stainless steel insulated bottles to gift wholesalers in the US and Europe, with custom logos and small trial orders.
Assess product fit first, then show me four A/B/C/D acquisition directions. For each direction, explain why it fits, why I might reject it, and which one you recommend. Wait for me to reply with letters before creating the operator and product profiles in two separate rounds. Ask only one currently required decision at a time.
- Assess product fit: The AI should use buyer-pool size, cold-email reply behavior, purchasing cycle, and whether a wholesale, distribution, integration, or similar channel layer exists to classify the product and explain why:
| Fit level | Typical situation | Recommended approach |
|---|---|---|
| Strong fit | Many buyers, accessible business email, and relatively fast purchasing or inquiry cycles | Test the complete workflow, then scale gradually |
| Conditional fit | Buyer types vary; channel partners fit better than slow enterprise accounts | Prioritize channel partners, reduce rounds and cadence, or use manual low-frequency nurturing; keep it inactive until cadence is resolved |
| Weak fit | Tenders, qualification lists, project equipment, or multi-year buying cycles | Set expectations first, then let you choose: no more than 500 companies and one round with no standard 12-step sequence; target secondary or tertiary channels; or stop this workflow |
- Approve an acquisition direction: After the fit result, the AI must separately present four A/B/C/D acquisition directions. Every direction needs an audience combination, a reason to choose it, and a reason not to choose it, plus a recommended option. For an insulated-bottle example, the structure should look like this:
A. US promotional-gift wholesalers + corporate-gift distributors
Choose because: They may need custom logos and smaller replenishment orders.
Do not choose if: Your MOQ is too high for this group.
B. European drinkware importers + regional distributors
Choose because: They may purchase multiple styles and replenish stock.
Do not choose if: You have not prepared the product information required for the target market.
C. Outdoor and sports-brand buying teams
Choose because: The product has a clear use case and can test private-label demand.
Do not choose if: You need the fastest possible first-round feedback, because development may take longer.
D. Broad coverage across the audiences above
Choose because: You want to explore more possibilities at once.
Do not choose if: You need a focused first sample, because precision may fall.
My recommendation: A, because the purchasing use case is more direct for a focused first sample.
Reply with letters; combinations such as AB are allowed.
This is only a format example. The AI must analyze your actual product instead of copying these directions or reasons. Reply only with letters, for example:
AB
This step chooses acquisition directions. You may combine letters or request changes. It is not the A/B/C/D reply-intent grading used later after prospects respond.
After approving directions, finish the profiles and gate:
- The AI asks for one group of company-level facts and creates the operator profile; you may provide or skip them.
- In the next round, the AI asks for product-level facts and creates the product profile; it must not present both forms in one message.
- Approving the product profile records
confirmed; explicitly skipping it recordsdeclined. Adraftprofile cannot continue. - The AI runs
tools/gate_check.sh --token <token> --org <orgId> --product <operator_key>/<product_key>with the current workspace and product path. - The AI reports the environment result, current user/workspace, approved acquisition directions, product-profile status, and product-bound gate result. If any item fails, it must not enter audience discovery, save prospects, generate templates, create sequences, add contacts, or activate sending.
What to review first: Under the current toolkit guidance, use day-one delivery and open trends only when the list has roughly 5,000 contacts or more. With only a few hundred contacts, review bounces on day one instead of drawing trend conclusions, then evaluate replies on days two and three. The system does not guarantee inquiries or orders.
Choose Route
Inquiry Site
This is the highest-priority route. Verify that the company is a relevant buyer, then send:
This company has sent us a qualified inquiry: https://buyer.example
Explain why it fits, then use it as a seed to find similar prospects.
Customer Site
Use the real customer website directly rather than inferring an audience again:
This is an existing or ideal customer: https://customer.example
Verify whether it is a suitable seed, then find similar prospects.
Product Only
Ask the AI to infer audiences first. Each audience should include buyer role, market, expected inquiry speed, market size, and a recommendation. Select one audience for the first test.

After audience approval, the AI finds candidate seeds. Confirm that the company is a real potential buyer, not merely a related manufacturer, publisher, or irrelevant business.

If the recommendation is inaccurate, explain what is wrong and ask the AI to change the seed or audience. Approve one qualified seed before scaling.
Find & Audit
All three routes converge on “find similar.” The AI searches for candidate companies and audits samples for:
- buyer, wholesaler, distributor, brand, or integrator relevance;
- target country and market;
- purchasing logic similar to the seed company;
- usable company, contact, and email information;
- estimated company count, email limit per company, and point consumption;
- excluded regions or customer types.
Before any saving action, the AI must show the complete plan. Reply Confirm saving or request a smaller volume.

Test only one audience in the first run. If the sample is inaccurate, change the seed or search direction instead of saving bad prospects merely to finish the workflow.
Approve Each
A successful save does not authorize sending. Three separate approval stages remain.
5.1 Preview
The AI should show the recipient-rendered view, not only HTML source. Check that:
- product claims and numbers are true and supported;
- the opening starts from the buyer's perspective instead of leading with “We manufacture” or “Our factory”;
- each English email is at most 120 words and four paragraphs, with product and action keywords bolded two to four times;
- the final paragraph contains one specific, easy-to-answer call to action;
- audience, language, and salutation are correct, and the sign-off contains only your personal name;
- message variants are meaningfully different.

This screenshot mainly shows where to preview and approve. The toolkit continues to evolve, so current output must pass the latest automatic checks; do not copy the exact email formatting shown in an older screenshot.
When the content is correct, reply:
Confirm generation
5.2 Plan Rules
The AI should report the plan name, outreach rounds and cadence, target time zone, business hours, daily limit, per-domain limit, and the stop rules for Inquiry and Do Not Send tags according to product fit:
- strong fit may use the standard 12-step plan;
- conditional fit should reduce rounds and cadence or use manual low-frequency nurturing;
- weak fit uses one outreach round and no standard 12-step sequence;
- if the cadence is unresolved, the plan must remain
inactive.

If the rules are correct, approve this stage separately:
Confirm sequence creation
Before receiving this confirmation, the AI may only show the proposal and must not create the plan. After creation, you can also open Laifaxin and verify the schedule and advanced parameters directly.

5.3 Contacts
The AI may enter the contact-add stage only after the save job is finished, the selected tag contains contacts, and the plan is still inactive. It must first show the plan, tag, actual contact count, and current status, then wait for a separate approval:
Confirm contact addition
Before receiving this confirmation, the AI must not add contacts. Afterward, verify the actual number added:

Activate Last
Before activation, the AI should present one complete report covering:
- Laifaxin account and connection status;
- product and audience;
- qualified seed and similar-prospect pool;
- audit boundary, saved companies, contacts, and points;
- outreach templates, language, and verification of the follow-up rules for the selected fit level;
- product-fit level, outreach rounds, time zone, daily limit, and per-domain limit;
- verification that the Inquiry and Do Not Send protections are attached;
- evidence and pass status for all five checks: target-market rules, list source, sending identity, actual unsubscribe route, and suppression mechanism;
- current status: inactive.
The AI performs and displays these checks before activation; you do not need to configure the technical details yourself. If any check fails, or the fit-specific cadence is unresolved, the plan must remain inactive and activation is blocked.

After reviewing this report, first tell the AI:
I want to activate this plan. Run the final pre-activation checks first.
The AI must display the exact sequence name, all five verification results, and the current inactive status again. Then give a final confirmation for that specific sequence, for example:
Activate <sequence name>
This confirmation is valid only for the current S12 activation approval the AI has just displayed. It is bound to that exact sequence, the current product profile, and the five verification results. If the sequence, profile, or verification evidence changes, the old confirmation becomes invalid; the AI must show the updated results and ask you to confirm again.
The AI must record that exact sentence in the current task, execute activation, and read the status back as active. If it still shows inactive or no status is returned, do not treat activation as successful.
Handle Replies
A reply is not automatically a qualified inquiry. After a real person replies, first apply and verify the Inquiry tag so the current automated sequence has stopped, then have a person or AI assistant classify the reply. If the customer explicitly refuses or unsubscribes, replace it with the Do Not Send tag:
| Reply type | How to recognize it | Next action |
|---|---|---|
| Reply-intent A: High intent | Good product fit with clear need, quantity, project, or purchasing timing | Apply the Inquiry tag; prioritize research, quotation, and human follow-up |
| Reply-intent B: Interested | Good company fit, but the reply only asks for a catalog, price, or gives vague requirements | Apply the Inquiry tag; ask about use case, volume, specification, and timing |
| Reply-intent C: Future need | No current budget, later purchasing date, or request to reconnect later | Verify that the Inquiry tag has taken effect and stopped the current automated sequence, then move to low-frequency human nurturing |
| Reply-intent D: Refusal or irrelevant | Unsubscribe, rejection, competitor, student, job seeker, or unrelated request | Apply the Do Not Send tag and stop marketing |
| Auto-reply or vacation | No purchasing intent yet | Wait for the person to return or find another appropriate contact |
| Bounce | Address is unusable | Replace the email or exclude the contact |
Here, A/B means the reply-intent grade, not an audience-direction option labeled A/B/C/D elsewhere in the toolkit. After basic research, feed back only qualified reply-intent A/B inquiry-customer websites:
The following companies sent qualified inquiries and passed initial research:
1. https://inquiry-a.example
2. https://inquiry-b.example
Analyze their shared traits, select the strongest repeatable seed, and continue finding similar prospects.
Repeat “find similar → audit → save → outreach → inquiry feedback.” Qualified inquiries can provide candidate seeds that better reflect real buyers, but every round still requires sample auditing; do not assume accuracy will automatically improve.
Start Prompts
The blocks below are copyable structures. Replace the name, product, and .example sample URLs with your own real information before sending them to ZCode.
Product Only
My email sign-off name is Tony.
I sell stainless steel insulated bottles to US promotional-gift wholesalers, with custom logos and small trial orders.
I do not have a customer website. Assess product fit first, then present four A/B/C/D acquisition directions with a fit reason, rejection reason, and recommendation for each. Wait for my letter reply before creating the profiles and inferring audiences. Set cadence by fit: weak fit means no more than 500 companies, one round, and no standard 12-step sequence; remain inactive until cadence is resolved. Ask me to approve only one key decision at a time.
Customer Site
My email sign-off name is Tony, and the product is stainless steel insulated bottles.
This is an ideal customer: https://customer.example
Assess product fit first, then present four A/B/C/D acquisition directions with a fit reason, rejection reason, and recommendation for each. Wait for my letter reply before creating the profiles, validating this website as a seed, and finding similar prospects. Set rounds and cadence by fit and remain inactive until resolved. Show each result and wait for my approval before continuing.
Inquiry Site
My email sign-off name is Tony. I sell stainless steel insulated bottles to US promotional-gift wholesalers, with custom logos and small trial orders.
This company has sent a qualified inquiry: https://buyer.example
Assess product fit first, then present four A/B/C/D acquisition directions with a fit reason, rejection reason, and recommendation for each. Wait for my letter reply before creating the profiles, researching whether this is a repeatable reply-intent A/B buyer, and using its website as a seed. Set rounds and cadence by fit and remain inactive until resolved.
Update
Do not create a second empty installation. Send this to ZCode:
Follow the “Update to the Latest Version” section in the current README.md and update my Laifaxin B2B inquiry-generation system.
Back up and preserve local data in .local/ and runs/ first. After updating, run tools/onboard_check.py and report the health-check result.
See the latest release and release notes. The repository evolves over time; follow the current README.md, SKILL.md, RULES.md, and relevant specs/ files.
Checklist
- ZCode is installed and signed in, with Full Access, Computer Control, and Browser Control enabled.
- An active Laifaxin SVIP account is ready, and
onboard_check.pyandcheck_login.pyboth explicitly passed. - A personal sign-off name and one-sentence product description were provided, and strong/conditional/weak fit was assessed.
- The AI presented four A/B/C/D acquisition directions with recommendations and rejection reasons, and I approved directions by replying with letters.
- Operator and product details were handled in two rounds, and the product profile is recorded as
confirmedordeclined. -
gate_check.sh --token <token> --org <orgId> --product <operator_key>/<product_key>ran with the current product path, and the product-bound gate explicitly passed. - The correct starting route was selected from the available source material; weak fit uses no more than 500 companies, one round, and no standard 12-step sequence.
- The qualified seed, similarity audit, save volume, and point estimate were approved.
- Emails, follow-up plan, and contact count were approved separately.
- The cadence was approved for the selected fit level, and the complete pre-activation report showed inactive status.
-
Activate <sequence name>was stated for the exact sequence, and the system read the status back as active. - Replies were classified as A/B/C/D and tagged appropriately.
- Only researched, qualified A/B inquiry websites were used as seeds for the next similarity search.