20 years in Sales Ops and a lifetime of coding. I build free tools and share practical ways to improve sales operations with data, automation, and AI.

Philadelphia
Pinned Tweet
Data people and sales ops people are having the same argument in different words. They say entity resolution. We say duplicate accounts. They say slowly changing dimensions. We say the owner changed in March and nobody told the report. They say idempotency. We say why did this campaign send twice. Same problems. Different meetings.
181
Salesforce Flow vs. Apex for Closed Won updates, onboarding tasks, large record volumes, and pricing. Covers how to choose based on what will be easier to understand, test, and change later.
113
AI agents need CRM context before acting, so I start with account ownership and access. See how relationships and permissions help keep agents from changing the wrong account. #CRM #RevOps #AIAgents salesoptecs.com/article/142?…
1
83
HubSpot vs. Salesforce based on how complex your sales process is, from simple lead tracking to global sales territories and pricing approvals, plus the admin work each setup brings.
1
143
Power BI can flag low pipeline coverage, but I still need a CRM fix. See how an agent could build a territory exception list for approval and writeback, so CRM gets approved actions. #PowerBI #RevOps salesoptecs.com/article/141?…
49
Schema on write and schema on read structure sales data at different stages. Examples include a Salesforce Revenue field containing banana and bronze, silver, and gold data layers feeding Power BI.
2
70
Salesforce AI can misread accounts when definitions are unclear, so I start there. See how field definitions and account hierarchies help agents identify which account a sales decision applies to. #Salesforce #RevOps salesoptecs.com/article/140?…
34
Liquid Clustering lets you change how a table is organized as reporting needs change. The example uses an opportunity history table, switching from Territory to Account ID and Close Date to scan less data.
23
AI agents need CRM data to diagnose pipeline problems, but I don't grant write access by default. See how I separate permissions so analysis can't change customer records. #RevOps #MCP salesoptecs.com/article/139?…
1
30
Apache Iceberg and Delta Lake add transactions, schema changes, and time travel to sales data stored in Parquet. The comparison covers Salesforce history, Databricks, and tables shared across Spark, Trino, and Flink.
39
Sales agents tied to one AI model limit my options for controlling cost. See how I'd route tasks through a gateway by cost and data rules, keeping CRM data on approved models. #RevOps #AIAgents salesoptecs.com/article/138?…
19
Lead based marketing starts with individual interest, while ABM starts with target companies. The ACME example shows why a CRM needs to connect contacts from the same buying committee.
23
AI agents running for weeks cannot keep their full history in context. See how I approach summaries and retrieval to keep past decisions available for the next task. #AIAgents #RevOps salesoptecs.com/article/137?…
18
Webhooks and message queues for sending closed deals from your CRM to billing, including retries when billing is down and buffering 50,000 events during a data migration.
1
34
Territory analysis shouldn't leave me maintaining another AI agent. See how to create one for the task and discard it afterward, so a one time job doesn't become ongoing upkeep. #RevOps #AIAgents salesoptecs.com/article/136?…
16
Direct Lake, DirectQuery and Import mode in Power BI, and when to use each based on where your data lives. Examples include Salesforce opportunities, quotes and orders stored in Fabric’s OneLake.
1
26
Moving Snowflake data into AI apps gives me another set of access rules to check. See how Cortex Agents runs on governed data to keep analysis inside the warehouse. #Snowflake #RevOps salesoptecs.com/article/135?…
23
I have spent the evening writing about why your CRM has four versions of the same customer. My wife has watched eleven videos of someone organizing a fridge. Her engagement is significantly higher than mine.
16
Nadella said this week that the model you use and the permissions you give it should be separate things you control. Fair. But in most companies the permissions were never written down at all. Ask who can change a price or merge two customer records and you get three confident answers. That was fine while all three had to ask someone first. Nothing is asking now.
17
Fed an SOP to Claude, draw.io, Lucidchart and Miro and had each one turn it into a flowchart and find the gaps. Figured it would be useful for revops or salesops ppl to check for incomplete processes or find unmapped decisions. Some caught way more than others surprisingly. Anyone else doing this successfully?
1
25
Salesforce REST API vs. Bulk API for quick account updates, large imports, and nightly data pipelines. Covers when to use each and how flows, Apex triggers, validation rules, and record locking can affect updates.
24