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.
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.
- In the Greet admin, click "Open Theme Editor → App Embeds" in the banner
- In the Theme Editor that opens, find "Greet — Customer Onboarding"
- Toggle it on and click Save
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:
- Click Add Step to create your first screen
- Inside the step, click Add question and choose a question type
- Click Turn flow on in the banner
- 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.
| Action | How |
|---|---|
| Add a step | Click Add step (top-right of Questions page) |
| Rename a step | Click the pencil ✏ next to the step title |
| Reorder steps | Use ↑ ↓ arrows on each step card |
| Delete a step | Click Delete — removes all questions inside |
| Move a question | Drag the ⠿ handle and drop onto a different step |
Question Types
| Type | Best for | Saves as |
|---|---|---|
| Short Text | Name, city, job title | single_line_text_field |
| Long Text | Open feedback | multi_line_text_field |
| Single Choice | Skin type, preference | single_line_text_field |
| Multiple Choice | Interests, goals | list.single_line_text_field |
| Dropdown | Country, age range | single_line_text_field |
| Number | Age, budget | number_integer |
| Date | Birthday, anniversary | date |
| Star Rating | NPS, satisfaction | number_integer |
| Yes / No | Has pets, trade customer | boolean |
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
- Click Edit on the question you want to conditionally show
- Open "Conditional logic — show this question only if…"
- Click Add condition
- Choose: [source question] [operator] [value]
Available operators
| Operator | Meaning |
|---|---|
| equals | Answer exactly matches the value |
| does not equal | Answer is anything except the value |
| contains | Answer includes the text (case-insensitive) |
| does not contain | Answer does not include the text |
| is filled | Customer has entered any answer |
| is empty | Customer 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
| Template | Style | Best for |
|---|---|---|
| Executive Dark | Charcoal + gold, serif | Luxury, premium, high-end |
| Friendly Bloom | Coral + peach, rounded | Beauty, lifestyle, DTC |
| Editorial Minimal | Cream + ink, sharp corners | Fashion, editorial, creative |
| Aurora Glass | Dark frosted, violet/cyan | Tech, gaming, modern SaaS |
| Retro Terminal | Green-on-black, monospace | Streetwear, niche, collectors |
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.
- In Questions, find the "Editing language" dropdown
- Select a language (Arabic, French, German, etc.)
- The page switches to translation mode — enter translations for every step, question, and option
- 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
{{ 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)
| Metafield | Value |
|---|---|
| tafseel_onboarding.completed | true |
| tafseel_onboarding.status | "completed" |
| tafseel_onboarding.completed_at | ISO 8601 datetime |
| tafseel_onboarding.flow_id | The flow ID |
Shopify Flow
Create a Flow trigger on Customer updated, then check:
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 sessions — Number of times the popup was opened
- Completed — Customers who finished all steps
- Skipped — Customers who closed without finishing
- Completion rate — Completed ÷ Total × 100
- Step drop-off funnel — How far customers get before abandoning
- Top answers — Most common answers per question (last 500 submissions)
Integrations & Webhooks
Setup
- In Questions, scroll to Integrations and toggle it open
- Enter your Webhook URL
- Click Save
Payload reference
{
"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" }
]
}AI & Bulk Import
✨ AI Flow Generator
Click "✨ Generate with AI" in the Questions page header.
- Select your store type (Fashion, Beauty, B2B, etc.)
- Describe what you want to learn from customers
- Choose 1–4 steps
- Click Generate, preview the result, then Apply
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:
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.