OYLABS
Back to Greet
Documentation

Greet — Knowledge Base

Everything you need to set up, customise, and get the most from Greet.

Getting Started

What is Greet?

Greet is a Shopify app that shows a beautiful, multi-step onboarding popup to logged-in customers. When customers fill it in, their answers are saved directly as Shopify customer metafields — giving you a rich profile of every customer, ready to use in Liquid, Shopify Flow, email marketing, and more.

Greet only shows to logged-in customers who haven't completed the flow. Once completed, the popup never shows again.

Installation

Install Greet from the Shopify App Store. Approve the requested permissions:

  • read_customers, write_customers — save answers to customer profiles
  • read_metaobjects, write_metaobjects — store your flow configuration
  • read_themes — check whether the App Embed is active

Enable the App Embed

Greet is delivered as a Theme App Extension (App Embed). You enable it once in the Theme Editor — no Liquid, no code, no developer.

  1. In the Greet admin, click "Open Theme Editor → App Embeds" in the banner
  2. In the Theme Editor that opens, find "Greet — Customer Onboarding"
  3. Toggle it on and click Save
The banner in the Greet admin detects whether the App Embed is enabled by reading your theme's config/settings_data.json. If you just toggled it on, reload the Greet admin to see the updated status.

Quick Start

After enabling the App Embed:

  1. Click Add Step to create your first screen
  2. Inside the step, click Add question and choose a question type
  3. Click Turn flow on in the banner
  4. Log in as a test customer in your storefront — the popup appears!

Flow Builder

Steps

A step is one screen in the popup. Use multiple steps to group related questions.

ActionHow
Add a stepClick Add step (top-right of Questions page)
Rename a stepClick the pencil ✏ next to the step title
Reorder stepsUse ↑ ↓ arrows on each step card
Delete a stepClick Delete — removes all questions inside
Move a questionDrag the ⠿ handle and drop onto a different step

Question Types

TypeBest forSaves as
Short TextName, city, job titlesingle_line_text_field
Long TextOpen feedbackmulti_line_text_field
Single ChoiceSkin type, preferencesingle_line_text_field
Multiple ChoiceInterests, goalslist.single_line_text_field
DropdownCountry, age rangesingle_line_text_field
NumberAge, budgetnumber_integer
DateBirthday, anniversarydate
Star RatingNPS, satisfactionnumber_integer
Yes / NoHas pets, trade customerboolean

Required & Visible

Each question has two toggles right on the question row:

  • Required — customer must answer before continuing
  • Visible — when unchecked, question is hidden from customers (draft mode) without being deleted

Conditional Logic

Show or hide a question based on a previous answer. Conditions are evaluated in real time — questions appear and disappear as the customer answers.

How to add a condition

  1. Click Edit on the question you want to conditionally show
  2. Open "Conditional logic — show this question only if…"
  3. Click Add condition
  4. Choose: [source question] [operator] [value]

Available operators

OperatorMeaning
equalsAnswer exactly matches the value
does not equalAnswer is anything except the value
containsAnswer includes the text (case-insensitive)
does not containAnswer does not include the text
is filledCustomer has entered any answer
is emptyCustomer hasn't answered yet

AND / OR logic

When you have multiple conditions, choose AND (all must be true) or OR (any must be true) using the logic selector.

Design Studio

Open the Design tab to customise how the popup looks.

Templates

TemplateStyleBest for
Executive DarkCharcoal + gold, serifLuxury, premium, high-end
Friendly BloomCoral + peach, roundedBeauty, lifestyle, DTC
Editorial MinimalCream + ink, sharp cornersFashion, editorial, creative
Aurora GlassDark frosted, violet/cyanTech, gaming, modern SaaS
Retro TerminalGreen-on-black, monospaceStreetwear, niche, collectors
Selecting a template sets all colours, fonts, corners, and button styles at once. You can then fine-tune any individual setting below it.

Layout vs. Template

A template sets everything at once (colours + fonts + layout). A layout only changes the popup's shape (centered card, fullscreen, bubble, etc.) — it does not change your colours or fonts.

Translations

Greet supports all languages enabled in your Shopify store.

  1. In Questions, find the "Editing language" dropdown
  2. Select a language (Arabic, French, German, etc.)
  3. The page switches to translation mode — enter translations for every step, question, and option
  4. Click Save next to each item

On the storefront, Greet reads the customer's browser locale and serves the matching translation. Falls back to the default language if no translation exists.

Customer Data

Metafield mapping

Every question can be mapped to a Shopify customer metafield. Click Edit on any question → Customer metafield mapping to set the namespace and key.

Using in Liquid

liquid
{{ customer.metafields.customer_profile.skin_type.value }}
{{ customer.metafields.customer_profile.birthday.value }}

{%- assign done = customer.metafields.tafseel_onboarding.completed.value -%}
{% unless done %}
  {# Show upsell banner to customers who haven't completed onboarding #}
{% endunless %}

Completion metafields (auto-set)

MetafieldValue
tafseel_onboarding.completedtrue
tafseel_onboarding.status"completed"
tafseel_onboarding.completed_atISO 8601 datetime
tafseel_onboarding.flow_idThe flow ID

Shopify Flow

Create a Flow trigger on Customer updated, then check:

flow condition
customer.metafields.customer_profile.skin_type = "Dry"
customer.metafields.tafseel_onboarding.completed = "true"

Actions: Send email / Apply tag / Apply discount / Create support ticket — anything Flow supports.

Analytics

Open the Analytics tab to view submission data.

  • Total sessionsNumber of times the popup was opened
  • CompletedCustomers who finished all steps
  • SkippedCustomers who closed without finishing
  • Completion rateCompleted ÷ Total × 100
  • Step drop-off funnelHow far customers get before abandoning
  • Top answersMost common answers per question (last 500 submissions)

Integrations & Webhooks

Setup

  1. In Questions, scroll to Integrations and toggle it open
  2. Enter your Webhook URL
  3. Click Save

Payload reference

json
{
  "event": "onboarding.completed",
  "shop": "your-store.myshopify.com",
  "customerId": "1234567890",
  "customerEmail": "jane@example.com",
  "customerName": "Jane Doe",
  "flowId": "abc123",
  "stepReached": 3,
  "totalSteps": 3,
  "skipped": false,
  "submittedAt": "2026-06-02T10:30:00.000Z",
  "answers": [
    { "namespace": "customer_profile", "key": "skin_type", "value": "Dry" },
    { "namespace": "customer_profile", "key": "birthday", "value": "1990-05-15" }
  ]
}
Use webhook.site to test and inspect the live payload before connecting a real integration.

AI & Bulk Import

✨ AI Flow Generator

Click "✨ Generate with AI" in the Questions page header.

  1. Select your store type (Fashion, Beauty, B2B, etc.)
  2. Describe what you want to learn from customers
  3. Choose 1–4 steps
  4. Click Generate, preview the result, then Apply
Requires ANTHROPIC_API_KEY to be configured. Contact OY Labs to enable this feature.

CSV Import

Click "⬆ Import" → CSV tab. Paste from Excel or Google Sheets:

csv
Step Title,Question Label,Type,Options (;-separated),Metafield Key,Required
Welcome,What is your skin type?,SINGLE_CHOICE,Oily;Dry;Combination,skin_type,true
Welcome,Do you have any allergies?,TEXT,,allergies,false
Preferences,How did you hear about us?,SINGLE_CHOICE,Instagram;Friend;Google,referral_source,false

The first header row is ignored automatically. Supported types: TEXT SINGLE_CHOICE MULTIPLE_CHOICE YES_NO DATE NUMBER RATING

Frequently Asked Questions

Will the popup show on every page?

No. The popup only shows to logged-in customers who haven't completed the flow. Once completed, it never appears again.

Does it work with New Customer Accounts (passwordless)?

Yes. Greet is compatible with both Legacy and New Customer Accounts.

Is customer data stored outside Shopify?

No. All answers are saved as Shopify customer metafields inside your account. Flow configuration is stored as Shopify metaobjects. Submission analytics are stored in a Cloudflare D1 database tied to the app — no third-party sharing.

How many questions can I have?

No hard limit. Shopify allows up to 200 customer metafield definitions per store (shared across all apps). A typical Greet flow of 5–15 questions leaves plenty of headroom.

Can I have multiple flows?

The current version supports one active flow per store. Multiple flows (for different customer segments) is on the roadmap.

The popup is not showing — what do I check?

Check: (1) App Embed is toggled ON in Theme Editor → App Embeds, (2) Flow is turned ON in the Greet admin banner, (3) You are logged in as a customer who hasn't completed the flow, (4) The flow has at least one step with at least one question.

Still need help?

Our team at OY Labs is happy to help you get set up.