Submit Form
Reward customers for custom actions outside your system by letting them submit proof (text, link, images or a video) for your review.
This feature is available for Advanced and above plans
Overview
Submit Form is an earning program for actions that can't be tracked automatically — like sharing on social media, posting UGC content, or leaving feedback on external platforms. Customers complete the task, submit proof via a customizable form, and receive rewards after admin approval.
Use case: Merchants wanting to reward social shares, TikTok posts with hashtags, Google reviews, UGC content, or any custom action.
How to set up
Step 1: Create the program
Go to Reward programs → Earning programs → Add new
Select Submit form
You can create multiple Submit Form programs for different actions
Step 2: Configure Rule tab
- Program name and Description
- Start/End date (optional)
- Reward value: Points earned after approval
- Instant reward: (optional) Give small points immediately on submit, before review
- Differ by VIP tier: (optional) Set different rewards per tier
- Fraud prevention: Limit submissions per timeframe (e.g., 3 per day)
- Submission requirements: see below
Submission requirements
This section of the Rule tab decides what customers can attach as proof.
- Allow file upload: turn it off for a text-only form. The upload field disappears everywhere customers submit.
- Accepted format: Image only, Video only or Both. Video needs a paid plan; on the free plan the two video options are disabled.
- Require upload field: customers cannot submit without attaching a file in an accepted format.
The limits shown under the options are the ones Joy enforces:
| Formats | Limit | |
|---|---|---|
| Image | JPG, JPEG, PNG | 10MB per file, up to 5 per submission |
| Video | MP4, MOV, WEBM | 50MB, 1 per submission |
Video upload works only in the loyalty widget. On the loyalty page and in Loyalty Hub, a Both program accepts images only, and a Video only program hides the upload field and tells customers to submit from the widget.
Step 3: Configure Design tab
Customize the popup customers see when submitting.
Use-case template: pick Social share, Share review, Unboxing video or Purchase proof to fill every copy field below with text written for that action: headline, description, how-to-earn steps, input label and placeholder, upload field label, button and success message. The success message follows your approval settings, so an auto-approved program thanks the customer for points already added, while a reviewed program says the points arrive after approval.
Applying a template replaces the copy in every language of this program, not only the one you are editing. Copy you wrote before is lost once you save.
Form view:
- Header image
- Headline and description
- How-to-earn instructions: a label (default "How to earn") and a list of steps. Drag the handle to reorder, add a step with Add step, remove one with the X. Steps are numbered when there are two or more; with no steps, the section is hidden from customers.
- Input label and placeholder
- Upload field label (shown when Allow file upload is on)
- Submit button text
Success view:
- Success icon
- Success headline and message. Use the variable picker beside each field to insert customer-specific values:
| Variable | Shows |
|---|---|
{{customer_name}} | The customer's name |
{{shop_name}} | Your store name |
{{earning_points}} | Points this submission earns |
{{loyalty_point}} | Your points name |
{{points_balance}} | The customer's balance |
{{earning_program}} | The program name |
{{instant_reward}} | The instant reward, if one is set |
Use Preview success view to check the result before you save.
Step 4: Save and activate
Click Save. Make sure program status is Active.
Customer experience
Submitting a form
Customers can submit from:
- Widget → Way to earn → Submit form program
- Loyalty page → Block "Way to earn" → Submit form program
They follow the how-to-earn steps, enter text or a link, and attach proof in the format the program accepts (see Submission requirements).
After submission
- Customer sees success message
- If Instant reward enabled → points added immediately
- Submission status is Pending until staff reviews
- Once approved → full reward granted, logged in activity history
- If rejected → no reward. If instant reward was given, it will be refunded
Admin review process
View submissions
Go to Activities → Submitted forms to see all submissions.
Table columns:
- Submitted time
- Program name
- Customer name & email
- Submitted content (with copy button)
- Images (click to view/zoom)
- Video (click to play). Videos are kept for 60 days, after which the row shows the video as expired.
- Status (Pending / Approved / Rejected)
- Actions
Approve or Reject
- Approve: Customer receives reward points, activity is logged
- Reject: No reward. If instant reward was given, it will be refunded (deducted)
Notifications (Shopify Flow & Klaviyo - Coming soon)
FAQ
Can I create multiple Submit Form programs? Yes. You can create different programs for different actions (e.g., one for TikTok, one for Instagram).
What types of content can customers submit? Text input (links, descriptions) plus the attachments the program accepts: up to 5 images (JPG, PNG, JPEG, max 10MB each), one video (MP4, MOV, WEBM, max 50MB), or either. Video is uploaded from the loyalty widget only.
Can I run a text-only form? Yes. Turn off Allow file upload in the Rule tab.
How long can I watch a submitted video? 60 days from upload. Review video submissions within that window.
What is Instant Reward? A small amount of points given immediately when customer submits, before review. If rejected, instant points will be refunded.
Can I change approved to rejected later? Yes. The reward points will be refunded automatically.
What happens if customer exceeds submission limit? They will see an error and cannot submit until the limit resets.