Resend

Buyer intent as Resend contact properties

Parsley provisions 13 contact properties in your Resend account, then upserts contacts and fires a parsley.lead.scored event every time a chatbot conversation is scored.

Build Resend Segments and Automations on first-party intent signals. Parsley provides the signal. Resend provides the engine. No middleware, no proprietary SDK.

Free to start - no credit card required

What it is

A one-way signal flow from Parsley to Resend. When a visitor chats with the AI on a Parsley profile, the conversation is scored - lead quality, intent stage, MEDDIC evidence, topics. The integration writes those signals to Resend in two ways:

  • Contact properties. Each scored visitor becomes a Resend contact in your chosen audience, with 13 parsley_-prefixed properties attached.
  • Custom event. parsley.lead.scored fires on every turn, carrying lead quality, intent score, and conversation context. Resend Automations subscribe by name.

The customer composes broadcasts and automations on top of those primitives. Parsley never sends email through your account.

Primitives

All keys are alphanumeric + underscore, max 50 chars - Resend property constraint compliant. Type is string or number (Resend does not support boolean).

Contact properties (13)

keytypevalue
parsley_lead_qualitystringhot | warm | cold
parsley_intent_signalstringhigh_intent | evaluation | research | support
parsley_intent_scorenumber1-5 (1 = Cold, 3 = Warm, 5 = Hot), recomputed every turn
parsley_topicsstringComma-separated topic list
parsley_meddic_metricsstring"true" | "false"
parsley_meddic_economic_buyerstring"true" | "false"
parsley_meddic_decision_criteriastring"true" | "false"
parsley_meddic_decision_processstring"true" | "false"
parsley_meddic_identify_painstring"true" | "false"
parsley_meddic_championstring"true" | "false"
parsley_question_countnumberVisitor messages in conversation
parsley_last_interactionstringISO 8601 timestamp
parsley_profile_slugstringWhich Parsley profile they engaged

Custom event (1)

Event name: parsley.lead.scored. Identifier: email (Resend resolves to contactId on lookup).

{
  "event": "parsley.lead.scored",
  "email": "alex@acme.com",
  "payload": {
    "leadQuality": "hot",
    "intentSignal": "high_intent",
    "intentScore": 5,
    "profileSlug": "peter",
    "conversationId": "conv_abc123"
  }
}

Quickstart

Three patterns to put the primitives to work in Resend.

1. Trigger a Resend Automation on hot leads

In the Resend dashboard, create an Automation with trigger type Custom event and event name parsley.lead.scored. Add a condition step:

payload.leadQuality == "hot"
  AND payload.intentScore >= 4

2. Build a Segment for cohort broadcasts

Use the property names directly in Resend Segment queries:

// Resend Segment: "Hot leads, this week"
parsley_lead_quality = "hot"
  AND parsley_last_interaction > now() - 7d

3. Personalize a broadcast with intent merge tags

Reference Parsley properties in any Resend template using merge-tag syntax:

Hi {{ first_name }},

I saw you were asking about {{ parsley_topics }} -
{{ #if (eq parsley_intent_signal "high_intent") }}
sounds like you're close to a decision. Worth a 15-min call?
{{ else }}
happy to share a quick walkthrough whenever helpful.
{{ /if }}

Setup

Connect once, contacts and events flow continuously.

  1. 1

    Generate a Resend API key

    In your Resend dashboard, go to API Keys and create a key with full access. The integration needs read/write on contacts, contact properties, and events.

  2. 2

    Connect from /hub/integrations

    Open Parsley, go to Integrations, find Resend, paste the API key. The connect screen fetches your audiences and asks you to pick one as the destination.

  3. 3

    Properties auto-provision

    On connect, Parsley calls POST /contact-properties for each of the 13 keys. Existing keys are detected and skipped (idempotent). Nothing is deleted.

  4. 4

    Verify with a test event

    The connect screen has a Send test event button that pushes a sample contact and fires parsley.lead.scored into your audience. Check the contact appears with parsley_ properties populated.

Native, code-first integration. 13 contact properties + a parsley.lead.scored custom event - no middleware, no proprietary SDK.

Resend integration FAQ

Start signaling intent into Resend

Create a Parsley profile, connect Resend, and your next chatbot conversation lands as a scored contact. No credit card required.

Free to start - no credit card required