Track Input Params

Updated: October 6, 2026

Input Params are key-value context attached to a conversation, such as source, campaign, plan tier, or a CRM identifier. They appear in the Input tab on conversation cards and conversation details. APIs and exports call these values participant metadata.

Input Params can come from:

  • URL parameters – Lightweight values appended to public links or embed params.
  • Invite context – Trusted, server-side values attached to a specific participant invite through the participant invite MCP tooling.
  • Slack profile metadata – Context captured when a participant starts a conversation in Slack.

Outline knowledge is separate. Use Knowledge & Resources for facts that apply to every participant, and participant context for values that vary by participant or channel.

URL Parameters

Use URL parameters when you are distributing a public link through a campaign, product surface, or external recruiting tool.

text
https://getperspective.ai/interview/abc123?source=newsletter&campaign=q2&plan=pro

Perspective stores custom URL parameters as Input Params. The agent can use them during the welcome message and interview, and they are available in results, analysis, structured output generation, and automation payloads.

Perspective currently has no application-specific limit on the number of custom URL parameters or the length of their keys. Total URL and request size limits still apply. The invite-context limits below apply only to invites.

URL parameter values are sanitized and truncated to 50 characters for agent prompts and MCP batch transcripts. Stored metadata, exports, and webhooks retain the decoded URL values without that sanitization or truncation. See Custom parameter limits for key naming and size details.

Do not put secrets or sensitive personal data in URLs.

For deeper examples, see Input Params.

Embed Parameters

Embeds can pass the same context through SDK parameters.

For script embeds:

html
<div  data-perspective-widget="RESEARCH_ID"  data-perspective-params="source=pricing_page,placement=inline_widget"></div>

For React or TypeScript SDK embeds, pass the same values through the params object. See Embed Interviews and Embed API.

Invite Context

Invite context is for participant-specific information you do not want exposed in the URL, such as:

  • CRM attributes
  • Account health
  • Entitlement flags
  • Renewal timing
  • A short summary of prior contact
  • A support case or sales stage

Invite context is attached when creating participant invites through the participant invite MCP tooling. Each invite can include up to 20 context keys. Keys are limited to 50 characters, and each value can be up to 2000 characters.

If invite context and URL parameters use the same key, invite context wins because it is trusted server-side data.

Example context:

json
{  "plan": "enterprise",  "renewal_stage": "90_days_out",  "account_health": "at_risk",  "last_touch": "Asked about SSO migration in April"}

The dashboard email composer personalizes invite messages and creates participant-specific invite links, but it does not expose a field for arbitrary invite context. Use MCP-created invites when you need trusted context values.

Reserved Parameters

Some parameters control the interview experience and are not stored as Input Params. Avoid using these names for custom context:

  • invite
  • embed
  • embed_type
  • theme
  • mode
  • voice
  • scroll
  • returnUrl
  • hideProgress
  • hideGreeting
  • hideBranding
  • enableFullScreen
  • defaultInteraction

The SDK also reserves brand.* color tokens (e.g. brand.primary, brand.dark.bg) for theming. Custom brand colors are passed through data-perspective-brand data attributes, not as Input Params.

email and name are not on this list. They are stored as Input Params, and a link that carries both also identifies the participant.

Use custom names such as plan_tier, user_role, campaign, source, or customer_segment instead.

Where Context Appears

Input Params are available in:

  • The Input tab on conversation cards and conversation details
  • Agent prompts during the welcome message and interview
  • Structured output generation
  • Analysis and interview search context
  • Webhook payloads as participant_metadata
  • Exported conversation.json files as participant.metadata
  • MCP conversation reads as participant_metadata
  • Automation agents and test data

Webhook and automation payloads flatten typed metadata to plain key-value strings for compatibility.

MCP single conversation reads expose participant_metadata as the same flat string map used by exports and webhooks. List and batch reads expose it when include_participant_metadata: true; they omit the field by default. The map retains stored values without prompt sanitization or truncation. Batch reads with include_transcripts: true also include sanitized metadata text inside conversations_xml. See Read Input Params through MCP for field locations.

Best Practices

Use URL parameters for attribution. Source, campaign, placement, variant, and segment are good URL parameters.

Use invite context for trusted values. If the participant should not see or edit it, do not put it in the URL.

Keep keys stable. Use the same key names across campaigns so analysis and automations stay simple.

Avoid sensitive data in URLs. URLs can appear in browser history, analytics tools, and referrer headers.

Prefer short URL values. Longer values should be invite context, outline knowledge, or a linked resource.

Test before launch. Open a test link with realistic parameters and confirm the values appear in the Input tab on the resulting conversation.

Common Pitfalls & Fixes

The agent ignores context → Add instructions in the outline about how the agent should use the specific keys.

The agent sees a truncated metadata value → URL parameter values in agent prompts are capped at 50 characters for prompt safety. Move longer content into invite context. Stored values, exports, and webhooks retain the full URL values.

A key does not appear in Input Params → Check whether it is a reserved system parameter.

URL and invite context disagree → Invite context overrides URL parameters. Pick one source of truth for each key.

A webhook payload is missing context → Confirm the context was present when the conversation was created. Metadata is captured from the initial URL/invite context, not inferred later.