Morning Sync: Meta-HubSpot, Lima Data, SFDC Sync

7:55 AM - 8:57 AM PDT · Cam, Boss, Miguel, Luis

claudePlatypus

Executive Summary

Two-part morning. First, Cam works through Meta lead-ad → HubSpot field mapping with Miguel and Luis: discovers the form has 6 custom + 3 standard fields (not the 120+ they assumed), HubSpot auto-creates the properties, but bad fields from other team profiles (Luma energy) are leaking in. Second, a 1:1 with his boss on the SmallWorld side: planning to run Lima Data employee research on ~150 companies with 5,000+ employees (~25 credits each), persist raw JSON for future deserialization, set creation-source field to Lima Data, and dedupe by LinkedIn URL. Cam will also begin dismantling the legacy SFDC sync after proving manual parsing of 8,000 files in 60 seconds via Rails console — likely needs a target-company-criteria restructure.

Mind Map

mindmap
  root((Morning Sync))
    Meta -> HubSpot Mapping
      6 custom + 3 standard fields
      HubSpot auto-creates properties
      Wrong-team fields leaking
        Luma energy fields
        Solar campaign fields
      Tipo de Propiedad mapping issue
    Lima Data Pipeline
      150 companies 5K+ employees
      25 credits per request
      Persist raw JSON responses
      Set creation_source = lima_data
      Dedupe by LinkedIn URL
      Enrich people post-prospect
    SFDC Sync Overhaul
      Manual parse 8K files in 60s
      Target company criteria suspect
      May need data model restructure
      Dismantle legacy sync today
    Relationship Map Tools
      Cam documenting test results
      Boss spikes first tools
      Prospect endpoint returns thin data
      

Action Items

Meta / HubSpot Integration

Lima Data Employee Research

SFDC Sync Overhaul

Relationship Map

← All briefings · Full day overview

Transcript

Full transcript (7:55 AM - 8:57 AM PDT)
### Ads manager review with colleague
**7:55 AM - 8:57 AM PDT** | *meeting*

**Microphone:**
Here, no no no no no. My brother, go to ads manager. Yep, that's where I was. Yep, it's just you can't see my drafts, but there you go. Okay, okay. You can't see your... That's the one. No, that's the one. Great.

Okay, let's see. I'm telling you, it was acting out, bro. OK, let's get this sorted then. Miguel, are you trying to fit in? Like, what are you doing?

Hello, what the fuck are you doing? What do you mean? It's just being a strawberry, bro. Off is a tire, bro.

I'm here to boost team morale. I also joined because when you guys are done, I wanted to see if we could take like five or ten minutes to organize a little bit and see what we have in our scopes. I feel like I've been a little disorganized, you know?

We can definitely find some time today to get sorted. Um, dude, I need to like revisit the platform that I had started. Holy shit. What do you mean? What platform? The thing that I started. What's it called?

Ah, yeah, yeah, yeah, yeah. See, like, the project management. Basically, dude, map all of that shit manually, all of it, dude?

I'm not sure if we have... I'll be right back, guys. Stay here. I just need to go to this meeting. I'll be back.

Okay, I don't think Michael's joining us, right? Yeah, I saw that. So well, yeah, we can make this quick then. Exactly.

Um, I think even though I think the iFrame is a really stupid fucking idea, I think I can make it work. Though, with the existing API key thing that we've got, I think that would be good enough. I think that'll work. Let's get rid of this because we're not doing server anymore. And now all of a sudden here we are doing server again. I think I might be able to make that work. There's still a lot of questions on the actual user, you know. I think at least it's doable, as much as I don't want to do it.

You know, we'll make do with what we get. Exactly. Yeah, so I'm going to keep doing that today. At least you don't have to build as much apex code, right? Um, well, I mean, with the pattern I took with those two new components, basically the apex is just accepting an event and then making an HTTP request and then giving the response right back to the component.

It's like my whole goal was to not have any apex, just basically use their HTTP stuff, and that's it. Yeah, but yeah, we'll see what happens. Those are famous last words. If not, use Apex... Yeah, I mean, I have a hard time imagining how people could build nice new stuff. I mean, I guess the new Salesforce functionality might potentially enable that sort of interactivity without things feeling super old and broken.

But, yeah, it's not a good thing to use. If you can avoid it, that's best. Exactly. But hey, if your boss is telling you to do it, I guess we're doing iframes. Exactly. Yep.

I don't even bother making any kind of comments anymore. I'm like, nope. I know it's not worth my breath. You guys heard.

I also had to do some... I guess adding the dedicated side cue was probably the most exciting thing that I did, which was also not very difficult. And everything Michael had to complain about was related to naming stuff. But got that in along with the judo skill stuff from the night before.

As I mentioned, there's just some weird log filtering stuff that we'll probably need to do. I know there was something else, and there's just some re-indexing testing. I did a little bit of looking into the Salesforce sync issue. Michael ended up taking care of most, if not all of that.

It does still seem like... I mean, I guess it's like the difference between the target company and the account bucket that has caused some sort of discrepancy in the way things are getting processed across accounts. And yeah, it seems like we might just be processing the wrong bucket every night in some cases. So it sounds like we'll have to rebuild that at some point. I know we met to discuss Salesforce too, but yeah, today we'll continue with that.

I have no idea if my marketing order store will work on the relationship map or something else. But if anything comes up or you need to test it, let me know. I'll be happy to jump on it. And yeah, I'll probably just be working with Michael to usher out whatever we need to get out this morning and this afternoon.

Cool. Yeah, I'm going to play around and try to get a page to render. I'll be curious to hear how it works out. Yeah, it'll be interesting. And hopefully it goes off in one go, that'd be all right. Yeah, that would be sweet, and very unlike Salesforce. Yeah, exactly. All right, cool. See you.

Yeah, this is so much better. I'll start by cutting it in half. Yep, later.

Hey, Sadie. Well, it was quick. Yeah, I know. My boss was in there, so it was just... I went real quick. Um, I guess my boss is a fucking idiot. Um, is he really? Yeah.

Um, except I'm being recorded by myself right now, so hopefully I don't expose myself later.

Okay, so I'm about to have my bot go and take a look at the meta ads here. I was setting this up. That's a lot of indices. Miguel, I sent you the ads—I mean, the scripts. You sent me what? What the fuck? This is a security alert from PayPal that someone... anonymously? What the fuck, dude?

I've got a calendar event that I got added. It's like I was requested for this—it's a security alert from PayPal. I've never seen anything like this. It's from... oh, it's like a Microsoft Teams call? And I'm the only invitee? Notes, banner image, logo image. Okay, let's see. It's controlling my computer. What's it doing? Oh, yeah. That's shit, dude. You go, bot. Yeah.

And there's also a couple duplicate questions, it seems. Luma energy? Yeah, I guess. How would you say that? Como que, de electricity company in Puerto Rico? Like... Yeah, it's the energy authority on the island. But Luma is a private company that came in to basically assess the public energy company of Puerto Rico that was doing a terrible job.

So I'll look at my screen really quick. It says it's got these four lead ad properties with streaming, but. Oh shit, dude, I forgot. I thought you guys were all looking at my screen still. So here, I see four of the lead ad properties with these four questions. And I'm just not sure which one's correct, if any of these are. None of those go into this. None of those matter. That's weird. This is pulling stuff from my other team profiles. Oh, that's really weird then, yeah.

Um, how the fuck do we discern what's actually belonging to this then? Um... Because this is like the only lead ad property that exists is right there, except for that. So it's saying it got all 141 fields, the lead ad properties or the custom fields from Meta lead forms. It says these four questions, these three questions. What, what? Well yeah, it's just saying these are form objects and properties and map them. No, that's the thing though, because like you have it on FL collection form, which is the form that has all of those fields. Yeah, I know. That's why I'm like confused why it's showing us. Oh, this is additional information. Does this look right? No, no, this is exactly where we're getting that bad info.

I'm gonna ask you like, yo, so this belongs to the correct lead ad form. I've been tweaking lately. I've been, I don't know if I've been putting too much pressure on and I don't know. I mean, if it's anything like me, it's stressed out. Yeah, cause you're like, computer, computer, computer. Okay, wait, you're right. That was the HubSpot target properties where data can go, not the Meta form source fields. The six Meta form fields. Wait, is this too short? Um, is this like not the wrapper? Um, is this form here? Yeah, I'm looking at it. Starting. Go scroll down. Alright, so it's six custom fields and three standard contact fields. This maps almost one-to-one to your website's forms' expanded seller fields, not 120 columns. Very manageable. This changes things significantly. You don't need it at all.

Okay, so we might have spent a little bit of money, but Francisco could suck it. Okay, so let's take a look here. Um, okay, best HubSpot match. Should I just add a fucking standard field, man? Alright, no worries on the pilot. Okay, type shit, dude. Let's fucking go. Let's fucking go. Properties for the six new questions, without—dude, oh my god, it's already done. It's already done, but you're fucking kidding, dude. It's already auto-creating it. 'Cause since you upgraded, you're lying. Dude, it's saying like I found all of these. They've already been created. Wait, I'm gonna double check to confirm. Like, can you confirm for sure? This, well, we had to actually. Yeah, see, we are getting these other random fields though, like this Luma shit, which is not good, but. I can really eliminate it. That's what I don't know. I can figure that out. It's not like we're gonna get them ridden if nobody's filling out those solar energy campaign, not FL collection real estate form. Fuck, dude, you see what I mean? I need to unfuck this for real.

You sure know how to crack the lip, bro. I don't know dude. Um, well this is some. I think this is Meta's fault, to be honest. Yeah, it's a dogshit platform that obviously is better. Um, okay, so the thing for the new form not mapped is Tipo de Propiedad. I'm just gonna fucking give up. Okay, the 406 contact properties, which doesn't make any sense but um, okay yeah, whatever. Is it cooking? Yeah, but I needed to finish. Are you going to finish the job with Chrome DevTools? Babe, you need to get us found. I mean they could just like walk me through it. It'd be just as quick as—shut up, the strawberries talk. Whoa, whoa, whoa, whoa. Bro, just don't restart it. No, I just restarted it. I'm just hoping it doesn't have to restart this right here. Oh. You're fucking for real? Oh wait, it said that this is already mapped, didn't it? Bro, no way the same thing happened to me too. No, shut up dude. Miguel, why do you take pleasure in our pain? I'm not. I'm not. I'm not. Clearly, our pain is not. A tipo, a condición. Condición. Condition. There we go. Tempo. Pressure. That's not a bit. I can't do it. I cannot do it. What the fuck? Why is it tweaking? It's a big tweak sauce, dude. What does he want? Let's see. Tell him he's fired. Yeah. Here we go. Zaps, dude. I found the zaps. Oh, it's empty. Fuck, obviously it's empty. Where, how is... What? Um... Why would it not be empty? Oh, everything's gray. Um, whoa, whoa, what's this? What are you getting? What are you running? That's a nick patch. Did I stutter? Are you missing me? Uh, are these, are they like worth? I get on a regular. I'll like forget to use the zins so I can get my gums a little break. Um... Oh shit, I'm on my dad's Slack, so I'm getting his notifications. I can't hang up. There we go. That one. Yeah, it's maybe it's just my skin or something but it's definitely irritating.

Um, here we go. My favorite part about working with Cam is hearing him talk Spanish. Is it funny to feel superior to me? No, I don't like partake in it. I don't feel superior. I don't like... It's just dope. You're glad I'm experiencing culture firsthand. Your boss? Another boss, yes. I'm about to put all my boss on a fucking three-way call, Luis, Michael, and this guy dude. Are you your boss? Yeah, you're my boss. I call you boss. All right, here we go. This better fucking work. I'm going to have an aneurysm. What the fuck does this? Anyways. Alright, don't leave. I'll talk to you guys in a sec. Bye, brother. Bye.

Hello. Hello. How are you going? I'm hanging on. I'm good to go. Alright yourself? Not bad. It is. Um, yeah.

Okay, so I just want to run two things by you that I'm going to work on today, just in case you had any thoughts or feedback before I begin. The first is for the Postman stuff. Obviously I created a bunch of companies, I have not tagged them. I wrote a script and I have it all copied and stuff so we can use it to actually rebuild some of this.

But what I did was I used the domains and just had them. We haven't been distinguishing that these companies were created by Lima data and the creation source or anything, right?

No, but I can add that and go back and do that. Yeah, I'm just wondering if we want to know exactly which ones they are, because we would probably want to make them the canonical company if we were to do them in the future. There's like another one potentially in the system that was like a JSON. That's a good idea. But yeah, maybe we can add something like a Lima data creation source field.

Okay, I'll look at this later today.

So I just ran a query and the employee counts, so the problem is it's going to cost 25 credits to make a research request, which is essentially a LinkedIn search through Lima data of people. So I don't want to do that because we'll burn through 25 credits per week, but that's a lot. 25 credits is a fair amount, and so we'd burn through what we've got very quickly.

Yeah. So I looked at the number of employees because small companies are going to have fewer employees, likely, right? And so obviously by the number of employees of the companies we created, there were about 150 with 5,000 plus employees, 570 for over 1,000, about 1,000 with 500, and 150 that had 200. All added up, that roughly adds up to almost 1,000 credits, which actually isn't the end of the world credit-wise, but I think I still don't want to spend that much on it. So I think I'm just going to do the 150 that have 5,000 plus employees. And I'm going to use the employees research field. So it takes the LinkedIn company ID, which we already have data on, and returns up to 25 employees.

All right. That all sounds good. Yeah, so I'm going to do that. And we'll see. And when I store them, I'm going to store the LinkedIn URL.

Yeah, that plan all sounds fine. Well, yeah, I don't know if you want to take extra measures while we're doing this to make sure that when that request is made, we're persisting the data some way that you can go back and keep a log of all the responses. That might be useful because then we can deserialize it and access the data in the future too. I'm just thinking through the stuff that might prevent issues from becoming unresolvable without spending more money.

Yeah, that's fair. The other thing—I'll at the very least dump them as JSON somewhere.

Mm-hmm. And then the other piece is, sorry, give me one second here—prospect, people, employees. The results we get don't really return much. We'd have to enrich the people that came back too, which isn't ideal but it is what it is. Here, I'll show you. The results coming from the prospect endpoint are just very short, a short kind of current company thing, which is less than ideal, but it's enough to fill out a person object.

Definitely. And I'll make sure we set the creation source to Lima data.

Yeah, I'm assuming it's just updated in that, but yeah, it's probably worth double-checking. It would be really nice if we do this and we persist the data properly. We'll be able to use pictures from those responses if they end up in the system, which will be cool and all sorts of interesting stuff.

Yeah. Well, the other piece is that this is something we're going to probably have to build a tool for in the relationship map. So me doing some of this testing, I'll just make sure I document it all, which I have been, so that I can literally give it to you and be like, here's what kind of worked, here's some information so you can build something, because I'm just writing a script to run here.

Cool. So I'm going to try to get this done before lunch. And then the other piece is I'm going to work on dismantling and replacing the SFDC syncing. I did it manually yesterday and like...

Yeah, you told me it was very fast.

Yeah, parsing all 8,000 files from last night. You know, about 299? Yeah, and you were using Ruby to do that?

On a Rails console, like it just ran very fast. I hit enter, it ran everything in memory.

So now obviously there's a lot more to do, but I'm going to take a look at how to dismantle it today. I think the real problem—and I haven't looked at it yet, but I think the real problem is probably the target company candidate stuff and the criteria.

So I'm going to see. Honestly, if the answer is that that stuff is overly complex and because of it we run into some trouble, then I think it's an easy enough call to make a decision to say we're going to kind of restructure how target company criteria work or something of that nature.

There's definitely some improvements there from a UX perspective and even from a data modeling perspective, but yeah.

Is there anything in particular that might be helpful for me to...

Nothing right now because I also haven't looked at it yet. But once I get into it, I will chat with you if I want to do anything and keep you updated.

Okay. That sounds good. Alright. Cool. You're good with everything you're working on right now?

Yep, I'll just test as that comes up. But I'll continue sort of spiking on tools for the relationship map and see if I can focus on those first ones we were talking about and look at the doc you put together. Yeah, keep you posted on progress.

Okay, that sounds great. Awesome. Okay, well let me know if you need anything. I'll be here.

Okay. Will do. Sounds good. Thank you. Talk soon.

**System Audio:**
No, no, no. My bad. Go to Ads Manager. It's just that you can't see my drafts, but good. That's the one. No, that's the one—the Apple collection form. Thank you, Stephen. I was telling you, is that acting out, bro? You're trying to fit in? What are you doing? Hello, what the fuck are you doing? What do you mean? Off the hook, bro. I'm here to boost team morale. And I also joined because when you guys are done, I wanted to see if we could take like five or ten minutes to organize a little bit and see what we have in our scopes. I feel like I've been a little bit disorganized, you know.

Dude, I need to revisit the platform that I had started. What are you doing? What's it called? Ah, yeah, yeah. See, like the project management, whatever. Or, uh, map all of that out manually? I don't know. Votes? Stay here, you said? Okay. Yeah, I just saw that. Good. Yeah, exactly. I think, even though I think the iframe is a really stupid fucking idea, I think I can make it work, though. Which is funny with the existing API key thing that we've got. I think that'll be good enough. I think that'll work. It's funny how I was like, yeah, let's get rid of this because we're not doing server-to-server anymore. And now all of a sudden, here we are doing server-to-server again. So I think, yeah, I think that might work. There's still a lot of questions on the actual user, but I think at least it's doable. As much as I don't want to do it. Exactly. So yeah, I'm going to keep doing that today.

Well, I mean, with the pattern I took with those two newer components, basically the Apex is just accept an event and then make an HTTP request and then give the response right back to the component. It's like, my whole goal was to not have any Apex. Just basically use their HTTP stuff and that's it. Yeah, I haven't used an iframe probably since 2003 or something. Just, it's not a good thing to use. So I don't even bother making any kind of comments anymore. I'm like, nope. I know it's not worth my breath. Cool. Yeah. I'm just going to render. So yeah, it'll be interesting to see if it hopefully goes off in one go. That'd be all right.

All right, cool. I like it. All right, man, yeah. This is much better. This is so much better.

Miguel, I sent you the scripts. Thank you. You go, you go. Robot LUMA energy—that's like Diablo, I don't even know what to call it. That's really how we just say that. Come again, the electricity company in Puerto Rico? Yeah, it's the energy authority on the island, but LUMA is a private company that came in to basically assess the public energy company in Puerto Rico that was doing a terrible job.

We're not sharing. You're not streaming, bud. None of those go into this and none of those matter. That's weird. This is pulling stuff from my other profiles. Is this the form that has all of those files and fields? My computer has been fucking tweaking lately. I don't know if I've been putting too much pressure on it. I'm stressing it out. I don't know. What the fuck are you doing? Um, see, I'm looking at it. Stop, don't go so fast. We'll scroll down and take a break. Okay. Let's go. Thank you. You're lying. I can see what you mean. You sure know how to crack the lip, bro. Oh yeah, it's a dog-shaped platform. It obviously is better as well. Is it clicking? Thank you. We need to get us bound. Hey, listen, everybody shut up. The strawberry is talking. I just don't restart it. Tariq Sass. Oh, you know the same thing was fucking happening to me, bro. Oh no way, the same thing happened to me too. Miguel, why do you take pleasure in our pain? I'm not. They are. What did you call me? And to be stupid. What does he want? So let me find. Yeah, I agree. Obviously it's empty, bro. Why would it not be empty? Oh, what? You said a nickel patch. Are they like worth it? Yeah, should I switch them out? Really, I can see that one, yeah. My favorite part about working with Cam is here. Who talks Spanish. I don't like to partake in it. I'm just, it's dope. It's just dope. Yeah. That is so much. Your boss? Hi, your boss. Bye, brother. Boom. How are you going? Not bad.

Okay. So I just want to run through two things that I'm going to work on today, just in case you had any thoughts or feedback before I begin. The first is the Postman stuff. Obviously, I created a bunch of companies. I have not partnered them. So I wrote a script and I have it all copied and ready to use, so we can rebuild some of this. But what I did was I used the domains and just had the companies get created from enriched data. I mean, it's like, I don't know, like 5,000 credits. So not a ton of money. We also had over 100,000 credits just sitting around. And we're just about to take off on a new month with them, so it's fine. No, but I can go back and do that. Okay, I'll look at employee count. So the problem is it's going to cost 25 credits to make a research request, which is essentially a LinkedIn search. We'll get 25 results per search, but that's a lot. And so that, yeah. So I looked at the number of employees. Small companies are going to have less employees likely, right? And obviously, because that's the number of employees, but also means less likely to get good data from LinkedIn with large numbers. And so of the companies we created, there were 150-ish that had 5,000 plus employees, 570 with over a thousand, about a thousand with 500, and about 1,850 that had 200.

All added up, we really don't spend that much on it. So yeah, I think I'm just going to do the 150 that are 5,000 employee companies. And I'm going to do the employee research field or something. So it takes the LinkedIn company data, which we already did from LinkedIn data, and returns up to 25 employees. Yeah, so I'm going to do that and we'll see. When I store them, I'm going to dedupe against the LinkedIn URL.

The other piece I'll handle is secure prospect, people, and employees. The results we get—it doesn't really return. We'd have to enrich the people afterward as well.

So the results coming from the prospect endpoint are just a very short kind of current company thing, which is less than ideal, but it's enough to fill out a person object. I'll make sure we set the creation source to LinkedIn data.

Yeah, the other piece is that this is something we're probably going to have to build a tool for with the relationship map. So while I'm doing some of this testing, I'll just make sure I document it all so that I can literally give it to you and be like, here's what kind of worked, here's some information, and you can actually build something because I'm just writing a script to run here.

Cool. So I'm going to try to get this done before lunch. And then the other piece is I'm going to start to dismantle the Salesforce syncing. I did it manually yesterday and the parsing took 60 seconds—it ran everything in memory. So now obviously there's a lot more to do, but I'm going to look at how to dismantle it today. I think the real problem—and I haven't looked yet—is probably the target company logic.

So I'm going to see if the answer is that that stuff is overly complex and because of it, we're not going to be able to do that. If we run into some trouble, then I think it's an easy enough call to restructure how target company criteria work.

I haven't looked at it yet, but once I dig into something of that nature, I'll chat with you if I run into anything and keep you abreast.

Okay? Cool. Yeah, you're good with everything you're working on right now?

Yeah.

Okay. That sounds great. Cool. Well, let me know if you need anything. I'll be here, okay?

Thank you. Bye.

### Dog walk with UX notes