Skip to main content
POST

Overview

Use this endpoint to programmatically trigger win-loss interviews. There are three 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.
  • Seller path (respondent_type: "seller") — Creates an internal, link-only seller debrief. No contact is created, and the API does not send email, Slack messages, or sequence outreach.
Buyer 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. Seller requests use the supplied email as the internal respondent and return contact_id: null.

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
  • Salesforce Opportunity IDs — Salesforce Opportunity.Id; the deal must already be synced to Hindsight

Contact Context

The contact_context field is the primary way to give Paige background on a buyer. This context is stored in the buyer 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

Organization-wide and per-API-key limits apply. Interview actions may consume a separate usage quota. Handle 429 Too Many Requests using the current response headers:

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. For already-synced Salesforce opportunities, pass salesforce_opportunity_id instead of maintaining a separate Hindsight deal-ID mapping. Pass only one of salesforce_opportunity_id and deal_id.

Salesforce-only seller debriefs

Use a Salesforce Flow or outbound callout to invoke the seller path on Closed Won or Closed Lost. Set respondent_type to "seller", pass the opportunity owner’s email as contact_email, and store the returned survey_url on the Opportunity. This path creates an internal request without Slack or email delivery.

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 Settings → API keys. Use Authorization: Bearer YOUR_API_KEY. Newly created keys begin with hs_; existing keys remain supported until rotated or expired.

Body

application/json
contact_email
string<email>

Email address of the person to interview. Required. Buyer contacts are upserted; seller requests use this as the internal respondent.

contact_name
string

Full name of the person to interview. Used to create or update a buyer contact record.

Example:

"Jane Smith"

contact_context

Unstructured context about a buyer 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 buyer contact's notes field and included in every interview prompt for that 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. Mutually exclusive with salesforce_opportunity_id.

Example:

"deal_xyz789"

salesforce_opportunity_id
string

Salesforce Opportunity ID for an already-synced deal. Hindsight resolves it using the organization-scoped deals.salesforce_id field. Mutually exclusive with deal_id.

Example:

"006xx000001ABCdAAO"

respondent_type
enum<string>
default:buyer

Audience for the interview. buyer upserts an external contact and supports sequences. seller creates an internal, link-only request and cannot be used with sequence_id.

Available options:
buyer,
seller
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 | null

ID of the upserted buyer contact record, or null for seller requests.

Example:

"contact_abc123"

deal_id
string | null

Resolved Hindsight deal ID, or null.

Example:

"deal_xyz789"

salesforce_opportunity_id
string | null

Salesforce Opportunity ID used to resolve the deal, or null.

Example:

"006xx000001ABCdAAO"

respondent_type
enum<string>

Audience for the created interview request.

Available options:
buyer,
seller
Example:

"buyer"

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"