Transcription: OpenAgents Episode 135 - Agentic CRM Design

June 9, 2026 ยท View on GitHub

Source: https://x.com/OpenAgentsInc/status/1851854221504635125 Wiki source: https://raw.githubusercontent.com/wiki/OpenAgentsInc/openagents/Video-Series.md Media title: OpenAgents - Episode 135: Agentic CRM Design We need a CRM! And why use ancient b... Upload date: 20241031 Transcription model: gpt-4o-mini-transcribe Generated at: 2026-06-01T15:42:48Z

Machine-generated transcript. Review speaker labels and wording before using this as quote-grade source material.

[00:00] Speaker: All right, our v3 interface here is coming along. We've got basic streaming. We've got two calls, kind of the major stuff from v2. Don't have all the tools pulled over yet, but a little bit more of a business-friendly UI. Looks a little more familiar with ChatGPT. We've even got low guard your eyes. I'm so sorry. We've got light mode if you're into that. ChatUI components, basic ChatGPT kind of stuff with our tool chaining and stuff. Okay, let's add something new and fun. I don't know, maybe it's not fun. I don't know. But it's a good sign when both I need something and multiple of our customers ask for something, and in that case, it's like a CRM. So we have people that we're helping do sales processes for products that they're selling, and it's like, hey, can agents help with this? Well, sure. And like, yeah, we could hook into some CRM, but wouldn't it be cooler if, as we're building things, you know, from scratch, because we can build so quickly, let's just build our own, like, agentic CRM in this same interface. I want, as a business owner, I am a business owner and other business owners that we work with. I want you to just have one dashboard that's just like your productivity dashboard. And, yeah, let's make a CRM. So I've got a basic little prompt here, and we'll continue using the v2. What's the branch name here? Sales. Okay, let's just drop this in here. Let's see what happens. So I'm saying, look at the UI folder and see all that we have pulled in all the chat UI components. Look at my main layout file, and then look at my currently empty CRM file, saying, well, let's do it. Just, like, you know, just mock me up a CRM. Make a demo CRM interface main page with a table of leads, et cetera, kind of like Salesforce. You know, you listen to some of these all-in podcasts, and they're talking about Salesforce and systems of records, and some people think that it will be SaaS like that will be, you know, go to zero as software becomes easy to create and bending off things, he has a strategy to fend off young upstarts like me. But, no, he doesn't. He doesn't. Okay, so blah, blah, blah. Just, you know, words. I don't care. Let's just pull it down and see what it looks like. What did you do? Okay, we got a little CRM here. We got a total leads, open deals, closed, pipeline value, leads contact. Oh, we got tabs. Contacts view coming soon. Deals view coming soon. Search leads, ads lead. Okay. So name, company, email, phone, status, value, last contact. I like this. So the cool thing about this is to be able to then, like, talk with your CRM, like, talk with an agent, like, let's send an email to the people who I talked with more than a week ago or the people that I'm helping with the ChatGPT for Teams clone product. Remind them of this. Like, I want to just be, like, commanding agents and have them do stuff. So we're definitely going to be hooking this up to outbound email for transactional email, maybe even some marketing email to be able to, like, fill up a sales pipeline and just reimagine all of this stuff. There's just so many services out there that do a bunch of, like, one thing. And I just, I'm tired of cobbling together different things. If I want leads and emails, it's like, why connect everything when we can just, like, put everything into one UI? It doesn't take long to build this stuff out. So I think we'll make a little doc. I have docs, right? Let's see. Let's make a CRM doc. Let's make a docs slash CRM.md where we think about CRM considerations. The user of OpenAgent's v3 here is probably a small business owner or other manager slash stakeholder of a business. They want AI agents to help them take action on various things. So they use our AI chat. And to the extent they do any sales or customer development, it will help to have this CRM all in the same system. Let's think also about Salesforce and what they offer and what we can simply offer ourselves to give people 80% of the value they provide for 20% of the price. Make a doc with considerations. I don't, it's just kind of fun. You know that grug, grug brain developer where you kind of like act dumb and be trying to simplify things as much as possible. Like Salesforce, you're some kind of, I'm not, I don't even wanna look. I don't wanna know. Just, you're like hundreds of billions. It's just a big company, enterprise, SaaS, blah, blah, cloud leader, something, something. I just, I want all of your business. We're just gonna take it. We're gonna take your business and we're gonna give it to our people. Our Bitcoin lightning Noster decentralized open agents, open AI, truly open space AI community. Okay, let's, I've created a comprehensive documentation. We'll read that on GitHub on the sales branch. Let's see what we got. So open agent CRM is designed for small business owners and stakeholders who want to combine AI powered business operations with simple but effective customer relationship management. Our goal is to provide 80% of Salesforce's value at 20% of the cost by focusing on essential features and deep AI integration. Small business owners, sort of founders, independent consultants, sales teams, one to 10 people. Cool. Okay, so AI agents can automatically update CRM based on email campaign, automated follow-ups, smart lead scoring. Sure, sure, sure. Unlike Salesforce's, a complex interface and steep learning curve. We focus on single page interface, minimal required fields. Mobile first design. I've been thinking about, I've said I wanted to do an open agents mobile app this year. That might be, that'll probably be one of the projects that I do with this new interface, which is more, we're adding project support very soon. So I'm excited to get different things like that going. Okay, essential features only. Focus on core features that deliver much value. Contact and lead management, deal pipeline tracking, tagging, task management, email integration, basic reporting, notes and activity. Is that it? Is that it? That's just like crud, man. That's just some crud shit. What Salesforce offers. Complete customer 360, advanced analytics. All right, 80, 20. Simple customer profiles. Basic analytics with AI insights. This doesn't seem hard. Gmail, Outlook integration for email tracking. I need to think about that. I'm trying to get off of Gmail. I despise Google as a company and I would like to break all of my dependence on them. So maybe we'll do some sort of like agentic inboxes using Resend or something. Automatic contact creation. Calendar integration may be scheduled. Data model considerations. Contacts. Basic info, communication history. Contacts. Companies. We already have teams. Deals. Activities. Damn. Cool. All right, let's, I wanna get towards feature tests. Like I'd like all of the functionality that I wanna build represented in feature tests. First, let's make sure all of our tests pass. Where did they go? Bedrock. Oh yeah, I gotta. And then what was that long one there? Just making sure we're at green. Five seconds. Chat thread ID test. I guess some of these are like actually chatting. Skip. How's that work? Okay. Leads, contacts, deals. Okay. Thanks, great start. Now write a new doc, CRM tests.md in that same folder. Let's write out the feature tests we want. Feature and unit tests we want. Note, instead of companies. Companies, companies. What's your company? Teams. Yeah, I guess we'll call them companies. We wanna work with companies, right? Create a team. And here we have teams. I guess we'll call them companies. Note on our landing page, you split into leads and contacts. Maybe just contacts for now. We'll be writing a lot of test tests for things like, example, feature test. Or an example unit test would be a thread block routine for a project. Write the CRM tests doc with all tests needed for those core data models and relevant functionality. Just the names of the tests separated by test file name. Before you start, view the folder of, so you see the names of our existing feature tests. Okay, let's back that up. I'll check our existing test structure first. Now I'll create the CRM tests documentation based on our existing test structure. Okay, this document outlines all required tests for the CRM functionality and open agents. Tests are organized by type, feature unit, and file. So contact test, it can create a new contact. List contacts, search contacts, filter contacts by tags. Nice, nice, nice. Contact activity test, it logs email interactions with contacts. Logs chat interactions with contacts. Logs meeting interactions with contacts. So some of this stuff, like the meeting thing, that would require some third-party integration, I guess. Contact test. So I may tweak some of the relations. Like if I don't want contact belonging to team, like team might be separate from the company, I don't know. But I just mainly first wanna see if this is kind of comprehensive to what I would want. Contact tag. Contact email test. Yeah, we're gonna see how far we can get without syncing with these APIs. I just don't wanna mess with it. It's like, you would get off of the old legacy bullshit providers if you had a simple lightweight thing that like did most of what you needed but let you act way faster, right? Generally, I would assume that to be the case for enough people to get us going. Okay, start

[19:59] Speaker: Models, services. It's just writing all this shit. Wow. I've created all the unit test files for the CRM functionality. Here's what I've created. Basic contact model, relationships and functions, test activity logging and relationships, contact tag, contact email, tracking and threading, note creation. Okay, I think I'm gonna take one last look at these. Activity. First, you are going to rewrite all of those files in Pest because I said Pest and you made PHPUnit. Edit them all. Okay, while it does that, we are going to create the models. And I'm gonna start a new chat because I have a question about, in Laravel, I usually do PHP artisan make model MF, model name, but if I want it to not be in app models, but app models CRM, what command should I run? Don't use any tools here. You're absolutely right. I apologize for missing that requirement. Okay. So let's take a look at a test. I think I'll start with contact test. That seems like the most important. So if I run contact test. Warnings. Okay, app models contact not found. So I'm gonna make this, let's try this. Save this. And then for contact, nope, it made models models. That's not good. That's fine. But I'll redo that. So not models CRM, just CRM slash contact. I won't do all these, just enough that we get a few. See where we're going. Contact belongs to a team. I don't know about that. I'll commit this. Contact test. Okay, let's say read this. Note how I have this. Rewrite it to use all CRM models namespace like that. Don't use team, that's our users teams for contacts. Make them part of company and optionally part of teams, which are our internal open agents things. What else? Yeah, I'll just get maybe one tests, tests working. This is taking a long time. It failed. Okay. Oops. Let's try this again. Read this. Help the new agent get up to speed. All right. Thread is not part of CRM. And now let's go through and do some of these. I want company. What else? Note, tag, activity. Out of curiosity, can I do a bunch of these? Yeah. Okay. Query exception. Well, I don't have any red here. That's interesting. Okay. Contact test no red, but the test still won't pass. All right, now here's what I'm gonna do. I'm gonna paste the test results here and let's see how many our agent can get if I just paste in, read this, edit these files and the contact one. Did I save that now? And the relevant contact files too. You can get folders for the right names. Edit these. Edit any files needed to get those tests passing. All right, let's start with that and see how many in one agent loop here we can get of the 10 failing tests, how many can get to be passed. I'll help and check and update the necessary files, get the tests passing. Updating the company's migration and the contacts migration. I'm gonna do the same thing for forums too. I'm excited to get forums back. Factories. It's not done yet, but I'm just curious to see what it's got so far. Not too much dependency as it's not done yet. I think I might've set this to be a maximum of like 20 steps. Yeah. Continue. Oh. Table activities already exists. Oh yeah. I don't think I'm even using this right now. I'm just gonna delete it. Oops. Okay, five passed, five failed. So now I'll do this. Read these. Let me update the test results. Why is it putting here? It lags a bunch because of this markdown rewriting. Read this again. Fix those. Use rewrite tool to make changes. Don't put stuff here. Oh my God. What the shit? No, don't remove it. I want you to edit those files so it passes. Here's some links.

[39:59] Speaker: It's looking good. AppModelsCRM thread, where's that? Test results. Look again at test results. I can't understand that thread one. The only reference I see is to AppModels thread. There is no AppModelsCRM thread. Look around and fix all those tests. Yeah, so I think we'll differentiate between tests that we need to write longer term, like for this, all of these tests. In the short term, we'll probably start next, which I may I'm going to do a video about, but it'll be like add a lead, and I'll just test that I can like click this button here and add a lead, which is the very basics that I have. Like, what is it? Name, email address, notes, company. And then like, yeah, notes about the company that the agent can then work with. Now let me rewrite the test file to fix all the remaining issues. What the fuck? Does that help? And what was that warning? Nothing relevant. All right, we're down to one failing test. All right, we're down to one failing test. Our contact test passed. We broke some other stuff. Oh, it's trying to run all those feature tests. That's funny. Okay, well, I think that's a good stopping point for this video. Let's review. So we've got a nice CRM spec. Not bad, you know. Where is it? So we'll revisit this over time, but that's the general idea of like, let's build the basics of what Salesforce offers agent first into our same interface. We've got some kind of basic core objects and we went ahead and had it write out kind of the, just the names of the different tests that we'll need for feature and unit tests. Basically, one test per piece of relevant functionality. And then we had our agent go ahead and implement all the functionality needed to make our first 11 unit tests pass. So now we have a contact belongs to a company. Contact can optionally belong to teams. Contact has many activities, many chat threads, many notes, blah, blah, blah, like chat threads if they upgrade into a user. Cool. All right, so we'll do some of this offline and we'll do the next piece of relevant functionality on the video. But what I'm excited to see is the kind of like chat UI that we have here with like the regular chats to be able to have that also with the CRM and then to start connecting email into this, automate my marketing and my like communication with my customers and leads because I like need this now because I've got a lot more than I can handle with like just the spreadsheet stuff that I've been doing. And I just don't like using other people's software if we can build our own version. See you soon.