Connecting accounts

Welcome screen

Show your name, logo and colours before the platform's consent screen, per link or for every connect in the workspace.

The welcome screen is a short page Pozy shows before sending the user to the platform. It says who is asking ("Acme wants to connect to your Instagram"), with your logo, and forwards to the platform's consent screen after about a second. Users who can see whose app is asking finish the connect more often.

The same branding carries through to the picker (Pages, locations, boards) and to the closing screen, so the whole flow looks like part of your product.

Add welcome=true and your brand to the connect call:

curl "https://api.pozy.ai/v1/connect/instagram?profileId=6650c1f2a9e4b7d3c8a1f0e2&welcome=true&brandName=Acme&logoUrl=https://acme.com/logo.png&primaryColor=%234F46E5&redirect_url=https://app.example.com/connected" \
  -H "Authorization: Bearer $POZY_API_KEY"

The returned authUrl points at the welcome screen instead of the platform. Nothing else in your flow changes.

#Save it for the whole workspace

Save your branding once and every connect URL created with your keys shows it, with no extra parameters. Do it in the dashboard under Settings → White label, or with the API:

Terminal
curl -X PUT "https://api.pozy.ai/v1/connect/welcome-screen" \
  -H "Authorization: Bearer $POZY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "showByDefault": true,
    "brandName": "Acme",
    "logoUrl": "https://acme.com/logo.png",
    "theme": {
      "primaryColor": "#4F46E5",
      "heading": "Connect {platform} to {brand}",
      "trustLine": "{brand} only gets the access you approve. Disconnect any time.",
      "cornerRadius": 12,
      "font": "sans",
      "termsUrl": "https://acme.com/terms",
      "privacyUrl": "https://acme.com/privacy"
    }
  }'

showByDefault is required. GET /v1/connect/welcome-screen returns what is saved. Changing the saved screen needs a workspace owner or admin, or a full-scope API key. Profile-scoped keys cannot change it.

#How the options combine

You send Result
Nothing, nothing saved No welcome screen. authUrl goes straight to the platform.
Nothing, saved with showByDefault: true The saved screen.
welcome=true The screen, with your parameters over the saved branding (theme merged key by key).
welcome=false No screen for this link, even if one is saved.
handoff=true Always the screen: it is the first thing the phone shows. See Phone handoff.
headless=true No screen, unless handoff=true. welcome=true with headless=true is rejected.

Branding parameters (brandName, logoUrl, primaryColor, welcomeTheme) only apply when the screen is shown. Sending them on a link without the screen returns 400 invalid_field_value with param: welcome, so you notice instead of wondering why your logo is missing.

#Branding parameters

Parameter Limit
brandName 1 to 60 characters.
logoUrl An http(s) URL, up to 2,048 characters.
primaryColor #RRGGBB. URL-encode the # as %23 in a query string.
welcomeTheme A JSON object with any of the theme keys below, up to 4,000 characters once encoded.

#Theme keys

The same keys work in welcomeTheme on a link and in theme on the saved screen.

Key Type Notes
heading text, up to 120 Default: "{brand} wants to connect to your {platform}".
trustLine text, up to 200 The reassurance line under the heading.
consentLine text, up to 200 What happens next on the platform.
statusLine text, up to 200 Shown while forwarding. Default: "Taking you to {platform}".
buttonLabel text, up to 30 The fallback button if the forward stalls. Default: "Continue to {platform}".
successHeading, errorHeading text, up to 120 Closing screen titles.
successBody, errorBody text, up to 200 Closing screen text.
primaryColor, accentColor, pageColor, cardColor, textColor #RRGGBB Button, icons, page background, card background and text.
cornerRadius integer, 0 to 24 Card and button radius in pixels.
font sans, serif or mono
bannerStyle halftone, solid or plain The band at the top of the card.
trustLineIcon, consentLineIcon shield, lock, link, check, user, sparkles or none
hide list Any of heading, trustLine, consentLine, statusLine, successBody, errorBody.
termsUrl, privacyUrl https:// URL Linked in the footer.

{brand} and {platform} in any text are replaced with your brand name and the platform's name. Unknown keys are rejected, so a typo fails loudly.

Keep it short

The screen is on view for about a second before it forwards. Put the reassurance in trustLine and keep heading to one line.

#Endpoints

Endpoint What it does
GET /v1/connect/welcome-screen Get the saved welcome screen
PUT /v1/connect/welcome-screen Save the welcome screen
GET /v1/connect/{platform} Get OAuth connect URL