Recipe · HubSpot

Send testimonials to HubSpot

When you approve a testimonial, create or update the contact in HubSpot. Your social proof lives inside the CRM: every happy customer gets tagged and ready for campaigns.

Read time · ~5 min
How it works
Testivora fires the testimonial.approved event into your connector (n8n, Zapier, or Make). There you filter by email and push the contact to HubSpot with a 'Create/Update Contact' action. If you don't have the event inside your connector yet, start with the n8n, Zapier, or Make guide at /docs/automate.
01

Catch the testimonial.approved event

In your connector (n8n, Zapier, or Make — use each tool's guide at /docs/automate) set up the trigger that receives Testivora webhooks and filter for the testimonial.approved event. You only care about approved testimonials: that's the customer who already said yes.

02

Filter: only if there's an email

Add a filter / condition step that continues only when data.author.email exists and isn't empty. In HubSpot the email is the contact key: no email means there's no one to create or update, so you cut it off there to avoid junk records.

03

Create/Update Contact action in HubSpot

Add HubSpot's 'Create or Update Contact' (or 'Upsert') action. HubSpot dedupes by email, so if the contact already exists it updates instead of duplicating. Map the testimonial fields to contact properties:

javascript
// Acción "Create/Update Contact" en HubSpot — mapea estos campos
// (la llave de deduplicación de HubSpot es el email)

email     ← data.author.email      // requerido: sin email no hay contacto
firstname ← data.author.name       // nombre del cliente
company   ← data.author.company    // su empresa (si la dio)

// Opcional — propiedad custom para segmentar después
dejo_testimonio ← true             // checkbox / single-line "true"
Email is the key: HubSpot creates or updates by that field, never duplicates.
04

Optional: attach the testimonial as a Note

So your team sees the testimonial on the contact's timeline, add a 'Create Note' (Engagement) action associated to that contact and paste the testimonial text along with the rating. It's valuable context the next time you talk to that customer.

javascript
// Opcional: adjunta el testimonio como Nota (Engagement) al contacto
// para que el equipo lo vea en el timeline del CRM.

hs_note_body ← data.text                       // el testimonio
              + " (rating: " + data.rating + ")"  // 1–5 o null si es video
data.rating is 1–5 for text testimonials and null for video ones.
Tip: segment your campaigns
Create a custom property like left_testimonial = true and set it in step 3. Then build an active list filtered by that property to launch campaigns at your happiest customers, ask for referrals or public reviews. Before wiring it up, hit 'Send test' on your endpoint in Testivora to confirm the contact lands correctly.