Any of my Celigo friends out there know if I can c...
# general
a
Any of my Celigo friends out there know if I can create a flow to create a customer in Netsuite from HubSpot, but only once a deal is created in hub spot? Right now, all companies sync to customers in Netsuite. We want the customers to only sync once the first deal is created. Any help is appreciated.
r
This should be doable but need more detail to make sure. Can you send me a note to rico@celigo.com and I can direct you to the right folks who can help?
a
sure, thanks Rico
r
responded with more information
@AK47 did you get your questions answered?
a
@rico not yet
r
Ok. Let me circle back. Also adding @Tyler Lamparter to the conversation
t
Hi @AK47 you could do a couple things: 1. Use an export from Hubspot on a Delta a. Use the v3 endpoint for companies b. Under "configure search parameters" put in "deals" under the associations section i. This will provide a new field called "deals" that is a list of deals tied to the company c. Add an output filter to ignore the record if "deals" is empty 2. You could do what Jeff suggested in email, export deals, then make a lookup to get details about that company, then import those details into NetSuite. 3. You could get a webhook of deals being created, then lookup company details back in HubSpot, then import those details to NetSuite. 4. You could get a webhook of companies being created/modified, then lookup deals associated with that company, then have an input filter on the NetSuite step to ignore where there are no deals.
Are you currently using a webhook or exporting on schedule?
a
thanks @Tyler Lamparter I'm going to take another shot at it today and let you know how it goes. Thanks for the help!
Hey @Tyler Lamparter thanks again for helping here. I started following your instructions this morning and I created export as you suggested, however when I go to my filters, I'm not seeing a filter in the dropdown for record.associations.deals.results.length . I'll include screen shots below
message has been deleted
message has been deleted
t
@AK47 it probably isn't showing there since the first record you have previewing doesn't have any deals associated with it. On the first screenshot, if you scroll down, are there any records there that do have deals associated? If so, you can copy the record (copy everything within that record curly brackets) then paste it into the input on the filter settings. Does that make sense?
a
trying to make sense of it...where do I copy the record from exactly?
i see in my parsed output, a customer with a deal
message has been deleted
i tried copying all of that and putting it in the input section, but that didn't do it...
t
Double click the curly brackets and copy
then go to the filter and override the record displayed there with what you paste
a
Awesome, thank you, that worked. So I have the export setup as you described, how do i handle the netsuite side? Simply create customer, or do i need a lookup to see if the customer exists?
message has been deleted
i did make a saved search to return all customers if we need it
t
What is the unique identifier for a customer? Email or hubspot id? You don't need the lookup step because you can configure the import step to handle that. See this screenshot as an example
Change the "how can we find existing records" to use the fields that identify if a customer/company already exists in NetSuite
a
awesome, i think what I have setup is good...will test with a new customer\deal in HubSpot.
thanks again for your help!
Hmm...every time it runs, it will export all deals and check their customers. Can't a limit it to check deals that were created since it last ran?
damn, my test failed too...it's ignoring all customers. THe customer name is what we want to make unique, so if the name doesn't exist create it, if it does, ignore it
message has been deleted
t
"Hmm...every time it runs, it will export all deals and check their customers. Can't a limit it to check deals that were created since it last ran?" Because of how we set it up, we can't. You would generally make one full sync, then it would start running off a delta whenever the company in HubSpot updated. If we went the option 2 route that Jeff suggested, then we could pull in customers as deals were being made. I also would highly suggest not using name as the unique id, but it would still work. What is the error you are getting?
a
right now i'm not getting an error. It's pulling X number of deals and then ignoring X customers. 0 successful, 0 errors, 100% ignored
but the company that i created doesn't seem to exist in netsuite simply "aaron test"
t
Gotcha. Can you show me the preview from the source again? In mine, the name field is just properties.name and doesn't have the .value
a
{ "page_of_records": [ { "record": { "id": "4608859703", "properties": { "createdate": "2020-10-09T203816.060Z", "domain": null, "hs_lastmodifieddate": "2022-05-17T184918.075Z", "hs_object_id": "4608859703", "name": "Floor and Decor - Retail Floor Materials" }, "createdAt": "2020-10-09T203816.060Z", "updatedAt": "2022-05-17T184918.075Z", "archived": false } }, { "record": { "id": "5048211570", "properties": { "createdate": "2020-12-17T211953.007Z", "domain": "crowdcontrolcompany.com", "hs_lastmodifieddate": "2022-05-04T201810.032Z", "hs_object_id": "5048211570", "name": "Crowd Control Company" }, "createdAt": "2020-12-17T211953.007Z", "updatedAt": "2022-05-04T201810.032Z", "archived": false } }, { "record": { "id": "5264162205", "properties": { "createdate": "2021-01-28T235432.198Z", "domain": "mwident.com", "hs_lastmodifieddate": "2022-04-15T180522.001Z", "hs_object_id": "5264162205", "name": "Masterworks International Dental Lab" }, "createdAt": "2021-01-28T235432.198Z", "updatedAt": "2022-04-15T180522.001Z", "archived": false } }, { "record": { "id": "5299990746", "properties": { "createdate": "2021-02-04T163211.562Z", "domain": "shepardes.com", "hs_lastmodifieddate": "2022-06-02T140023.011Z", "hs_object_id": "5299990746", "name": "Shepard Exposition Services" }, "createdAt": "2021-02-04T163211.562Z", "updatedAt": "2022-06-02T140023.011Z", "archived": false, "associations": { "deals": { "results": [ { "id": "5525786892", "type": "company_to_deal" }, { "id": "5525786892", "type": "company_to_deal_unlabeled" } ] } } } }, { "record": { "id": "5340673608", "properties": { "createdate": "2021-02-08T223016.829Z", "domain": "meowwolf.com", "hs_lastmodifieddate": "2022-04-15T180522.001Z", "hs_object_id": "5340673608", "name": "Meow Wolf" }, "createdAt": "2021-02-08T223016.829Z", "updatedAt": "2022-04-15T180522.001Z", "archived": false } }, { "record": { "id": "5340920263", "properties": { "createdate": "2021-02-08T230845.305Z", "domain": "westgateresorts.com", "hs_lastmodifieddate": "2022-05-31T140042.168Z", "hs_object_id": "5340920263", "name": "Westgate Resorts" }, "createdAt": "2021-02-08T230845.305Z", "updatedAt": "2022-05-31T140042.168Z", "archived": false } }, { "record": { "id": "5340921146", "properties": { "createdate": "2021-02-09T003921.293Z", "domain": "bellagio.mgrmresorts.com", "hs_lastmodifieddate": "2022-04-15T180522.001Z", "hs_object_id": "5340921146", "name": "Bellagio Hotel and Casino" }, "createdAt": "2021-02-09T003921.293Z", "updatedAt": "2022-04-15T180522.001Z", "archived": false } }, { "record": { "id": "5340921153", "properties": { "createdate": "2021-02-09T004031.111Z", "domain": "southpointcasino.com", "hs_lastmodifieddate": "2022-05-14T052838.278Z", "hs_object_id": "5340921153", "name": "South Point Hotel, Casino & Spa" }, "createdAt": "2021-02-09T004031.111Z", "updatedAt": "2022-05-14T052838.278Z", "archived": false } }, { "record": { "id": "5340950562", "properties": { "createdate": "2021-02-09T003055.652Z", "domain": "mgmresorts.com", "hs_lastmodifieddate": "2022-05-31T140152.622Z", "hs_object_id": "5340950562", "name": "MGM RESORTS INTERNATIONAL" }, "createdAt": "2021-02-09T003055.652Z", "updatedAt": "2022-05-31T140152.622Z", "archived": false } }, { "record": { "id": "5341073140", "properties": { "createdate": "2021-02-09T002915.455Z", "domain": "vipertradeshow.com", "hs_lastmodifieddate": "2022-05-11T205920.979Z", "hs_object_id": "5341073140", "name": "Viper Tradeshow Service, Inc." }, "createdAt": "2021-02-09T002915.455Z", "updatedAt": "2022-05-11T205920.979Z", "archived": false } } ] }
t
@AK47 see the name field is just properties.name. Can you try updating your import setting where it asks how to find existing records? Also, do you have any fields mapped on the import?
a
Amazing, that did it, it is creating customers now. However, on the one that I did, i see an address and website and things in HubSpot, but only the name came over to Netsuite. I initially had left the default mapping, but then i tried to remove the .value part of the field like we did on the filter, but no luck. What do I need to change in the mapping to get the actual values from things like address or company website?
message has been deleted
@Tyler Lamparter please let me know what else I need to do in the mapping, we are so close. At this point it is checking open deals for new customers and creating those customers...but it's as if it doesn't have the fields from the customer. I'm sure i'm just referencing them wrong...please help!
t
Sorry I meant to get back to you yesterday, but was swamped in meetings. From the looks of it, there aren't any address fields available in your data. Can you go back to your source step and put this into the properties field? city,domain,industry,name,phone,state,address,address2,website,country,description
message has been deleted
Then modify your mapping by removing the .value
What this is doing is telling HubSpot that you also want these fields to be returned when we make the get call to them. By default, it returns fewer fields because they try to limit usage on their api
a
@Tyler Lamparter Spectacular. Thanks again for your help. Wish I understood this better, but we got it to work. I figured if we were using the Companies API, it would already be able to access those fields. I guess I have to define the fields that I want to pull from the customer in the properties section and then map them. If I decide I want to bring a field from hubspot called "LinkedIn Company Page" into Netsuite, I'll have to add it here in Properties first, right?
t
Glad to hear it's working! Yes you would just need to add the field property name to the comma separated list. It looks like this is the full list of system company fields, but you would need to find the field id within your hubspot instance https://knowledge.hubspot.com/companies/hubspot-crm-default-company-properties
👍 1
a
Thanks again! Much appreciated...looks good to me. Will show to the client tomorrow.
t
Looks like this is actually a good list to use https://henrywang.nl/hubspot-company-properties-list/. It has the field ids and field names
So you would want to add linkedin_company_page
a
Perfect, thank you. That field was just an example. I think I understand it now.
t
No problem, happy to help!
a
@Tyler Lamparter Could I map a field from the Deal to the Customer I create in Netsuite? Trying to map Deal Owner to Sales Rep now. Do I hubspot_owner_id into the properties and then map that to sales rep?
t
Do you have the hubspot_owner_id on the NetSuite employee record? If not, I would suggest adding the owneremail which should be the sales reps work email, then map that to sales rep field in netsuite. You will have to do a dynamic lookup on that mapping. Something like this
a
sorry...haven't had any time to jump back on this, but will try tomorrow and i'll let you know where i land.
thanks as always...
@Tyler Lamparter Finally got back to this. Can't I map Deal Owner's name in Hub Spot to Sales Rep's name in Netsuite?
t
You can if it's always the same, but usually work email is a good unique identifier to work off of
a
OK, so let's say I was to do that, I first have to go to my export and included the owner's email in my export. I tried to add owneremail to the list of properties in my search parameters. This added owneremail to my results, but it's null for all records
(i started by trying to do the map, but didn't have properties.owner email in my drop down...so i went back to the export)
t
It looks like that is an issue with HubSpot not returning it. It does return hubspot_owner_id when you add that to the parameter so we would need to create a lookup step along the way. Let me make a screen recording and share it here.
It would look something like this
a
I did add hubspot_owner_id earlier, but i couldn't find anything in hubspot that mapped to that number, so I wasn't able to figure out the mapping. Do you know where in HubSpot I would see the hubspot_owner_id ? (i know you aren't hubspot support, but if you know...)
im getting owner ID 50109449
and is that the company owner or the deal owner? i'm looking for the deal owner
t
I'm not sure where you would find that in HubSpot UI. It probably would be in the url of the employee, but if you create that lookup step and hardcode the id to what you specified then it should pull up the information on who it is.
This would be company owner. If you are wanting the most recent deal owner, then we would need to rebuild the flow to pull deals as they close, lookup customer details, and the deal owner details, then map to NetSuite. Does that make sense?
a
We want to only create a customer once a deal is created, and for the customer to be created with the owner of that deal. This can be for going forward only.
so you're saying i would need to do a whole new flow for that? where we import deals...damn, hate to start all over
any chance we can do this on a screen share? I feel like we can get this to work in 15 minutes, but here its taking...well, longer
t
Sure, dm me your email. You can also install this template and try it out by going to the top right on the home page and clicking install integration. You may have to update the mappings to your NetSuite environment.