The Building Blocks of GTM Orchestration — Arman Vaziri, Ramp

summarized

TLDR

Ramp's go-to-market orchestration system lets teams describe a marketing motion—like offering golf balls to golfers at construction companies—and automates execution across outbound, ads, web, and in-app channels. The system rests on a consistent internal customer data platform (Postgres, Kafka, Snowflake) and durable execution via Temporal, with agents pulling from a skill library and vector search. The key lesson is to build vertical solutions first (e.g., pre-meeting briefs for account managers) and then extend horizontally to other teams and channels, rather than attempting a perfect architecture upfront.

Key points

Ramp built an internal customer data platform (CDP) to unify CRM data, product data, enrichment data, web data, buying signals (internal propensity models and external signals like funding announcements), and interaction data (emails, meetings, calls, page views) into a consistent layer with transactional guarantees and referential integrity.

They use durable execution with Temporal, representing each tool call and model call as an activity. This allows resuming execution from the point of failure instead of restarting, and supports config-scoped tool calls and human-in-the-loop pauses for input.

A specific vertical solution is pre-meeting briefs for account managers: meeting events are piped in, attendee emails are fuzzy-matched to accounts (hard because one email can represent multiple businesses), and agents pull product usage, account vitals, agenda, and open tickets to prepare a brief.

They built a skill library that lets users customize agents with text-based custom instructions for different formats and information needs, driving adoption. Background agents nightly fan out per-account to generate meeting prep using the CDP, vector database, system-level skills, and user instructions.

The system was extended horizontally to other teams (e.g., AEs) by swapping data integrations—using more third-party data for pre-sales instead of product data—and adjusting skills accordingly. Employees get access to the same tools via a "GTM MCP", enabling them to build their own agents and automations; this surfaces new use cases to productionize.

The ultimate orchestration goal is multi-channel campaigns: by describing an intent (e.g., offer Pro V1 golf balls to golfers at East Coast construction companies), agents create an audience, generate personalized copy and sequences, spin up web landing pages with creative, and manage in-app notifications, with built-in multi-armed bandit exploration and guardrails for compliance.

For smaller companies, the recommendation is to start with one very specific automation (like using GPT-3.5 for personalized outbound sequences), solve real problems, and only then piece together vertical solutions—avoiding a year-long architecture project.

Tools mentioned

Techniques

  • Durable execution with Temporal
  • Vector search plus attribute and keyword search for retrieval from unstructured data
  • Embedding and chunking of enablement materials, product knowledge, and playbooks
  • Fuzzy matching of meeting attendees to accounts (same email can work for multiple businesses)
  • Horizontal scaling of automation patterns across teams by swapping data integrations and skills
  • Multi-armed bandit approach for balancing exploration and exploitation in campaigns
  • Human-in-the-loop tooling to pause and resume agent execution
Transcript (captions)

0:01 [music] >> Yeah, I really appreciate everybody showing up. Uh, as Madhu mentioned, my name's Armon. I lead our product and sales-led growth

0:19 engineering teams at Ramp. Um, and today I'm going to talk to you about, uh, the building blocks of go-to-market orchestration. And

0:28 um, to kick it off, like, what do I mean by go-to-market orchestration? Effectively, like, what we're building towards is the ability to just describe a motion,

0:38 right? Whether it's like playbooks or experiments or like evergreen campaigns that you want to run. And how those get like distributed across the channels through which you actually execute your

0:49 go-to-market, right? Whether it's outbound or ads or web or whatever. Um, we want the ability to kind of describe this and automate that output. And this

1:00 really started a few years ago where we kind of noticed that uh, there's a ton of great ideas, you know, like everybody across product and data and engineering and go-to-market have like really good

1:11 ideas for things that they want to do. And the bottleneck is kind of like everything after that, right? How do you go pull an audience to go and target? How do you go and convince a bunch of

1:19 people to like um, abide by whatever strategy that you've come up with or playbooks or enablement materials. Um, and we wanted to try to aim to uh, reduce that coordination

1:31 cost. So, there's parts of this where we could see it as like an engineering problem, even like a few years ago, just go and create like a consistent data substrate, go and like federate that

1:41 across the different systems through which you, uh, run your go-to-market. And obviously in the last few years, agents have really like deepened our ability to go and like push the level of

1:52 automation that you can do on behalf of operators like as close as possible to those points of execution. Um So, like really specifically, uh I'm a

2:02 golfer. Suppose I want to offer golfers at uh East Coast construction companies an incentive to like try Ramp, talk to sales, whatever.

2:11 Uh and we want to be able to go and spin up an audience of uh golfers at East Coast construction companies, spin up like an incentive. Let's go offer like some Pro V1 golf balls to uh these

2:22 people, go create like outbound sequences, generate the copy, generate uh creative for paid ads and for web, maybe show some in-app notifications for your customers, and do all of that

2:33 seamlessly by just describing the intent, right? And probably more than just this one sentence. Um So, a few years ago, we kind of

2:42 identified uh a few fundamental challenges here. Um As was previously mentioned, uh the necessary data for this was just messy, inconsistent across systems, right? Everybody's operating

2:53 off of a different uh source of truth, and that makes it like effectively impossible to go and distribute some coordinated action across these different go-to-market teams and

3:03 channels. Uh The next is that like reps were just buried in busywork, right? Even if like you have the best intentions, I want to go and like run this campaign, uh I want

3:13 your help doing it. The reality is that like uh our sales teams are in back-to-back-to-back-to-back meetings all day. They're outbounding, they're selling, and um

3:22 the operational burden of like doing everything in between sales was just really high, uh which made kind of like really scaling out experimentation and creativity

3:32 challenging. Uh And similar to that, just the coordination and distribution are expensive, right? If you're like, "I have this idea. I'm going to go write

3:40 this like proposal, this enablement material. I'm going to go try to like convince a bunch of people to go and use all of this." That's just like a really challenging thing to do on any like

3:49 pace that's not on the order of like months. Um So, um

3:55 over the last few years we've been trying to solve this problem from the ground up, right? How can we start with that uh ingestion and consistency problem uh and data quality, which is

4:05 just like, you know, on the road map every quarter. Um how can we then go build those vertical efficiency and growth levers, uh saving

4:13 people time uh in like managing operations and execution, uh as well as like how can we improve conversion rates, make people more performant by being able to kind of scale some of

4:24 these more like uh informed and personalized and creative strategies. And then how can we extend this horizontally, right? Teams have very common workflows at some level, right?

4:35 Everybody wants to outbound, everybody has meetings. Uh how can we go take the patterns that we build for one team and start to just mirror it to others?

4:42 Uh and now kind of where we're at is like this distribution and coordination problem, right? How can you go and execute across multiple channels simultaneously through just like the

4:52 description of intent? So, yeah, I'll get into the building blocks. Really broadly, uh go-to-market agents are complicated.

5:03 Um in order to do this effectively, right? Your agents have to understand pretty much the entirety of your company, how you go to market, why products are

5:12 useful, uh how to kind of like segment your buyers, your prospects, your customers from people who have like never heard about you and you have like no

5:21 information on them and they have no information on you, all the way to like customers who are actively using your products who have like a totally different set of um

5:30 you know, problems that you have to work with. Um And to just start to get a little technical here,

5:38 um we started with like this consistent data foundation uh problem. And if you're looking at this and you're like, that

5:46 looks like a CDP." Uh yeah, you're you're right. Uh we effectively went and built um an internal customer data platform at Ramp uh where we're effectively doing

5:58 your very traditional things. We're going to take CRM data, product data, uh enrichment data, um web data, buying signals, you know, whether it's things that are internally modeled like um

6:10 I don't know, we think that this customer has a high propensity to attach to procurement or treasury uh all the way to things that are like external signals like funding announcements,

6:20 um as well as like interaction data, right? Emails, meetings, calls, uh page views, um and on the signal side of this, right? We have some set of real-time events that are coming

6:32 in, uh things like emails, you can go and pipe them onto a Kafka topic, consume them, uh and then funnel them back into uh both like we have like a Postgres database that backs all of

6:44 this, it enables us to maintain like transactional guarantees, referential integrity between the entities that exist and the different entities that exist, right? Between your CRM, between

6:54 your product, between third parties, um and attribute everything to the right level of detail, which we found to be like a pretty important problem, as well as all the associated metadata around

7:05 capturing like where did this come from? When did it, you know, come in? Um as well as starting to embed a lot of this data, right? So much sales data is

7:14 just inherently um unstructured, right? You have like call transcripts, you have emails, you have notes, and the ability to kind of search

7:22 across that is really valuable. Uh we have a set of online batch jobs, which are really just calling a lot of APIs uh for the most part. Uh Ramp's addressable

7:32 market is pretty much like the entire US um and now expanding internationally. So, being able to kind of like pre-compute, pre-process, pre-ingest like all this enrichment data about who

7:44 we can sell to and who we're already selling to is um really important for us. And then um as previously mentioned, a

7:52 ton of work has gone into the offline piece of this with uh DBT, Snowflake, pulling everything into our warehouse, doing a lot of offline batch compute, and then piping that in via reverse ETL

8:03 back into the same layer. Uh next, more tactically, the way we tend to approach these problems is solve for one team first, then scale horizontally.

8:16 Um as I mentioned before, you have like a very overlapping set of problems that exist, right? Everybody wants to do automated outbound. Uh everybody wants

8:24 to prepare for meetings. Uh whereas certain teams may have like problems or like things that they do that are isolated to them, like QBR generation.

8:34 Um and to get into an example, like one of the things that we shipped is like pre-meeting briefs, right? Um

8:43 for AMs, AMs are like count account account managers. Uh they kind of manage the customer relationships that exist, trying to ensure that customers are using Ramp

8:53 uh as best as possible. And um there's a lot of like important context that goes into like uh a meeting, right? It's like what are

9:02 we talking about? Who are we meeting with? Um what is the AM trying to do? Like what are the product usage information? What are the

9:10 account vitals? What's the agenda that we want to tackle? And similarly, like what is the customer trying to do, right? Do they have open tickets that they're trying to address? Did they like

9:19 email us saying that there is like a specific thing they're trying to talk about? And how can we pull this together for AMs so that they can go in prepared uh and kind of manage the

9:29 uh operational piece of just being in back-to-back-to-back meetings all day. Um again, technically, uh the place to start with this is obviously if we're

9:39 trying to generate a pre-meeting brief, we need to know what these meetings are, uh so we can pipe in meeting events, uh do some hydration, map uh things like attendee emails, meeting

9:51 titles uh back to the accounts that we're meeting with. This is like a sneaky hard problem at Ramp because you have the same emails

9:58 that can work on behalf of multiple businesses, so it's kind of like a fuzzy match, and we can go and persist that, so that way every downstream consumer of like, "Hey, I care about this meeting."

10:07 doesn't have to go and like recompute this from the ground up. And also, as mentioned in the previous talk, uh we've also built a system around durable execution, right? That's

10:19 pretty agnostic to the trigger that comes in. Everything is represented as a durable thread built around Temporal, representing each tool call and model

10:28 call as an activity. That way, if uh you know, like a worker goes out for some reason, it can resume uh execution from where it left off, uh pulling together all the state that had

10:39 accumulated at that point in time, instead of starting back from like the beginning of the thread and trying to reprocess everything, which would be very inefficient and slow.

10:49 Um there's also like great out-of-the-box capabilities for things like config-scoped tool calls, uh different agents are going to have access to different uh sets of tools,

10:58 which give them access to different information, different integrations, uh and different skills that might be necessary to actually perform the work. And similarly, there's things like uh

11:08 human-in-the-loop uh tooling to just pause execution, get input, resume. Um And then getting to the uh unstructured

11:18 piece of this, as I mentioned, like unstructured information is probably like the most valuable thing you're sitting on uh within your um warehouse or your notes or wherever you

11:29 store this today. Uh so, we have some set of real time data coming in, um, meeting transcripts, emails. We have some sort of like uh, batch jobs that are kind of pulling in

11:38 like enablement materials, product knowledge, playbooks, um, chunking them, embedding them, putting them in Turbo Buffer, and allows you to kind of or allows agents to go and

11:48 search like what do I care about? What am I trying to answer right now? And doing some combination of like uh, vector search, attribute search, keyword search in order to pull information

11:58 scoped to like a specific account, for example, uh, without having to pull in like the full raw corpus into agent context, um, which would also be very inefficient,

12:08 very expensive. And similarly, we've gone and built a skill library to allow people to customize their agents, right? Getting back to the meeting brief example,

12:18 different people have different formats that they care about. They have different information that they care about, um, and allowing them to kind of represent that, uh, in text, giving that

12:27 to the agent to pull it together, uh, has been like very valuable for getting adoption. And putting all this together, you get an operational background agent, right?

12:37 You have like every night we're going to go and generate these things, fan out a set of agents that are going to go and compute, uh, per account, uh, meeting prep, uh, which gives, uh, or which use

12:47 some set of tools giving them access to like uh, that online CDP in Postgres I mentioned, the vector database, uh, meeting prep skills that we own at the system level, as well as like custom

12:57 instructions that users are providing themselves. And getting into the extending the blocks, um,

13:06 the goal is for these foundations to speed up the next thing, right? Meetings are super important. We want to be able to generate things like post-meeting follow-ups and things like automatic CRM

13:15 updates, right? Which can pull in the transcript and say like, "Hey, we discussed this potential expansion opportunity. Let me go and pre-fill all the information needed to create that

13:24 opportunity, get a thumbs up from my rep, and just make it happen. Um and similarly, we want to extend it horizontally to other teams, right?

13:33 Which is mainly an exercise of creating specific skills, data integrations, um and like just data ingestion itself, where we can say like, "Okay, email, call transcript embeddings, custom

13:45 instructions, generalizable, but if we're building this for AEs, we're hand- handling like pre-sales, um opportunities, we need to go and focus more on like

13:55 third-party data instead of a bunch of product data that we have already, and that needs to be uh incorporated into our customer data platform. The skills need to go and reference kind of like a

14:05 different set of uh information that we have on the people that we're trying to sell to. And similarly, uh we've built this in a way where employees have access to the

14:14 same tools and skills that are being used for the background agents that we're creating, right? We set up a what we call like our GT MCP, uh and this is basically just like

14:24 uh a window into the same exact tools that we've set up for these background agents, so that way the things that we build are just kind of automatically federated out to people who want to go

14:34 and build their own agents. They want to go chat with the information that we're setting up, uh and build their own automations. And they're building a ton of them. Uh

14:43 this is just like uh a glimpse into some of the analytics that we've uh done taking the reasoning generated by uh the MCP uh tool calls, you know, that

14:53 we've uh that are being executed uh remotely. And this compounds because like when people go and build their own thing and they go

15:02 and connect to our MCP, they're basically telling us like, "Here is a problem that I have. Here's how I'm trying to solve this problem." And we can go and work with them to be like,

15:10 "Okay, we can just go and productionize this, uh distribute this to everybody who probably has similar problems." And they give us the prompts and the skills and the like, you know, even

15:19 applications that they're vibe coding, uh to just like really simplify our ability to just go and productionize um

15:27 like these use cases. So now you're probably wondering uh what about that golf example that I had mentioned at the beginning?

15:36 Um the orchestration problem. Um the the point that I'm trying to convey by talking about all these specific things that we're doing

15:45 is that these vertical builds that we're creating are the foundation of like uh multi-team, multi-channel like distribution.

15:54 Um if we want to be able to say like here is a playbook. Here's how you sell procurement. Here's how you sell to construction. Or here like wacky experiment ideas that we have uh like

16:05 offering Pro V1s to golfers, which is actually like uh it works really well. Um we need to be able to say like

16:14 uh take in that corpus of information of things that people are trying to do and federate that out through the background agents that are actually creating these artifacts that people are like using to

16:24 operationalize like go to market and execute. So for my Pro V1 golf example, um

16:32 the goal is to funnel this into ramp revenue, uh the internal application that we have built um and go and like effectively like funnel this into some of these vertical

16:42 solutions that we've created, right? So you can say like for SDRs, we want to go and create an audience of here are the golfers that we want to send things to. We can go and generate like personalized

16:51 copy and sequences that they can go and send. Maybe we want to go and create web landing pages and spin up the uh images and the creative that will point these uh email sequences to. And we can do all

17:02 of that through just like the description of like here's my intent. Get the people who own these channels to review them and sign off. And really allow us to just like

17:11 move a lot quicker in how we uh ship and like scale creatively. Um across all these different go-to-market channels.

17:20 So, the goal of this is to ship faster, ship safer, um scale our teams, become more efficient,

17:27 and um with these campaigns, we can go and execute them across like multiple channels with consistent audience targeting, um

17:35 agents can go and hold context on multiple things that are like options, right? We can go and execute this campaign or that campaign or that experiment and balance the like

17:45 traditional multi-armed bandit problem of like exploring like new possibilities versus like being safe and like going into just known returns. Um

17:55 and then we can build in guardrails as well to go and um effectively like manage compliance rules, rules of engagement, and being context aware, making sure we're not

18:05 doing the same thing over and over again. Um and yeah, just do this on behalf of everybody.

18:13 And those are the building blocks of go-to-market orchestration. Thank you, everybody. >> [applause] >> We have probably time for one question.

18:24 Hey, there we go. >> Hey. >> [clears throat] >> So, just curious um if how would you approach building something like this

18:37 for a smaller company or for a company that's that's just getting started? >> Yeah, I think a few people before have like mentioned something similar, but I would go and like find the very specific

18:48 use cases that you can build automation around and just like solve really specific problems that exist first. Um like 3 years ago, there was two of us and we were building like automated

19:00 outbound, right? So, like we're just trying to figure out like how can we go and use GPT 3.5 and like put personalized copy uh into some sequences and go and like pull data from uh

19:12 wherever to go and generate that. And by doing these things and solving these problems, you get like a really good understanding of how this works, how it could extend to other teams.

19:21 Um and solving like real problems as you go. The reality is that like you can't spend like a year going and building like some really complicated system

19:30 architecture that like is perfect. So, you have to like piece together the vertical solutions and then stick them together. >> [music]

Frontier News · by Hyperjump Technology