Guides
Using Personade in Clay
Clay finds and enriches the people. Personade makes the thing they actually watch. One HTTP API column does it, and the link comes back on the same call.
Clay and Personade
Works today via Clay's HTTP API column. A listed integration is in review.
Before you touch Clay
Make the campaign once, by hand, and keep its id. A campaign is the container for one audience; creating one per row would leave you with a thousand campaigns of one person each.
# find a recording, and copy the id of one where usable is truecurl https://app.personade.com/api/v1/templates \ -H "Authorization: Bearer $PERSONADE_KEY"# build a campaign on itcurl https://app.personade.com/api/v1/campaigns \ -H "Authorization: Bearer $PERSONADE_KEY" \ -H "Content-Type: application/json" \ -d '{ "templateId": "<from above>", "name": "Clay - RevOps Q3" }'The column
One HTTP API column, run per row. It adds the person and hands back their page link in the same response, so there is nothing to poll and no second column to reconcile.
- Method: POST
- URL:
https://app.personade.com/api/v1/campaigns/<campaign id>/leads - Headers:
Authorization=Bearer pnd_..., andContent-Type=application/json
For the body, type the JSON and press / where each value goes, to insert a Clay column. Clay does not use {{ }} here.
{
"firstName": "<First Name>",
"company": "<Company>"
}A bare person object works, so there is no need to wrap it in a people array. Nothing is charged by this column, so let the whole table run.
Getting the link into a cell
The response looks like this:
{
"added": 1, "skipped": 0, "total": 42,
"people": [
{ "id": "b77d0a89-...", "firstName": "Sofia", "company": "Grab",
"url": "https://vid.personade.com/p/sofia-lbGRs_NOzRrpuOU4",
"videoUrl": "https://vid.personade.com/p/sofia-lbGRs_NOzRrpuOU4/video" }
]
}Open the cell, expand people then 0, and click Add to column on Url. That is the link you send. Do the same with Id if you want to look people up individually later.
A different call to action for every row
This is the part Clay is unusually good at. Your table already holds a different link per row: the rep who owns that account, a booking link in their timezone, the pricing page for their plan. Three optional fields put it on their page.
{
"firstName": "<First Name>",
"company": "<Company>",
"ctaLabel": "<CTA Label>",
"ctaUrl": "<Booking Link>",
"headline": "<Headline>"
}These merge over the recording's own settings rather than replacing them. Send only ctaUrland you keep the recording's wording; send only ctaLabel and you keep its destination. Send neither and the page looks exactly as it always did.
A bare email address in ctaUrl becomes a mailto:link, so "reply to the rep who owns this account" is one column.
Then leave Clay for a minute
Preview, watch one, and generate. Do this outside Clay, because it spends and because somebody should see a video before two hundred go out. The links already in your table start working as each render lands.
# renders a few, so you can watch onecurl -X POST https://app.personade.com/api/v1/campaigns/<id>/preview \ -H "Authorization: Bearer $PERSONADE_KEY"# then charge for the rest and start the renderscurl -X POST https://app.personade.com/api/v1/campaigns/<id>/generate \ -H "Authorization: Bearer $PERSONADE_KEY"You can do both from the campaign page in Personade instead. The buttons and the endpoints do the same thing.
Things that will bite you
Set a daily cap on the key
You choose one when you make the key. A Clay table re-running because somebody changed a filter is the exact situation it exists for.
Names your voice cannot say
Some names do not survive text to speech. Watch the preview with the least ordinary name in your list, not the easiest one.
A column returns 409 campaign_busy
The campaign is generating, so people cannot be added to it right now. Wait for it to finish, or add to a new campaign. This is why the pattern is fill the table first, then generate once.
Re-running a row is safe
Somebody already in the campaign comes back with the id and URL they already had, and no second video is made. The cell keeps its value.
Start building
Wire it into your table
Make a key with writing switched on, or have us set the columns up with you on a call.