- CategoryCRM
- AuthWebhook
Overview
Perspective is a quiz and funnel builder (perspective.co) that captures leads through interactive, mobile-first funnels. It connects to MessageMind as a pure inbound webhook source: there is no card on /integrations and no credentials to paste in MessageMind. Instead, MessageMind mints a per-account token and exposes two webhook URLs (one for New Lead, one for Funnel Completed) that you paste into Perspective's funnel builder. Once a visitor submits their email or phone, Perspective POSTs the funnel event to MessageMind, which resolves the contact and fires the matching automation trigger.
What MessageMind can do with it
- Receive two Perspective trigger types over inbound webhooks: New Lead (perspectiveFunnelStarted) and Funnel Completed (perspectiveFunnelCompleted).
- Create or merge the matching MessageMind contact from the funnel's email and phone, splitting into first/last name only when Perspective delivered both.
- Expose every profile answer as a token (funnel_name, funnel_completed, funnel_converted, timestamps, Result page, plus one field per quiz question).
- Deduplicate retries by Perspective contact id, funnel name, event and the selected freshness timestamp. A different selected timestamp creates a new occurrence for that identity.
- Treat an anonymous completion (no email and no phone) as unmessageable: the delivery is acknowledged and skipped.
Requirements
- A Perspective account that can configure outgoing webhooks on a funnel.
- At least one MessageMind automation listening on the perspectiveFunnelStarted or perspectiveFunnelCompleted trigger.
How to connect
- Call MessageMind's webhook-URLs endpoint (GET /v1/integration/perspective/webhook-urls). On first call it mints a per-account token; subsequent calls return the same URLs. The response contains two URLs: one ending in /new-lead and one ending in /funnel-completed, both carrying the token in the ?token query parameter.
- In Perspective's funnel builder, open the funnel's webhook settings and paste the New Lead URL on the New Lead trigger and the Funnel Completed URL on the Funnel Completed trigger.
- Save in Perspective. The first delivery that carries a valid token begins routing into any active MessageMind automation on the matching trigger. No further step in MessageMind is required: Perspective keeps no Integration document, the token itself is the connection.
Authentication and permissions
- Mechanism
- Inbound webhook. The token in the URL (format userId.48-hex-secret, routed by the id half and authenticated by the secret half in constant time) both identifies the account and authorises the delivery. There is no HMAC body signature.
- Credentials
- A per-account token is minted on the first webhook-URLs request and reused on later requests. The secret is stored in a dedicated model and excluded from ordinary JSON output. The URL path selects New Lead or Funnel Completed; fetching the URLs again does not rotate the token.
Available data and actions
Reads
- Perspective's webhook body for each delivery: the Perspective contact id, the funnel name, the meta block (createdAt, lastSeenAt, completedAt, convertedAt, globalId, completed, converted), and the profile object (email, phone, firstName, lastName, name, Result page, plus every quiz answer).
Writes
- Contacts: a new Perspective lead creates or merges a contact from the funnel's email and phone.
- Entity ledger marks: one claim per Perspective contact + funnel + freshness, taken before the contact write so a duplicate never repeats it.
- Automation triggers: perspectiveFunnelStarted or perspectiveFunnelCompleted fires into every active automation that wants it.
AI agent use cases
- Start a welcome automation the second a visitor submits their email on a Perspective quiz, with every quiz answer available as a token for personalisation.
- Send a tailored follow-up when a visitor finishes a diagnostic funnel, routed by their Result page.
- Nudge a lead who signed up but has not completed the funnel, by listening on New Lead but not Funnel Completed.
- Pick a conversation back up when a Perspective lead re-runs the funnel.
Configuration
- The URL path segment is authoritative: /new-lead always resolves to perspectiveFunnelStarted and /funnel-completed to perspectiveFunnelCompleted, regardless of what the payload flags say.
- Dedupe window: deliveries are retained for 30 days of ledger history. A redelivery older than that is treated as new.
- Dedup identity uses contact id, funnel name and event, with the first available timestamp in this order: lastSeenAt, completedAt, convertedAt, createdAt. A body without a Perspective contact id is not deduplicated by this key.
- Anonymous completions (no email and no phone) are acknowledged and skipped.
Example workflows
A completed Perspective funnel starts a campaign
- Perspective POSTs the funnel event to the MessageMind webhook URL ending in /funnel-completed, with the per-account token on the query string.
- MessageMind validates the token in constant time and verifies the account still exists.
- The entity ledger claim is taken before a contact write, keyed on contact id, funnel name, event and the selected freshness timestamp. A matching retry stops as a duplicate.
- MessageMind acknowledges the delivery with 200, then processes the payload in the background: the contact is created or merged, and the perspectiveFunnelCompleted trigger fires into every active automation.
Limitations
- Perspective's connection is inbound only. MessageMind never calls Perspective, so there is no historical backfill.
- There is no Perspective card on /integrations. The connection is the token embedded in the two webhook URLs; MessageMind stores no Integration document for Perspective.
- An anonymous funnel completion (no email and no phone) is acknowledged and skipped by design.
- Only two Perspective triggers are mapped to automation events: New Lead and Funnel Completed.
- Deduplication uses the Perspective contact id, funnel name, event and selected freshness timestamp. Changing other payload fields does not necessarily create a new event. Deliveries without a Perspective contact id are not deduplicated by this event key.
Troubleshooting
Perspective reports 401 'Missing webhook token'.
The pasted URL has lost its ?token query parameter. Fetch the current URLs from GET /v1/integration/perspective/webhook-urls and paste them back into Perspective's webhook settings.
Perspective reports 404 'Unknown webhook token'.
The token no longer matches a live MessageMind account. Fetch the current URLs from the webhook-URLs endpoint and paste them again.
A Perspective lead was delivered but no automation started.
Confirm an active automation is listening on the matching trigger. The URL segment, not the payload, is authoritative: /new-lead fires perspectiveFunnelStarted, /funnel-completed fires perspectiveFunnelCompleted.
The same Perspective lead fired twice.
A new selected freshness timestamp creates a new occurrence for the same contact and funnel. A payload without a Perspective contact id has a unique event identity for each delivery; otherwise retries sharing the same contact, funnel, event and selected timestamp collide on the ledger.
Disconnect and reconnect
- Remove the MessageMind webhook URLs from Perspective's funnel webhook settings. Perspective will stop delivering immediately.
- If a webhook token is exposed, contact MessageMind support about replacing the credential. The documented webhook-URLs endpoint returns the existing token and does not rotate it.
- Contacts already created from Perspective deliveries are kept; disconnecting does not remove them.