AI Engineer World's Fair 2026
GTM Engineering: The Technical Bits — Everett Berry, Clay
Read the talk
GTM Engineering: The Technical Bits
Everett Berry of Clay traces the engineering beneath fast-moving go-to-market teams: mutable account data, asynchronous tool orchestration, persistent agents, and customer outreach where small automation mistakes can damage real relationships.
From a talk by Everett Berry
At a glance
Ideas worth remembering
GTM engineering treats changes to data, automations, and campaigns as shipped systems that need release cadence, iteration, and operational ownership.
A usable account model combines first-party activity, third-party enrichment, entity resolution, selective refresh policies, and evaluations of competing data providers.
Orchestration must model asynchronous dependencies explicitly: a successful write in one tool does not mean a downstream tool is ready, so waits, checks, retries, fan-out, and joins belong in the control flow.
A long-running GTM agent can be assigned per account, remain dormant between triggers, reload current context, and preserve state across a deal cycle—but continual learning and next-best-action selection remain unresolved.
Customer-facing execution needs domain-reputation controls, reply routing, and cross-channel suppression because locally correct automations can combine into a harmful customer experience.
The final coordination problem is human: reps need to see what agents did, understand why, disagree when necessary, and arrive at customer conversations with the same account context as the automated system.
GTM becomes a shipping discipline
GTM engineering starts from a change in cadence. At Clay, Berry describes shipping new data, automations, and campaigns every two weeks, then iterating on them much like an engineering team iterates on product releases. The role exists to remove the technical constraints that historically kept go-to-market teams from moving that quickly.
More capable AI models increase what a GTM engineer can automate, but models are only one part of the system. Berry organizes the underlying work into four connected areas: data, orchestration, agents, and execution. Each layer depends on the previous one. An agent cannot choose a sensible action if the account record is stale, and a correct decision still fails if the outreach tools execute it out of order.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
The account record is a changing model of the market
The data layer aims for what Berry calls a “perfect virtual copy” of the market: the target companies, the people inside them, and the current state of each relationship. Perfection is an aspiration rather than a stable endpoint. Companies get acquired, open offices, launch products, hire, and fire. Meanwhile, marketing, sales activity, meetings, expansion, and churn change the account’s relationship with the seller.
A new CRM therefore needs more than account names. Relevant contacts come first, followed by third-party account hierarchy, firmographics such as company size, technographics describing the software in use, and signals that suggest an account may be in market. Operational fields then record whether the account is a customer, expanding, churning, or scoring highly enough to pursue.
No single vendor supplies every field with adequate coverage. Berry’s concrete example is phone-number enrichment across a set of countries: using Forager alone filled only about half the desired records, so the workflow queried additional providers to fill the gaps. This technique, waterfalling, increases coverage by sending unresolved records to the next source rather than accepting the first provider’s omissions.
What does waterfalling make visible? The diagram shows that provider order is a decision rule, not merely a larger vendor list. Each source handles records still missing a value, while evaluations are needed to decide which providers deserve priority and which returned values are accurate enough to keep.
The target field is empty for a set of country-specific records.
Each provider receives records whose target field is still empty; evaluated results flow into the shared account record.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Freshness has a cost, so fields need different policies
Coverage is only the first data problem. The layer must merge purchased third-party information with first-party activity and incoming signals, then resolve different representations of the same company across sources. Without entity resolution, one account can fragment into several records and the automation loses a coherent view of its state.
Continuous refresh is expensive when each update purchases data, so refreshing every field on every run is wasteful. The system needs field-specific policies: volatile facts should update more often, stable facts less often, and pushed signals should update the account when events arrive. This selective maintenance is what makes the virtual market model economically usable rather than literally perfect.
The practical consequence is severe: automated GTM plays inherit the quality and timing of this layer. A workflow can run exactly as designed and still target the wrong company, contact, or moment if its underlying entities are mismatched or stale.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Orchestration is a distributed data-engineering problem
Once activity spreads across a CRM, warehouse, sequencer, dialer, call recorder, and chat interface, each tool develops its own partial view of the account. Berry commonly encounters teams working through ten, twenty, or thirty tools. Orchestration keeps those views coordinated as emails, calls, account events, and rep actions flow back into the data layer.
The systems do not share one workload shape. One may need a single record immediately, while another accepts hundreds of thousands of records in a nightly batch. Employee count changes frequently; headquarters location changes rarely. A single input may need to fan out to several destinations, and failures become normal once that work is distributed.
The most instructive failure appears when tools synchronize behind the orchestrator’s back. Suppose an orchestration workflow creates a contact in Salesforce and then wants to enroll that person in Outreach or another sequencer. Salesforce and the sequencer have their own asynchronous sync. The contact is observably present in the CRM but not yet available in the sequencer, so immediate enrollment fails. The workflow must wait, check again, and loop until the downstream record exists.
Where does the delay enter? The diagram exposes two control paths: the orchestrator writes to the CRM, but a separate connector controls when the sequencer sees that write. A successful CRM operation therefore does not prove downstream readiness; the loop must test the destination’s state before acting.
An event or schedule starts the orchestration.
The orchestrator controls the CRM write, but an independent asynchronous sync determines when the sequencer can act on the contact.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
General-purpose graph nodes encode the control flow
Clay’s response is a graph of general-purpose nodes rather than a chain of product-specific integrations. Different nodes run agents, call tools, evaluate conditions, execute code, or perform a map-reduce-style fan-out and aggregation. A trigger or schedule starts the graph; branches query several systems; their results come back together; and the combined context moves into the interfaces used by reps.
This graph does not remove distributed-system failures. It gives waits, retries, conditionals, fan-out, and joins an explicit place in the design. Berry presents the pattern as applicable whether the orchestration layer is bought or built: the important choice is to model control flow and data dependencies instead of assuming every integration behaves like a synchronous function call.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
One persistent agent follows each account over time
With data and orchestration in place, the account state now includes signals, changing fields, rep and agent actions, meetings, and feedback. Sales representatives often sort through this context manually. Berry’s proposed architecture assigns one agent to each account so the reasoning layer can maintain persistent account state across a deal cycle lasting weeks or months.
A long-lived account agent is dormant most of the time. A schedule, smart trigger, or heartbeat wakes it; it ingests the latest context from the data and orchestration layers; it reasons about the next action; and it records feedback for later decisions. The design must also map unstructured model output into structured CRM fields, where an incorrect value can affect later automation and customer communication.
What must persist while the agent sleeps? The lifecycle diagram makes clear that persistence belongs to the account state, not to a continuously running model call. Triggers restart computation around the latest account context, and feedback returns to the state used by later wake-ups.
The agent exists across a weeks- or months-long deal cycle but is inactive most of the time.
The agent sleeps between events, reloads current account context when awakened, acts, and stores feedback for the next cycle.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Agent-written fields need clear ownership
Berry recommends separating CRM fields updated by agents from fields updated by deterministic systems or people. That separation reveals who produced a value, prevents competing writers from silently overwriting one another, and gives feedback or review workflows a specific agent output to inspect.
A closed-lost reawakening agent shows why timing belongs in the architecture. It combines call information, email, CRM data, and warehouse context, but it does not immediately pursue an account after a loss. A time-based trigger introduces a deliberate cooling-off period before the agent reassesses the opportunity.
The unresolved frontier is continual learning and reliable next-best-action selection. Berry says GTM has not fully solved how an agent should update its own view of what works across accounts. Persistent state and feedback create the prerequisites for learning, but they do not establish that autonomous updates will improve decisions safely.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Execution turns system errors into human costs
The final layer sends the message, places the call, or coordinates another customer-facing action. This is where a technically valid decision becomes consequential. Berry’s displayed figures put cold-email replies around 0.5% to 1%—perhaps one reply from one hundred sequenced contacts—and describe LinkedIn as three to four times more effective than cold email. These figures come from charts discussed in the talk; Berry himself was uncertain that the cited email sample covered twenty million messages and said some displayed channel rates looked elevated, so the numbers support the narrow point that response margins are small rather than a precise universal benchmark.
Small margins raise the cost of bad agent behavior. If automated outreach says the wrong thing, it can lose the rare response the campaign might have earned. If it sends directly from a rep’s company address and recipients ignore or reject the campaign, the company’s domain reputation can suffer.
One workaround spreads outreach across multiple domains. That protects the primary domain from carrying all campaign risk, but creates a routing problem: replies arriving on alternate domains must return to the rep’s main inbox or working interface. Clay also uses a rep-proxy arrangement for some accounts, connecting multiple rep inboxes to a sequencer and sending on their behalf; other accounts use the multi-domain pattern.
Multichannel execution adds cross-channel suppression. When a call connects and books a meeting, the system should stop the email sequence and may need to remove the person from a lifecycle marketing campaign. Otherwise, individually successful tools create a collectively absurd customer experience: a booked prospect keeps receiving automated requests to book.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
The hardest rollout problem is the human–agent interface
The closing Q&A moves the bottleneck from infrastructure to coordination. Agents can provide the reasoning and decision layer for work previously performed by sales reps, but the rep may disagree with an action or may not know it happened. Because a person still joins the eventual prospect call, the automation must keep that person informed enough to understand the account and intervene when needed.
That interface needs more than a stream of agent outputs. It must make actions visible, reconcile disagreement, and coordinate ownership between automated systems and the rep. Otherwise, adding a capable decision layer merely creates a second actor with a different view of the account—the same inconsistency orchestration was meant to eliminate among tools.
The discipline also covers inbound GTM, not only outbound campaigns. Inbound systems must route a lead correctly, qualify the account, and recover relevant historical context before deciding what happens next. The four-layer model therefore applies across GTM: maintain the account model, coordinate system state, reason over context, and execute while keeping the responsible human in the loop.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Resources
Further reading
A practical companion explaining Clay’s two-week sprints, core internal stack, release notes, team structure, and examples of the workflows its GTM engineers maintain.
Related talks
- The Building Blocks of GTM Orchestration — Arman Vaziri, Ramp
Extends the orchestration layer with durable execution, searchable unstructured information, reusable skills, and pre-meeting briefs.
- Build the AI GTM Agent That Knows the Buyer Before the First Message
Develops the buyer-context problem using CRM records, conversations, job changes, LinkedIn activity, and website signals.
- 12-Factor Agents: Patterns of reliable LLM applications
Provides a production-oriented treatment of explicit control flow, structured tool calls, deterministic software, and human contact around agents.
Read the complete timestamped transcript
- 0:01
[music]
- 0:12
>> Okay, good morning everyone. I'm stoked
- 0:14
to kick things off this morning. Um,
- 0:17
today's talk is going to start off with
- 0:20
just a brief look at GTM engineering and
- 0:22
what it is, and then I'm going to get
- 0:23
into kind of the areas that I consider
- 0:26
to be the most technically interesting
- 0:27
and challenging
- 0:29
um, within this space. So, GTM is pretty
- 0:32
new. Um, it's arisen out of a couple
- 0:35
factors, but one of the main motivating
- 0:37
ones is that GTM teams have kind of
- 0:39
realized that it is now possible to ship
- 0:42
as fast as a product and engineering
- 0:44
team.
- 0:45
And so, the best GTM teams that I work
- 0:47
with are generally um, pushing changes
- 0:50
to their GTM structure almost at the
- 0:53
same cadence that an engineering team
- 0:55
might be doing releases. And so, at
- 0:57
Clari what that looks like is something
- 0:59
like this, where every 2 weeks we're
- 1:01
pushing new data to our teams, we're
- 1:04
pushing new automations, we're of course
- 1:06
running new campaigns, and we're
- 1:07
constantly iterating on the things that
- 1:09
we're shipping and trying to keep pace
- 1:11
with the speed that is um, that our
- 1:13
engineering team is working at.
- 1:15
So, um, to do this you need a couple
- 1:17
fundamentals in place, and in my view
- 1:20
GTM engineering at its heart is really
- 1:22
about removing the constraints that have
- 1:24
historically stopped GTM teams from
- 1:27
shipping at speed using technology.
- 1:30
Um, and the role itself has exploded.
- 1:33
So, um,
- 1:34
I would venture to say that most
- 1:36
advanced GTM teams are now hiring GTM
- 1:38
engineers or looking for this role, and
- 1:41
in my opinion it's one of the first
- 1:43
roles that actually is an index on the
- 1:45
advances that we're making in AI. And
- 1:48
so, as models have become more powerful,
- 1:50
GTM engineers have gained more leverage
- 1:52
within their organization and become
- 1:54
more valuable, and we've seen tremendous
- 1:56
growth in this role.
- 1:58
So, um I kind of break it down into four
- 2:01
areas. And what I hope to do with this
- 2:03
talk is kind of lightning round go
- 2:05
through some of the technical problems
- 2:06
and solutions that I see for this. If
- 2:09
you're not familiar with Clay, we are
- 2:10
obviously building infrastructure that
- 2:12
kind of attacks these areas. But this is
- 2:14
not meant to be a sales pitch. It's more
- 2:17
meant to be if you're an engineer or GTM
- 2:19
engineer that's working on these things,
- 2:21
some ways to think about how to
- 2:22
structure it. And then if you're a
- 2:24
founder in this space, some of the
- 2:26
interesting problems that I think are
- 2:27
worth uh tackling.
- 2:30
So, the first is data. And more than
- 2:33
most teams within a company, data is the
- 2:35
lifeblood of GTM. And the core goal that
- 2:39
I think we're trying to accomplish with
- 2:41
our data is to create a perfect virtual
- 2:43
copy of the market, the ideal customers,
- 2:46
the accounts and contacts that you're
- 2:47
going after.
- 2:49
So, um most teams start out with
- 2:51
something that looks like this. You have
- 2:53
accounts, which are the companies that
- 2:55
you're targeting, and contacts, which
- 2:57
are the people that you're going after.
- 2:59
The problem though that makes this
- 3:00
challenging is that accounts at least
- 3:03
exist in a state of constant change. As
- 3:05
an organization, a company might be
- 3:07
getting acquired, it might be spinning
- 3:09
up new offices, it might be launching
- 3:12
new products. So, the company itself is
- 3:14
always changing. In addition, you as the
- 3:16
GTM team are doing things that company
- 3:19
that is making it change as well. So,
- 3:21
you're marketing at them, you're selling
- 3:22
towards them, you're trying to book
- 3:24
meetings. That's changing the state of
- 3:26
the account. And then also, the company
- 3:28
itself is hiring people and firing
- 3:31
people and doing things that provide
- 3:32
signals for you. So, as GTM engineers,
- 3:35
we need to manage all of this state
- 3:37
within our accounts. And um we don't
- 3:40
have all the data that we need to do
- 3:42
this kind of right off the bat.
- 3:44
So, um this is what a an example from
- 3:47
Clay's CRM looks like. You can see I
- 3:49
have a ton of fields that are simply
- 3:50
telling me what state this account is
- 3:52
in, whether they're a customer or not,
- 3:54
whether they're expanding or churning,
- 3:56
how big they are, how well they're
- 3:57
scoring. And so, one of the fundamental
- 3:59
things that we need to do is make sure
- 4:01
that our records are updated so that we
- 4:03
can actively accurately action on what's
- 4:06
happening here.
- 4:08
And so, as a you know, in a brand new
- 4:10
CRM or a or a CRM that I'm going into,
- 4:13
the first thing that I am doing is
- 4:14
actually filling up the account with
- 4:16
relevant contacts. And then I'm layering
- 4:18
in third-party information that is going
- 4:20
to help me figure out which accounts to
- 4:22
target and which ones are in in market.
- 4:24
Primarily, I'm looking at the account
- 4:26
hierarchy, the firmographics that uh
- 4:29
describe how big the company is and so
- 4:30
forth, the technographics that describe
- 4:33
what technology they're using, and then
- 4:34
I'm trying to create signals on top of
- 4:36
those accounts that are going to allow
- 4:38
me to go after that um that company.
- 4:42
And so, because uh there's a lot of
- 4:44
third-party data involved here, we need
- 4:46
to actually go out and source and
- 4:48
procure that data. And within GTM, there
- 4:51
is literally hundreds of vendors that
- 4:52
you can turn to to um to get the data
- 4:55
that you need, but none of those vendors
- 4:57
is going to have a complete picture of
- 4:59
all the information you you desire. And
- 5:01
so, the key technique here is called
- 5:03
waterfalling. This is where I'm going to
- 5:05
actually go and look into multiple
- 5:07
providers to try to fill in all the
- 5:08
information that I need. If you see
- 5:10
here, if I was just using Forager to get
- 5:13
phone numbers for this um this set of
- 5:15
countries, I'd only get halfway there.
- 5:17
So, instead, what I need to do is layer
- 5:18
on all of these other providers. And
- 5:21
that's not only true for phone numbers,
- 5:22
but for most the other data points that
- 5:24
we care about within GTM. And so, either
- 5:27
you or the vendor that you're using
- 5:29
needs to run evals against these data
- 5:30
providers in order to obtain the most
- 5:32
accurate information.
- 5:35
And so, not only do I need to sync in
- 5:37
third-party information to my data
- 5:38
layer, I also need to incorporate
- 5:40
first-party information, and I need to
- 5:42
keep that constantly up to date. It's
- 5:44
also incredibly expensive to update data
- 5:46
all the time, especially if you're
- 5:48
purchasing it. So, I can't just update
- 5:50
all the fields. I need to kind of
- 5:51
selectively choose which fields to
- 5:52
update. And not only am I pulling
- 5:55
information from various sources, but if
- 5:57
I'm running a signals program,
- 5:58
information that I need is getting
- 5:59
pushed to me all the time as well. And
- 6:01
because I'm using multiple third-party
- 6:03
sources, the actual representation of a
- 6:06
single account in those different
- 6:08
sources is going to be different. So, I
- 6:09
need to resolve the entities um in
- 6:11
between them. And so, a great data layer
- 6:13
will tackle all of these things and
- 6:15
allow me to kind of move on to the more
- 6:18
interesting work, but without this, it's
- 6:20
really, really hard to execute automated
- 6:22
GTM plays.
- 6:24
So, the next piece that I need to get
- 6:25
right is orchestration. And this occurs
- 6:28
because within go-to-market, there are
- 6:30
literally dozens of tools that most
- 6:32
teams are using. So, I might have a
- 6:34
sequencer or a dialer or a bunch of
- 6:36
places where my reps are living or my
- 6:38
field marketing is living. And in most
- 6:40
cases, the view of the world that those
- 6:43
tools have is different depending on
- 6:45
where you look. And so, orchestration,
- 6:47
in my view, is really the act of keeping
- 6:49
all of that up to date.
- 6:51
And so, what happens to our data model
- 6:53
then is I'm
- 6:55
um on top of my enriched information,
- 6:57
I'm sending emails and calling into my
- 6:59
contacts. The account is generating
- 7:01
events that I need to keep track of. And
- 7:04
I now need a system to actually plug all
- 7:06
of this into my data layer.
- 7:08
And so, most teams are going to have
- 7:10
something that looks like this as their
- 7:11
basic stack: CRM, data warehouse,
- 7:14
sequencer, a dialer, a note taker for
- 7:16
call recording, and some chat interface
- 7:19
like Slack. However, um I usually see
- 7:22
like 10 or 20 or 30 tools that actually
- 7:25
these teams are interfacing with. And
- 7:27
orchestration needs to kind of keep that
- 7:29
information up to date.
- 7:31
The problem with orchestration is um all
- 7:33
of these different systems have
- 7:34
different data needs. So, some systems
- 7:36
need kind of like real-time updates one
- 7:38
record at a time. Other systems are
- 7:40
going to need hundreds of thousands of
- 7:42
records, maybe updated once a day. I
- 7:44
might need to schedule updates on a
- 7:46
monthly or weekly basis depending on the
- 7:48
data I'm using. Some data points like
- 7:50
employee count change all the time.
- 7:52
Other data points like headquarters
- 7:53
location change very rarely.
- 7:55
Um and I'm not going to be making
- 7:57
updates to all the fields at the same
- 7:58
time. So I need logic within these
- 8:01
systems that helps with that. I also
- 8:03
need to be able to take a single um
- 8:05
system that I'm working with and
- 8:06
actually fan its information out to
- 8:09
multiple different systems. And because
- 8:11
I end up with this kind of distributed
- 8:12
setup, I also have failures that are
- 8:14
happening all the time. So this turns
- 8:16
into a fairly complex data engineering
- 8:18
problem that we need to resolve.
- 8:21
A classic example of this is um when I'm
- 8:24
working with these different systems,
- 8:26
usually they are not fully orchestrated,
- 8:28
which means that one system is talking
- 8:30
to each other while I'm trying to talk
- 8:31
to both of those systems at the same
- 8:33
time. So for example, if you have a
- 8:35
salesforce uh connected to outreach or a
- 8:37
sequencer, usually that CRM that seek
- 8:40
sequencer are syncing independently of
- 8:42
your orchestration system. And so if you
- 8:44
create contacts in your CRM, you
- 8:46
actually need to wait for that contact
- 8:47
to sync to the sequencer before you can
- 8:49
then take action on it. This creates
- 8:51
some difficult problems where you
- 8:53
actually need to introduce things like
- 8:54
weights and loops to check if
- 8:55
information is ready.
- 8:58
So Clay, we've iterated on this problem
- 9:00
um quite a bit and we've ended up in a
- 9:02
place where we are basically taking a
- 9:05
graph-based view of the orchestration
- 9:07
problem with a series of general purpose
- 9:09
nodes that are executing various things.
- 9:12
And so we have nodes that run agents,
- 9:14
nodes that make tool calls, nodes that
- 9:16
handle our conditional logic, nodes that
- 9:19
run code, and then nodes that run
- 9:20
effectively this map reduce system to
- 9:23
fan out the information and bring it
- 9:25
back. And so a great orchestration layer
- 9:27
will handle all of these and whether you
- 9:29
buy it or build it, I think this is like
- 9:31
fundamentally the the kind of modern way
- 9:34
to set this up.
- 9:36
Here's an example of this um in in clay.
- 9:38
And again, you can use other tools for
- 9:40
this, but basically I'm going to have
- 9:42
some sort of event that kicks off my
- 9:44
orchestration, some trigger or some
- 9:46
schedule. I'm going to then talk to a
- 9:48
couple different systems. I'm going to
- 9:49
combine that information back together,
- 9:51
and then I'm going to push it out to
- 9:52
different interfaces that, uh, my reps
- 9:55
are using.
- 9:57
Okay, so now that I have a data layer
- 9:59
set up and I have my everything
- 10:01
orchestrated, I now have this system
- 10:04
which is starting to look a lot more
- 10:06
complex. And if you spend a lot of time
- 10:08
in go-to-market, uh, I think this is
- 10:09
actually like one of the simplest views
- 10:11
of what is happening with an account,
- 10:13
where I have multiple signals that are
- 10:15
occurring, I have data that needs to be
- 10:17
updated, I have actions that my agents
- 10:19
or reps are taking, and then I have
- 10:21
meetings that are happening and feedback
- 10:23
that's occurring. And so, um, the state
- 10:25
of the world today is that we are
- 10:27
relying on sales reps in a lot of cases
- 10:29
to manually sort through this, but one
- 10:31
of the great advances in the last year
- 10:33
or so is that we can now use agents to
- 10:36
take care of all of this context.
- 10:38
Um, however, if you use agents, you
- 10:40
actually run into some of the same
- 10:41
problems that you are dealing with if
- 10:43
you just use LLMs. So, um, in GTM in
- 10:46
particular, we are trying to build very
- 10:48
long-running agents, agents that run
- 10:50
over a course of weeks or months that
- 10:52
keep track of the state of an account
- 10:54
throughout a deal cycle. We also have a
- 10:56
high bar for error because a lot of the
- 10:59
results of our GTM work is customer
- 11:01
communication and getting that wrong can
- 11:03
have disastrous con- uh, consequences.
- 11:06
And then finally, the agents are often
- 11:09
doing unstructured work and pushing that
- 11:11
into systems that are highly structured
- 11:12
like a CRM. And so, the the mapping of
- 11:15
what the agent is producing is is super
- 11:17
important.
- 11:19
So, the architecture that we've landed
- 11:21
on for this that I think is most
- 11:22
powerful is an agent that exists for
- 11:24
each account and maintains a persistent
- 11:26
state of that account. It's always going
- 11:29
to execute, and because it's executing
- 11:32
over a of weeks or months, it's often
- 11:34
going to be dormant for most of the time
- 11:35
that it's available. So, we need to use
- 11:38
smart triggers or a heartbeat or
- 11:40
something to wake it up. And then when
- 11:42
it wakes up, it needs to kind of ingest
- 11:44
the current context of the account from
- 11:46
our data layer and our orchestration
- 11:47
layer. And because the agent is making
- 11:49
decisions for us in many cases
- 11:51
automatically, we need to allow for
- 11:53
feedback on the agent as well.
- 11:55
The um cutting edge of doing this is the
- 11:59
learning phase where as the agent works
- 12:01
on an account or a series of accounts,
- 12:03
it updates its own view of what's
- 12:05
working.
- 12:06
Today in GTM, this is not fully solved
- 12:09
yet. And in fact, the continual learning
- 12:11
um effort and the next best action
- 12:14
suggestions are kind of one of the
- 12:15
cutting edge problems that that we're
- 12:17
working on.
- 12:18
So, here's a look at um a a kind of a
- 12:21
basic agent. You can see here that I'm
- 12:23
pulling in information from a couple
- 12:25
different sources. I'm using reasoning
- 12:27
steps here. And then critically, I'm
- 12:29
also updating different values in my CRM
- 12:32
that are just for the agents. So, I
- 12:34
always recommend separating the fields
- 12:36
that agents are updating from the fields
- 12:37
that deterministic systems are updating
- 12:40
or that people are updating.
- 12:41
And to look at a full uh view of an
- 12:43
agent, this is a closed loss free awaken
- 12:46
agent. So, you can see it's talking to
- 12:48
Gong, email, CRM, and um my data
- 12:51
warehouse. And so, it's pulling together
- 12:53
multiple pieces of information. And this
- 12:55
agent is triggered on a time basis. So,
- 12:58
if if we lose an account, we're not
- 13:00
going to kind of like immediately go
- 13:01
after that account again. We're going to
- 13:03
wait for a little bit of time in order
- 13:05
to um in order to attack it again. So,
- 13:08
there's a number of kind of timing and
- 13:10
context issues that we have to address
- 13:12
when we're building agents for GTM.
- 13:15
The last step um that that is important
- 13:17
here is the actual execution step. So,
- 13:20
now that we have a data layer that
- 13:21
contains the perfect copy of the virtual
- 13:23
world, we have an orchestrated system
- 13:25
that's um sharing context with all of
- 13:27
our systems. We have agents that are
- 13:29
making decisions and reasoning about
- 13:30
what to do. We actually need to get in
- 13:32
front of customers and execute our
- 13:34
messaging.
- 13:36
Uh unfortunately, uh messaging and
- 13:38
execution is one of the hardest problems
- 13:40
in GTM engineering. Here's a look at
- 13:42
some of the um email open and reply
- 13:45
rates over time. Generally, what we
- 13:48
observe is that cold email works less
- 13:50
and less well as the years go on. This
- 13:52
is a trend that's been true forever.
- 13:54
Look at a snapshot of this. Um if you
- 13:57
look at the far left here, I actually
- 13:58
think these are pretty uh elevated rates
- 14:01
for some of these, but the relative
- 14:03
differences between these channels is
- 14:05
correct. So, you know, LinkedIn can be
- 14:07
three to four times more effective than
- 14:08
cold email. Cold calling and cold email
- 14:10
are roughly the same.
- 14:12
And then on the right here, um this is a
- 14:15
series of uh statistics from Smart Lead.
- 14:18
This is across, I think, 20 million
- 14:19
emails. And so, you can see we've got
- 14:21
somewhere between a half a percent and
- 14:23
1% reply rates. So, what that means is,
- 14:25
of course, if we've got 100 contacts
- 14:27
that we're sequencing, maybe one of them
- 14:29
will reply. And so, that really raises
- 14:32
the stakes for agentic execution within
- 14:34
GTM because if your agents are doing the
- 14:37
wrong things, then you're missing out on
- 14:39
the margin, which is where most GTM
- 14:40
teams are uh are having success.
- 14:45
The other thing with execution is you
- 14:47
have to solve some very human problems.
- 14:49
So, for example, do you email on behalf
- 14:51
of the rep, or do you let the agent do
- 14:54
the emailing? If you email on behalf of
- 14:56
the rep, what that means is like
- 14:58
[email address omitted] is actually reaching
- 15:00
out directly to customers. But, if I do
- 15:03
that in the wrong way, or I don't get
- 15:04
the replies that I need, that then means
- 15:07
that my overall domain reputation is
- 15:09
going to suffer for for my company. So,
- 15:11
a common technique then is to use
- 15:12
multiple domains to get in touch with
- 15:14
customers. But, then if I do that, I
- 15:16
actually need to find a way to route
- 15:17
responses on that domain back to my main
- 15:19
domain so my reps can process it.
- 15:22
And that's just email. There's also
- 15:23
multi-channel outreach, which is tricky
- 15:26
as well because you then have to, for
- 15:28
example, if you get a call connection
- 15:30
and a meeting booked on your call
- 15:32
sequence, you then need to suppress your
- 15:34
email sequence and maybe unenrolled
- 15:36
someone from a life cycle marketing
- 15:38
campaign.
- 15:39
So, the coordination of the execution of
- 15:42
all of this is also a hard problem and
- 15:45
also something that we can use agents to
- 15:48
to help resolve.
- 15:50
So, here's a look at one way that that
- 15:52
we're tackling this. This is a setup for
- 15:54
a kind of rep proxied view where we have
- 15:57
a bunch of rep inboxes that are
- 15:58
connected to our sequencer and we're
- 16:01
actually sending that on behalf of reps.
- 16:03
But like I said, we do this for kind of
- 16:06
a portion of our accounts. For many of
- 16:08
of our accounts, we actually use
- 16:09
multiple domains to go after them and
- 16:11
then we have to tackle the routing
- 16:12
problem.
- 16:15
So, that was kind of a lightning review
- 16:17
of what I consider to be some of the
- 16:20
like harder problems within GTM
- 16:21
engineering. I think if you get these
- 16:23
pieces right, you can end up in a place
- 16:25
where you're providing a technical
- 16:26
foundation for growth that is helping
- 16:28
your company achieve incredible results.
- 16:31
But I think a lot of teams actually
- 16:34
overlook some of the harder pieces here
- 16:35
and and don't necessarily design around
- 16:38
some of the constraints that they have
- 16:40
to deal with.
- 16:42
So, that's my talk. You can see me on
- 16:45
LinkedIn. There's a URL there and looks
- 16:47
like I have about 90 seconds for
- 16:48
questions if anyone wants to ask
- 16:51
anything.
- 16:55
>> [applause]
- 16:58
>> Any any questions for Everett?
- 17:02
Raise your hand. I can Okay.
- 17:09
>> Just uh curious as to what your um
- 17:12
biggest challenge is
- 17:14
with all these new um, within the org.
- 17:18
>> I think one of the harder problems is
- 17:19
probably the interface between the human
- 17:22
and the agent.
- 17:24
Like I said, I think the most powerful
- 17:26
use of agents within GTM is to act as
- 17:28
the reasoning and decision layer for a
- 17:30
lot of tasks that a sales rep was
- 17:32
previously doing. Um, and so you run
- 17:35
into a lot of instances where the rep
- 17:37
might think that they should do
- 17:38
something different or the rep might not
- 17:40
know that the agent did something. So,
- 17:43
um, because ultimately a human still
- 17:45
needs to get on a call with a prospect,
- 17:47
coordinating the, uh, connection between
- 17:49
what the automated systems are doing and
- 17:51
what the, um, what the human sales rep
- 17:54
is doing and making that work well, I
- 17:56
think is probably one of the hardest
- 17:57
problems.
- 18:00
Okay, well, oh, yeah, one more.
- 18:08
>> Um, I have a couple questions. So, um,
- 18:10
GTM engineers are fundamentally software
- 18:12
developers that have this, uh,
- 18:14
knowledge. And, well, my other question
- 18:17
is that, uh, this is mainly for outbound
- 18:19
or inbound as well is included in this
- 18:21
product.
- 18:21
>> For everything, yeah. So, um, like the
- 18:24
orchestration problem is pretty acute in
- 18:26
inbound. You have to get the routing
- 18:27
right. You have to qualify the account
- 18:29
properly. There's usually historical
- 18:31
context on inbound that comes in that
- 18:33
needs to be, um, needs to be understood.
- 18:35
So, uh, yeah, this I think GTM
- 18:37
engineering covers, uh, covers all of
- 18:39
GTM.
- 18:40
And, uh, if you want to chat with me
- 18:41
more about this, I'll just be right
- 18:43
outside, but I will hand it to the next
- 18:45
speaker now. Thank you.