Skip to main content
POST

Overview

Use this endpoint to programmatically trigger win-loss interviews for your contacts. Two paths:
  • Sequence path (sequence_id) — Hindsight enrolls the contact and Paige handles email outreach automatically. The interview type, email template, and scheduling logic are inherited from the sequence.
  • Link-only path (interview_type_id) — Creates the interview request and returns a survey link. No email is sent; you control delivery.
Contacts are upserted by email — if the contact already exists in your org, their record is updated with any new name or context you provide.

Request Parameters

Required

You must provide either sequence_id or interview_type_id.

Optional

Finding IDs

  • Sequence IDs — Settings → Sequences in your Hindsight dashboard
  • Interview type IDs — Settings → Interview Types
  • Deal IDs — Use the Get Deals endpoint or find them in the dashboard URL

Contact Context

The contact_context field is the primary way to give Paige background on who she’s interviewing. This context is stored in the contact’s notes field and used in every interview prompt for that contact. Pass anything relevant — role, company details, the deal they were involved in, why you’re reaching out, or any other signal that helps Paige have a more informed conversation:
You can also pass a plain string:

Response

Rate Limits

Rate limit headers are included on every response:

Examples

Common Patterns

Trigger on CRM deal close

Connect Hindsight to your CRM via webhook or scheduled job to automatically send win-loss interviews whenever a deal closes. Pass the deal context so Paige has background on what was evaluated.

Manual outreach with custom delivery

Use interview_type_id (no sequence_id) to get a survey link you can embed in your own email or send via your CRM. This is useful when you want full control over messaging or timing.

Enriching contact context over time

If you call this endpoint multiple times for the same contact, contact_context overwrites the existing notes. To preserve prior context, read the contact’s current notes first and merge before sending.

Error Responses

Authorizations

Authorization
string
header
required

API key from Hindsight dashboard

Body

application/json
contact_email
string<email>

Email address of the contact. Required. The contact is upserted — created if new, updated if existing.

contact_name
string

Full name of the contact. Used to create or update the contact record.

Example:

"Jane Smith"

contact_context

Unstructured context about this contact — passed to Paige as background information when conducting the interview. Can be a plain string or a JSON object; objects are serialized automatically. Stored in the contact's notes field and included in every interview prompt for this contact.

Example:
interview_type_id
string

ID of the interview type to use (e.g. win-loss buyer, NPS). Required if sequence_id is not provided. Find interview type IDs in your Hindsight dashboard under Settings → Interview Types.

Example:

"type_abc123"

sequence_id
string

ID of an outreach sequence. When provided, the contact is enrolled in the sequence and Hindsight's scheduling agent handles email delivery automatically. The interview type is inherited from the sequence. Required if interview_type_id is not provided.

Example:

"seq_abc123"

deal_id
string

Hindsight deal ID to associate this interview with. The deal must belong to your organization.

Example:

"deal_xyz789"

objective
string

Custom goal for this specific interview. Paige uses this as additional context when conducting the interview (e.g. "Understand why we lost to Competitor X on pricing").

Example:

"Understand why we lost this deal to Competitor X"

Response

Interview request created

interview_request_id
integer

ID of the created interview request.

Example:

4821

contact_id
string

ID of the upserted contact record.

Example:

"contact_abc123"

deal_id
string | null

Deal ID passed in the request, or null.

Example:

"deal_xyz789"

survey_url
string | null

Direct link to the survey for this contact. Share this link manually if not using a sequence.

Example:

"https://app.usehindsight.com/survey?token=tok_xyz"

survey_token
string | null

Raw token used in the survey URL.

Example:

"tok_xyz"

status
enum<string>

created — interview request created, no outreach sent (link-only path). sent — contact enrolled in sequence, outreach queued.

Available options:
created,
sent
Example:

"sent"