Skip to main content

No-Code Handoff Link

The handoff link normally comes from the Generate a marketplace handoff URL API call. If you'd rather not integrate with the API at all, you can build the link yourself as a plain URL with query parameters and drop it into an email, SMS, or web page. The action is still attributed to you.

The trade-off: because anyone can read or edit a URL, we can't trust an identity that's baked into it. So the no-code link verifies the user at open (Google or phone) instead of trusting an email/phone from the query string. Everything else — vehicle, address, theme, attribution — is carried as enrichment.

When to use which
  • API / tok_ link (generate-link) — you make one authenticated call, we mint a one-time tok_… link, and the user is signed in automatically (no login screen). Use this when you can make a server-to-server call.
  • No-code link (this page) — you build a URL with no integration. The user verifies identity once at open. Use this when you can't or don't want to call the API.

The URL

Point the user at the Ownli-hosted handoff page with your parameters:

https://marketplace.partner.sandbox.ownli.app/marketplace/handoff
?ownli_partner=sparkle
&ownli_category=insurance
&utm_source=sparkle&utm_medium=email&utm_campaign=spring_wash
&ownli_first_name=Jane&ownli_last_name=Doe&ownli_external_id=cust_8842
&ownli_address_line1=123%20Main%20St&ownli_address_city=Miami&ownli_address_state=FL&ownli_address_zip=33101
&ownli_vin=1HGCM82633A123456
&ownli_theme_name=Sparkle%20Car%20Wash&ownli_theme_primary_color=%231A2B3C
&ownli_mode=embedded

Only ownli_partner and ownli_category are required; everything else is optional. Always URL-encode values (spaces → %20, #%23, + in a phone → %2B).

Do not put email or phone in the link

There is intentionally no ownli_email / ownli_phone parameter. A URL is unauthenticated and user-editable — trusting an identity from it would let anyone sign in as anyone (account takeover), and it would leak personal data into browser history, logs, and referrer headers. Identity is established by the verification step at open. If you want us to trust an identity you already hold, use the authenticated API link instead.

Parameters

Required

ParameterDescription
ownli_partnerYour marketplace slug (the MarketplaceSlug of your Ownli DataBuyer). Identifies you as the contributor and supplies your stored brand theme defaults. An unknown slug is rejected.
ownli_categoryMarketplace category slug — the same value the API path takes as categorySlug (e.g. insurance). Drives which vendor flow runs. An unknown category is rejected.

User enrichment (optional)

ParameterDescription
ownli_first_nameEnd-user first name.
ownli_last_nameEnd-user last name.
ownli_external_idYour own id for this user. Stored as-is for your reference; never used to resolve or authenticate the Ownli user.
ownli_address_line1Street address line 1.
ownli_address_line2Street address line 2.
ownli_address_cityCity.
ownli_address_state2-letter US state code. Required if any address field is supplied.
ownli_address_zipZIP / postal code.

Vehicle (optional)

ParameterDescription
ownli_vinVehicle VIN (preferred). Year/make/model are decoded automatically when possible.
ownli_plateLicense plate (fallback when no VIN).
ownli_plate_state2-letter state for the plate. Required with ownli_plate.

Branding (optional)

Each value overrides your DataBuyer theme default for this link only.

ParameterDescription
ownli_theme_nameBrand display name shown in the standalone header.
ownli_theme_logoBrand logo URL (https only).
ownli_theme_primary_colorPrimary color (hex, e.g. #1A2B3C).
ownli_theme_secondary_colorSecondary color (hex).
ownli_theme_accent_colorAccent color (hex).
ownli_theme_font_familyFont family token (e.g. Inter, sans-serif).
ownli_theme_radiusCorner radius token (e.g. 8px).

Non-hex colors and malformed values are ignored server-side.

Presentation (optional)

ParameterDescription
ownli_modeembedded (chromeless, for display inside your own app) or standalone (brand header). Omit to auto-detect (iframe → embedded).

Attribution (optional)

Free-text analytics tags, stored on the handoff record. Never used for identity or to resolve the contributing partner.

ParameterDescription
utm_sourceMarketing source.
utm_mediumMarketing medium.
utm_campaignCampaign name.

What happens at open

  1. Verify identity. The user signs in with Google or a phone code. The verified identity is the source of truth for the Ownli user — the URL never asserts who they are. A returning user with an existing session sees a one-tap "Continue as …" (with an option to switch accounts) instead of logging in again.
  2. Resolve & attribute. We resolve your ownli_partner to your DataBuyer, validate ownli_category, and find-or-create the Ownli user from the verified identity, attributed to you. Vehicle and address enrichment are attached.
  3. Theme. Your DataBuyer theme is applied, with any per-link ownli_theme_* values layered on top. ownli_mode controls whether the brand header shows.
  4. Continue to the flow. The user lands in the same vendor flow the API/tok_ link uses.

Errors

ConditionResult
ownli_partner missing or unknownThe link won't proceed — the partner can't be resolved.
ownli_category missing or unknownThe link won't proceed — CATEGORY_NOT_FOUND.
User abandons verificationNo Ownli user is created and nothing is attributed.