Any update on the bettercontact.rocks integration?
Hey hey! Can you drop the URL for your table here? (if applicable) 🫶 Don't worry, only admins will be able to open your table 😉
Hi, I'm checking this with the developers
It's now in the queue, targeting next week for release.
Juan P., do you know if we should be replacing existing waterfall workflows? Or add it another layer of waterfall enrichments
Great question, William! Just like waterfalls, Bettercontact aggregates other email finders which could or could not be the same ones we have. So it likely comes down to preference or depending on which ones are used by them during their entire process.
Thanks!
Sure!
👋
Yep, that's likely what the team is checking or in that stage currently, once that's cleared I guess it will be announced. Keep an eye out since it could be any day now :)
Owen L. as a prerequisite for adding bettercontact to our email providers, we have to implement a way to handle callback URLs on the backend. bettercontact's old api major version used the standard asynchronous api response format, but their new api major version is the first action where we have to build a way to handle callback URLs. if you're curious for a deep technical explanation, i can give one, but tl;dr callback URLs is something we've been thinking about for a while, and is a big engineering project that'll take about a month to be completed. i'll ping this thread when it is ready, though - lmk how we can help with any workarounds in the meantime!
for now, i'd set up an http api column to call bettercontact's api, and pass it a webhook that's a source for another table as the callback url. you can then proceed as normal in this other table, and use lookup record in other table to get all the data from your original table into this webhook table! if that doesn't work for your use case, zapier likely has a way to set up callback urls, and using that would be a good backup option ✔️
Colin P. I'm not that technically savvy (hence using Clay) and only following part of this. Do you have a video outlining this process I can follow? I have one of my tables I'm trying to enrich (link) where I input a 'HTTP API' column that calls BetterContact API. Then there's another table with webhook (link)? I've just got lost from that point
first off - it looks like this is a company table, not a people table. to get someone's email, i'd recommend setting up a people table, so you can pass the find email columns variables like the person's first and last name in addition to their company domain.
second off - no video on this, but you've got the basic idea! bettercontact's documentation tells you the structure you should pass in the body of the http api column: https://bettercontact.notion.site/Documentation-API-e8e1b352a0d647ee9ff898609bf1a168
make sure to pass in the BetterContact Webhook table's webhook in the http api body (you can find this value in the BetterContact Webhook table by clicking the Webhook source column > Sources > Pull in data from a Webhook). i'd also make sure to make the ID returned in that http api column into its own separate column. then if you run a cell in your original 004.025 table in the http api column, you should see your BetterContact Webhook table automatically getting populated with the results of bettercontact whenever bettercontact completes.
within your BetterContact Webhook table, i'd then run a "lookup record in other table" column where you find a matching record in your original 004.025 table. you can do this by matching the ID of the BetterContact webhook response with your original 004.025 table's "returned ID" column you set up earlier. you'll then have all the data from your previous table, and the data from bettercontact, all consolidated in this new BetterContact Webhook table.
i know the above instructions are pretty complicated / technical, so if you need someone to help walk you through, Arturo O. will be the best person to DM. he's a legend at getting clay tables working 🙂
Thanks for those details Colin P., this is much clearer step by step 🙏 In terms of the company table I'd 'Find Contacts at Company' enrichment and then waterfall the first 3 contacts aiming to get an email for someone. I thought it didn't matter fi it was a company or people table that it's the same at the end of the day? I've not run a HTTP request before but followed the exact format in the BetterContact API documentation but getting an error message of 'Failed to parse body input'. I've played around a little with the body format but no luck. If it can get the data too and from BetterContact I'm pretty comfortable with the "lookup record in other table" function.
Thank you for the insights, Colin!! I'll take a look at your setup, Owen, and see if we can make it run.
Owen L., it's working now! The webhook URL was missing the double quotes around it but everything else was properly mapped out. Let me know if you see the values come through in the other table, I just tested one row to make sure.
Herman M. the hack mentioned above is a decent workaround
Thanks Colin P. and William H., I tried the above quite often now, but didn‘t work out for me (doing it the first time) Any way someone can please send me a quick video how to set it up? (if it‘s taking too much time to do it, no worries!)
Where is it failing? Are you able to make an API request successfully to Bettercontact?
William H. I didn‘t even make it there, with the HTTPS tables etc. 😅
Arturo O. should be able to help I believe. But I'll try to quickly outline the steps. As Colin P. mentioned it's a bit complicated 😅 and honestly kind of easy to mess up.
Make a new Clay table importing data from webhook
You should be given a URL
Make a new HTTP API column
Method should be POST
Endpoint should be https://app.bettercontact.rocks/api/v2/async?api_key=<INSERT_API_KEY>
Get the API key from bettercontact.rocks
Data should look like this
{
"data":[
{
"first_name": <DATA>,
"last_name": <DATA>,
"company": <DATA>,
"company_domain": <DATA>,
"linkedin_url": <DATA>,
"custom_fields":
{
"you_can_put_anything_here": <DATA>
}
}
],
"webhook":"<THE_URL_YOU_WERE_GIVEN_ABOVE>"
}
Oh headers should be: Key: Content-Type Value: application/json
Once it's working, you can verify by:
Checking bettercontact.rocks
Checking the new clay table
You should new rows appear here for every enrichment
Yep, happy to help but looks like your breakdown was very detailed, William H.!! Herman M., feel free to share a link to a table you're working on and I can check it out. (have a few tickets incoming and trying to catch up to them but will get back to this).
Here's their API docs, a bit difficult to find - https://bettercontact.notion.site/Documentation-API-v2-e8e1b352a0d647ee9ff898609bf1a168
That‘s amazing, thanks! Will try it out now 🙌