Build an outbound prospecting workflow
Find prospects, enrich them, generate personalized messaging, update records, and optionally add contacts to Instantly.
This guide builds a repeatable outbound workflow that finds prospects, enriches them, generates messaging, writes results back to GTM Engine, and optionally enrolls leads in an Instantly campaign.
What You'll Build
A workflow with this shape:
- Find matching accounts or contacts.
- Loop over the results.
- Enrich each record.
- Generate a personalized angle or sequence.
- Update GTM Engine fields.
- Optionally add the contact to Instantly.
When to Use This
Use this when your team wants a repeatable prospecting motion instead of manual list building and copywriting.
Good use cases:
- Build a list of lookalike accounts.
- Find contacts that match your ICP.
- Generate account-specific outreach angles.
- Write research and messaging back to the record.
- Enroll qualified contacts in a campaign after review.
Estimated time: 30-45 minutes.
Concepts used: Workflows, Tasks, Variables, For Each.
Prerequisites
- Clear ICP or reference account criteria.
- Enrichment enabled.
- Fields where you want to store generated messaging or research.
- Optional: an Instantly campaign id if you want automatic enrollment.
1. Define Workflow Inputs
Create a new workflow and define inputs such as:
reference_account_idif you want to find similar accounts.search_criteriaif you want to describe the ICP directly.max_resultsif you want callers to control list size.campaign_idif you plan to add leads to Instantly.
Start with a small max_results value while testing.
2. Add Find Prospects
Add a Find Prospects task.
Common configurations:
- Prospect type: accounts or contacts.
- Search method: find similar, criteria-based, or product ICP-based depending on your workflow.
- Max results: start small, such as 5 or 10.
- Reference or criteria: use workflow inputs like
{{ inputs.search_criteria }}or the selected reference account.
The task's default output key is prospects, so downstream steps can use the returned list.
3. Add For Each
Add a For Each task to process each prospect.
Configure:
- Items: the array from Find Prospects.
- Nested workflow: a subworkflow that handles one prospect at a time.
- Concurrency: start with
1while testing, then increase deliberately if the workflow is safe to parallelize.
The nested workflow pattern keeps the main workflow clean and makes the per-prospect process reusable.
4. Build the Per-Prospect Subworkflow
Create a nested workflow that takes one prospect as input.
A useful subworkflow shape:
- Get Record if the prospect already maps to a GTM record.
- Enrich to fill company, contact, social, phone, email, and job-change context.
- AI Prompt to generate a personalized angle or message.
- Update Record to store the result.
- Optional Instantly Sequence to enroll the lead.
Keep Instantly enrollment disabled until the generated fields look reliable.
5. Generate Messaging with AI Prompt
Use an AI Prompt task to turn enrichment and record context into a concise output.
Example prompt:
Write a short outbound angle for this prospect.
Company:
{{ inputs.prospect.companyName }}
Domain:
{{ inputs.prospect.domain }}
Enrichment:
{{ steps.2.enrichment | json }}
Return:
- one sentence account angle
- one suggested email subject
- one personalization noteFor production workflows, prefer structured output so later tasks can map fields reliably.
6. Update the Record
Add an Update Record task and map generated values into fields such as:
- Account angle.
- Prospecting notes.
- Personalization.
- Tags.
- Campaign status.
Use fields your sales team already reviews. A workflow is more useful when it updates the record where reps work.
7. Optionally Add to Instantly
Add an Instantly Sequence task only after you trust the upstream steps.
Configure:
- Campaign id: from
{{ inputs.campaign_id }}or a fixed campaign. - Email: the enriched or existing contact email.
- Name/company fields: from the contact or prospect record.
- Personalization: from the AI Prompt output.
Keep skipIfInCampaign enabled so reruns do not duplicate leads in the same campaign.
8. Test with a Small Batch
Run the workflow with a small result count first.
Check:
- Find Prospects returns the right kind of records.
- For Each receives an array.
- Enrichment fills expected fields.
- AI Prompt output is usable.
- Update Record writes the right fields.
- Instantly is disabled or pointed at a safe test campaign while testing.
Success Check
You are done when:
- The workflow finds a focused prospect list.
- Each prospect is enriched or skipped with a clear reason.
- Generated messaging is stored on the right record.
- Batch History shows progress and failures clearly.
- Optional campaign enrollment happens only for intended leads.
Common Pitfalls
- Starting with too many prospects while testing.
- Running Instantly enrollment before reviewing generated messaging.
- Passing a non-array value into For Each.
- Writing generated copy into fields reps do not review.
- Forgetting to rerun only failed items after fixing a batch.