Let’s talk
← Selected workPlate 04 of 05

CRM build

Test build on sample data

The reply lands in Emailify. The deal starts in the CRM.

Emailify synced into a HubSpot test account and a Salesforce Developer Edition org, with the pipeline, the custom fields and the reply automation set up in each CRM.

Project
CRM build
Context
Test build on sample data
My role
CRM configuration and integration

§ I The problem

Why this exists.

The outreach tool holds the conversation and the CRM holds the pipeline. Without a bridge, someone copies replies across by hand, and every deal starts from whatever they remembered to paste.

§ II How it works

The workflow, step by step.

Fig. 4 — From a reply in Emailify to a deal in the CRM
1Emailify records itThe prospect, the campaign they are in, and every reply, classified by type.
2Sync writes the factsCompanies matched on domain with their parent company, then contacts, campaigns and replies. Running it twice creates nothing new.
3CRM rule firesA positive reply opens a deal with the contact, the company and a follow-up task linked to it.
4Deal is workedPositive reply, call booked, call held, proposal sent, then won or lost.
5

A bounce or an unsubscribe goes the other way: the contact is marked unqualified, and an unsubscribe is opted out of email. A guard stops a contact who already has an open deal from getting a second one.

  1. A sample workspace in Emailify holds three finished campaigns: 720 invented prospects at 482 invented companies, with sends, replies, bounces and unsubscribes.

  2. A Python sync reads that workspace and writes it into each CRM. Companies are matched on email domain, and 45 of them sit under a parent company.

  3. In HubSpot, campaigns are a custom object. Each contact is linked to its campaign with an "Enrolled in" label, and every reply is a note on the contact’s timeline.

  4. In Salesforce, the same data goes into the standard Campaign and Campaign Member objects, with each reply logged as a completed task.

  5. Rules inside each CRM do the rest. A positive reply opens a deal on the Outbound pipeline with the contact, the company and a follow-up task attached. A bounce or an unsubscribe marks the contact unqualified.

§ III Build decisions

What I chose, and why.

The sync writes facts only. Deals, tasks and status changes belong to workflows inside the CRM, so a sales team can change the rules without touching code.

Every write matches on an ID that comes from Emailify, so a second run creates nothing new. Both CRMs were checked after one.

The deal workflow has a guard: a contact with an open deal does not get a second one. It was tested both ways, including the case where the guard field is empty, which in HubSpot did not behave the way the filter reads.

Duplicates are handled at both ends. The sync matches companies on domain and takes over an existing contact with the same email instead of copying it. Planted duplicates were merged by hand in HubSpot.

In Salesforce, the opportunity flow looks up its record type by name instead of storing an ID, so it still works when it moves between orgs.

§ IV What you can see

The evidence, and its limits.

The Outbound deal pipeline in HubSpot, with deals in the Positive reply, Call booked, Call held, Proposal sent and Closed Lost stages
Specimen — the Outbound pipeline in a HubSpot test account. Sample data: invented companies, not a client result.
The HubSpot workflow that creates a deal, links it, creates a task and updates the lead status
Workflow — a positive reply creates the deal, links it to the contact and company, adds a follow-up task and sets the lead status.
The Emailify properties on a sample HubSpot contact: emails sent, last campaign, reply type, reply snippet and sequence status
Contact — the properties the sync writes, on a sample contact.
A sample campaign record in HubSpot with its enrolled contacts and the replies on its timeline
Campaign — the custom campaign object, with its enrolled contacts and the replies on its timeline. Sample data.
A parent company in HubSpot with its child companies listed
Hierarchy — a parent company and its child companies, matched on domain. Invented companies.
A HubSpot dashboard with sends and replies by campaign and deals by stage, all on sample data
Dashboard — sends, replies and deals by stage, built on the sample data. Not a result.
The HubSpot workflow that marks bounced and unsubscribed contacts unqualified
Workflow — a bounce or an unsubscribe marks the contact unqualified.

§ V Built with

The stack underneath.

Next plateReportOps

Bring the process.We’ll find the possibility.

Tell me what keeps landing on your team’s plate and we’ll talk through what could work better.

✦
Faaz.KhanAI Automation · Cognivio AIBack to top ↑