This article is for Shopify merchants only.
How the Join block fits in the customer flow
ReferralCandy gives you two ways for customers to sign up as advocates:
Join Page — ReferralCandy's hosted signup page, accessible via a dedicated link (your campaign's "Promote your program" URL, for example
your-store.refr.cc/join/Customer). No setup required: ReferralCandy hosts the page; you just share the link. Best for email marketing, social posts, or anywhere you want a quick link-based entry point.Join Block — the same signup form embedded as a Shopify app block on any Online Store 2.0 page (typically a dedicated "Refer a friend" page on your storefront). Best when you want the signup to feel native to your store: customers stay on your domain and the block matches your theme's branding and layout.
When you can run an embedded form, we recommend the Join Block — it's more seamless than redirecting customers to a separate hosted page. Reach for the Join Page when you specifically want a link to drop into a campaign email or social post without setting up theme blocks.
Both also double as login entry points — already-enrolled advocates can come back to either surface to get back to their referral link without digging through old emails.
Whether anyone who submits the form actually becomes an enrolled advocate depends on your campaign's Target audience (segment criteria), not the Join Block itself — see the "Who can sign up through the Join Block?" FAQ below.
For how the Join Block compares to the other Shopify referral surfaces (Referral extension, Friend offer landing, Customer referral details extension) and which to use when, see Widgets for your referral program. For what advocates see after signing up through the Join Block — their Share Page, rewards dashboard, and sign-in options — see What advocates see after signing up.
Note: The Join Block was rebuilt in June 2026. There is now one Join Block that you add from the theme editor and link to a campaign directly inside the block's settings. The older four-slot system (Join blocks 1–4) is deprecated but keeps working — those blocks now appear as "Legacy Join Block 1–4" in your theme editor. If you set up your Join Block before June 2026 and it shows one of those Legacy names, see Legacy Join Blocks 1–4 at the end of this article.
Compatibility and requirements
Only Online Store 2.0 themes support app blocks like the Join Block. You can't add the Join Block on vintage themes (and some custom themes may not support it).
Your campaign must be Live for the Join Block to appear on your pages.
The Join Block works with both referral and affiliate campaigns — the campaign picker in the block's settings lists both types.
ReferralCandy needs Shopify's metaobjects permission to sync your campaign into the block — you grant it once from ReferralCandy > Campaign > Widgets > Join block (see Step 1).
Most common confusion: Join Block vs Join Page vs Join Page template
Three related things, edited in different places:
Join Block (the embedded signup form on your Shopify store)
A Shopify app block you add via your theme editor.
The form fields (name, email, etc.) are managed in ReferralCandy > Campaign > Widgets > Join block; the layout, text, and styling are edited in the Shopify theme editor by clicking the block.
Join Page (ReferralCandy's hosted signup page — the link)
A standalone page hosted by ReferralCandy at your campaign's Promote-your-program URL (for example,
your-store.refr.cc/join/Customer). No theme editing required to use it — just share the link.Its design and copy are edited via the Join Page template (see below).
Join Page template (the styling editor for the hosted Join Page)
Found in ReferralCandy > Campaign > Customize campaign > Themes — opens the campaign theme editor where you can edit the Join Page template (along with other campaign pages).
Editing the Join Page template changes how the hosted Join Page renders. It does not change the Join Block — those are independent.
Tip: If you're looking at a page on your Shopify storefront and you see a signup form embedded in the page layout, that's the Join Block. If you're looking at a page on *.referralcandy.com or *.refr.cc, that's the Join Page.
Step 1: Build your signup form (ReferralCandy > Campaign > Widgets)
To build the Join Block's signup form, open the Join block section of your campaign's Widgets page:
In Shopify admin, open the ReferralCandy app.
Go to Campaigns > select your campaign.
In the Promote campaign section, click Widgets.
Find the Join block section.
If prompted, click Grant permission — this lets Shopify sync your campaign data (rewards, offers, tiers) into the block via metaobjects. Without it, the campaign won't appear in the theme editor's campaign picker.
Use the Join Block form builder to set up the fields customers fill in, then click Save.
The form builder starts with two required fields — Full name and Email. For each field you can set the field type, a label, a placeholder, help text, and whether it's required; you can also reorder fields or remove them, and add new ones.
Available field types cover most signup needs: Text, Long text, Email, Phone number, Date, Checkboxes, Radio buttons, Select, Combo box, Country, PayPal email, Instagram, TikTok, YouTube, Facebook, X (Twitter), and Social media picker.
Step 2: Add the Join Block to a page (Shopify theme editor)
To add the Join Block to a page on your storefront:
In your Shopify admin, go to Online Store > Themes.
Find your active theme and click Customize.
Navigate to the page where you want the Join Block to appear.
Click Add section (or Add block), then go to the Apps tab.
Select Join Block (from Referral Candy).
Click Save.
Note: The same Apps list also shows Legacy Join Block 1–4 — those are the deprecated older blocks. For a new setup, pick the one simply named Join Block.
Step 3: Link a campaign in the block's settings
The Join Block is linked to a campaign directly inside the block's settings in the theme editor:
In the theme editor, click the Join Block you just added.
In the settings sidebar, under Campaign, click Select.
Choose your campaign — the picker lists your campaigns labeled by type, for example "Summer Referrals (Referral)" or "Creator Program (Affiliate)".
Click Save.
Until a campaign is selected, the block shows a "Choose a campaign" placeholder in the editor preview. Once linked, the preview renders your real campaign content — heading, offer, and the form fields you built in Step 1.
Don't see your campaign in the picker? Campaigns sync from the ReferralCandy app — open ReferralCandy > Campaign > Widgets > Join block and grant the Shopify permission (Step 1), then reopen the picker.
Step 4: Choose a layout and customize the block
The Join Block's layout, text, and styling are all edited in the block's settings sidebar in the Shopify theme editor. Pick one of four layouts under Layout:
Stacked / single column — a simple centered form that stays inside your theme's content width.
Card on canvas — the form in a card on a colored background band.
Hero / side by side — an image beside the form (upload a hero image, set its position, ratio, and minimum height). This is the default layout.
Inline strip — a compact horizontal band, good for embedding mid-page.
Width, padding, and background controls sit alongside the layout picker, so you can match the block to the surrounding page.
The Editor preview setting switches which state of the block you're previewing and editing — Pre-signup, Post-signup, Unenrolled, or Waitlist view. This only changes the preview in the theme editor; on your live storefront, each visitor automatically sees the state that matches their actual referral-program status. Each view has its own text settings:
Pre-signup view — heading, offer text, and button label shown with the signup form (each can be shown or hidden).
Post-signup view — the share heading, share subheading, copy-link button label, and up to five share buttons. Each share button slot can be set to Copy link, Email, Facebook, X (Twitter), WhatsApp, Messenger, Telegram, or Threads — ReferralCandy supplies each button's link and message.
Unenrolled view — the heading and message shown to contacts who were enrolled before but no longer qualify.
Waitlist view — the heading and message shown to signups who don't (yet) meet your campaign's Target audience.
Leave any text field blank to use ReferralCandy's default wording for it. To personalize your own wording, use tokens — placeholders that fill in live campaign values: {referrerReward}, {refereeReward}, {campaignName}, {shopName}, {programTermsUrl}, {tierName}, {nextReferralCount}, and {nextTierReward}; post-signup text also supports {firstName} and {inviteLink}. Liquid tags and conditionals are not supported in the Join Block — the tokens replace them.
If your campaign uses tiered rewards, the Tier rewards settings control the tier table's text: the table header, column headers, an optional reward prefix (for example "Get"), the no-reward and completed-tier labels, and an optional note below the table.
The Style settings control colors and sizes — background, text, button, and input colors, heading and body text sizes, and corner radii. By default these inherit from your Shopify theme, so the block matches your store without any styling work.
Click Save when you're done.
What customers see based on enrollment status
When customers visit the page where the Join Block is embedded, they see the signup form with the fields you built in Step 1. If you're using a tiered reward structure, the tier table appears with the form, letting customers know when and how they get rewarded.
What happens after someone submits the form depends on their status in your campaign:
Enrolled — customers who meet your campaign's Target audience see the share view: their personal referral link with the share buttons you configured. Already-enrolled advocates who come back to the page and submit their email land in this same share view — that's how the Join Block doubles as a login entry point.
Waitlisted — signups who don't meet the Target audience criteria see your Waitlist view message ("You're on the waitlist" by default). They become enrolled automatically if and when they later meet the criteria.
Unenrolled — contacts who were previously enrolled but stopped meeting your Target audience see your Unenrolled view message.
To change the wording customers see in any of these states, edit the matching view in the theme editor (Step 4) — switch the Editor preview to that view and update its text settings.
Styling notes and custom CSS
The Join Block inherits fonts and colors from your Shopify theme by default, and the Style settings (Step 4) cover most branding needs without code.
For advanced tweaks, the block's Custom CSS setting (under Advanced) accepts CSS declarations and CSS variables in a safe mode — nested rule blocks and at-rules are stripped. For full selectors, use your theme's own Custom CSS with the block's stable classes, such as .rc-jb__content, .rc-jb__title, and .rc-jb__button.
Note: ReferralCandy doesn't provide troubleshooting support for issues caused by custom code or custom themes.
Troubleshooting
The Join Block doesn't appear on my page
Confirm your theme supports app blocks (Online Store 2.0).
Confirm the campaign is Live.
Confirm a campaign is linked in the block's settings (theme editor > click the block > Campaign).
I can't find where to change the wording
Form fields (name, email, and any fields you added) are edited in ReferralCandy > Campaign > Widgets > Join block.
Everything else — headings, offer text, buttons, share text, tier table text — is edited in the Shopify theme editor by clicking the block. Remember to switch the Editor preview to the view (state) whose text you want to change.
Signing up through the block does nothing in the theme editor preview
That's expected — form submission is disabled inside the theme editor preview. Test signups on your published storefront instead.
I can't link a campaign to the Join Block
Grant the Shopify (metaobjects) permission in ReferralCandy > Campaign > Widgets > Join block — until it's granted, campaigns don't sync into the theme editor's picker.
Article FAQ
Can I place the Join Block on multiple pages?
Can I place the Join Block on multiple pages?
Yes. You can add the Join Block to multiple Shopify pages — each placed block has its own settings, so you select the campaign (and layout) per placement. That also means different pages can promote different campaigns, for example a referral campaign on one page and an affiliate campaign on another.
Can one Join Block show multiple campaigns?
Can one Join Block show multiple campaigns?
No. Each placed Join Block links to one campaign at a time. To promote several campaigns, add a separate Join Block for each — on the same page or on different pages.
Does editing the Join Page template change the Join Block?
Does editing the Join Page template change the Join Block?
No. The Join Page template (in ReferralCandy > Campaign > Customize campaign > Themes) controls how the hosted Join Page renders — that's the ReferralCandy-hosted page at *.referralcandy.com or *.refr.cc. It doesn't control the embedded Join Block on your Shopify store. The Join Block's form fields are edited in ReferralCandy > Campaign > Widgets, and its layout, text, and styling in the Shopify theme editor — the Join Block and the hosted Join Page have independent content.
Why can't I add or link the Join Block?
Why can't I add or link the Join Block?
There are two common reasons you may not be able to add or link the Join Block:
Theme compatibility
You can't add the Join Block if you're using a vintage theme or some custom themes — only Online Store 2.0 themes support app blocks.
Note: ReferralCandy doesn't provide troubleshooting support for issues related to custom code or custom themes.
Metaobjects permission (required for campaigns to appear in the block's picker)
Metaobjects let Shopify dynamically use data from your ReferralCandy campaign (for example, reward descriptions). Until you grant the permission, your campaigns won't sync into the theme editor.
To grant permission: from your Shopify admin, go to ReferralCandy > Campaigns, select your campaign, click Widgets in the Promote campaign section, find the Join block section, and click Grant permission.
Who can sign up through the Join Block?
Who can sign up through the Join Block?
The Join Block itself doesn't filter who can sign up — anyone who fills in the form is routed to your campaign's enrollment logic. Whether they actually become an enrolled advocate is controlled at the campaign level (not at the Join Block level) via your campaign's Target audience (segment criteria).
For example, you can set Target audience to "lifetime purchase value greater than $0" to make the campaign customer-only — non-customers who submit the Join Block form would be waitlisted, not enrolled. They'll only become enrolled if and when they meet your Target audience criteria.
Cash vs discount reward — common patterns:
Cash-reward campaigns are often configured customer-only (or restricted to a more verified segment), since the merchant is paying out real money — Target audience usually filters on past purchase value.
Discount-reward campaigns are typically more open — Target audience may allow non-customer signups, since the friend offer plus the merchant's storefront does the qualifying.
You configure Target audience in your campaign settings; this same logic applies to all widgets, not just the Join Block.
What happened to Join blocks 1–4?
What happened to Join blocks 1–4?
Join blocks 1–4 are the older, four-slot Join Block system, replaced by the current single Join Block in June 2026. They're deprecated but keep working — in your theme editor they now appear as "Legacy Join Block 1–4", and they're still managed from ReferralCandy > Campaign > Widgets under "Legacy join block (deprecated)". See the Legacy Join Blocks section of this article for how they're linked and edited. For new placements, use the current Join Block.
Legacy Join Blocks 1–4 (deprecated)
Before June 2026, the Join Block worked as a four-slot system: up to four Join blocks across all campaigns in your ReferralCandy account, each linked to one campaign from the ReferralCandy dashboard. These legacy blocks are deprecated but continue to work — no removal date has been announced. In the Shopify theme editor's Apps list they now appear as Legacy Join Block 1–4. For new placements we recommend the current Join Block (above), which adds layouts, per-state text editing, and in-block campaign selection.
If your store still uses a legacy block, here's where its settings live:
Linking a campaign — go to ReferralCandy > Campaigns > (select campaign) > Widgets, find the Legacy join block (deprecated) section, and use the "Join block linked to this campaign" dropdown. One campaign can be linked to one legacy join block; once linked, that block can be placed on multiple Shopify pages (all pointing to the same campaign).
Editing the text — in the same Legacy join block section, click Edit text. This is where all legacy Join block wording lives: the signup form text (header, offer, field labels, button), the post-submission messages (enrolled, unenrolled, waitlisted), the paused-campaign messages, and the tier table text. If you support multiple languages, use the Language dropdown there to edit each language's version.
Layout and visibility — in the Shopify theme editor, clicking a legacy block offers form alignment (left/center/right) and show/hide toggles for the header and offer. These control layout only — the wording is edited in ReferralCandy as above.
Paused or stopped campaigns — if you pause the linked campaign, the legacy block shows your paused-campaign messaging (edited via Edit text). If the campaign is stopped, customers won't see the block at all.
Legacy Join Block CSS classnames (developer)
Legacy Join Block CSS classnames (developer)
If you're styling a legacy Join Block with CSS, these are the classnames you can target. (The current Join Block uses different classes — see Styling notes above.)
Containers
.rc-join-block-container— container that holds the join block.rc-join-form— container for the form inputs and buttons.rc-button-container— container for the join button
Signup section
.rc-button— the button on the join block.rc-field— container that holds the label + text input field.rc-label— the label (for example: "First name") for each text input field.rc-input— the text input field.rc-custom-join-header— header text in the signup section.rc-custom-join-header-2(optional) — allows two different styles applied to two parts of the same header.rc-custom-join-offer— offer text in the signup section
Share section
.rc-custom-share-header— header text in the share section.rc-custom-share-description— description text in the share section.rc-share-icon— share icons in the join block (for example: icon size)
Note: ReferralCandy doesn't provide troubleshooting support for issues related to custom code or themes.



