Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Learn how to set start and end times for your campaign.
After creating a campaign in Function Junction, you can choose when it becomes active on your store.
Scheduling lets you control the start and end time of a campaign so it runs only when you want it to, whether that’s for a limited promotion, a seasonal offer, or an ongoing experience.
Steps:
From the campaign dashboard, under Schedule, click Schedule start and end time.
In the Start date, use the calendar picker to select the date to start the campaign.
In the Start time, use the drop-down to select a time,
Optional: You can let the campaign run indefinitely or click Add end date and select the date and time to end it.
Click Save.
Function Junction application overview
Use this doc to orient yourself with the Function Junction app, its structure, and basic functionality.
On the Function Junction dashboard or home screen, you can explore the Quick start templates. The templates provide a starting point for popular functions.
You can also find an overview of the functions currently live on your store under the Functions library section, and where you can toggle them on or off.
The functions tab contains a list of all of the functions that you've created. Here, you can toggle your functions off and on, and edit them or delete them. You can also manually create a new function.
In the Templates tab, you can see a list of all the templates available in Function Junction and a description of what they are used for. You can choose to use one or to create a new type of function.
The Billing tab shows you the plan you're currently on (if any), as well as any plan options available. Currently, Function Junction only has one Plus plan.
The support tab in Function Juction links you to our Help Center and our support email address: [email protected] .
It's also helpful to familiarize yourself with the Shopify Admin's built-in Discounts section. Discount functions built with Function Junction appear here in the list with any other discounts you create.
You can refer to the Type column to identify if the discount was created through Function Junction or elsewhere.
Tip:
Use unique names when creating campaign names. These names are also used as handles and must be unique.
With Function Junction, you can use our easy-to-use starter templates or build complex functions from scratch using the Create a function option. Use the Create a function button to choose from the type of discount to build.
If you need a different type of function, send us a message using the Request customization link.
Check our FAQ section to learn more about Function Junction:
Manage and build Shopify Functions with Function Junction.
Function Junction extends your store’s functionality by letting you create and manage custom backend logic using Shopify Functions. You can build dynamic discounts, shipping rules, bundles, and more, all through a simple visual interface.
Use Function Junction to:
Create custom discounts: Build product, order, shipping, or bundle discounts, including tag-based promotions.
Customize checkout behavior: Configure payment options, delivery methods, and cart validations.
Start quickly: Use ready-made templates or build functions from scratch.
Migrate existing scripts: Move from Shopify Scripts before they’re deprecated in 2026.
Manage campaigns: Schedule functions, toggle them on or off, and edit triggers, actions, and details.
Adjust as you grow: Update or expand functions as your store’s needs change.
Ensure performance and security: All functions run on Shopify’s backend for reliability and data privacy.
Function Junction is available to all Shopify plans and helps you add advanced capabilities to your store while keeping your data private.
Shopify Plus:
Shopify Plus merchants can contact support for help migrating existing scripts to Shopify Functions before script tags are deprecated in 2026.
The Function Junction builder uses simple dropdown-based logic, similar to IF/THEN statements with AND/OR conditions. This lets you create and manage functions without writing code.
You can also test, debug, and monitor functions directly in the app.
Shopify Functions let you customize your store’s backend behavior to control things like discounts, shipping, and checkout logic. Function types include:
Functions run securely within Shopify’s infrastructure to ensure high performance and low latency.
Submit feedback on our Help Center.

If there is a function that you want to create, but it's not currently available, then you can contact our support team and send us details of your suggestion.
You can email [email protected] or you can contact us via the Shopify admin:
Steps:
From the Function Junction app dashboard, on the left-hand menu, click Support.
Click Contact support.
Receive a 15% order discount when you spend $200 or more.
Save 10% off a product when you buy two or more.
Buy five items or more and save 10% on the entire order.
Buy one and get one free.
Give 20% off to wholesale customers or members
20% off with a discount code.
Free shipping for customers tagged "VIP".
Create tiered discounts for products with a certain tag.
Flash sale on items without having to modify the price on each product.
Buy two promotional items and save 15%.
Buy two items from a collection and save 10%.
Buy an item from Collection A and another from Collection B to save 15%.
Save 25% when you buy a product and also subscribe for refills.
Offer free shipping for VIP customers
Rename shipping method names for international customers
Only offer specific specific delivery methods for certain cart values
Here are some examples of Functions you can create
20% off with code summer
Give 20% off to wholesale customers or members
Free shipping for customers tagged "VIP"
Create tiered discounts for products with a certain tag
Run a promotional bundle sale for the summer
Enable Cash on Delivery for customers with a certain tag
Rename payment option names based on cart weight
Disable PayPal if cart value is higher than $100
Offer free shipping for VIP customers
Rename shipping method names for international customers
Only offer specific specific delivery methods for certain cart values
Shopify Scripts is being retired on June 30, 2026.
If you're a Shopify Plus merchant using Shopify Scripts to customize discounts, shipping, or payment logic, you'll need to migrate to Function Junction to maintain functionality.
Function Junction (also known as Shopify Functions) offers a more flexible and scalable way to customize your store’s checkout experience.
Function Junction is based on the Functions API and makes it easy to migrate from Shopify Scripts. Instead of manually pasting Ruby scripts, you can install functions as part of an app. The app uses Shopify’s WebAssembly platform, which means: ✔ Faster performance (under 5ms execution time) ✔ No timeout or CPU memory issues ✔ Scalability for big sales events
The deadline to migrate away from Scripts is June 30, 2026. After this date, Shopify Scripts will be retired. To avoid interruption, you need to migrate to Function Junction before then to avoid disruptions.
Shopify provides a Scripts Customizations Report that shows all your active scripts. To access it, do the following:
From your Shopify Admin, go to Settings > Apps and sales channels.
Click Script Editor.
In the banner, select Replace Shopify Scripts.
Review your report for customizations in:
You can also export this report as a CSV.
Once you have your list of scripts, you have two migration options:
1. Use prebuilt Function Junction templates
Function Junction has over 20 pre-built templates to help make the migration process easier.
Install the app and configure it. There is no coding required!
2. Build your own custom Function Junction solution
If no app meets your needs, developers can create custom functions.
Unlike Scripts, Functions must be deployed via the Shopify Partner Dashboard.
Use this quick comparison table to understand what’s changing and how to plan your transition.
Until June 30, 2026, you can run Shopify Scripts and Function Junction together.
However, they interact in specific ways:
Line Item Scripts run before Function Junction, meaning they don’t see discounts applied by Functions.
Shipping Scripts run after Function Junction, but can only move or hide shipping options—not rename them.
Payment Scripts run after Function Junction, and can’t modify renamed payment methods.
Ready to migrate? Do the following:
Check your Shopify Scripts Customizations Report to see what needs to be replaced.
Decide if you’ll use a Function Junction app or build a custom Function.
Test your Function Junction setup before deactivating old scripts.
Disable Shopify Scripts once everything is running smoothly.
Learn how to set up the tiered discount function.
Tiered discounts let you offer increasing discounts as customers meet higher spending or quantity thresholds.
For example, you can offer 10% off when customers spend $50 and 20% off when they spend $100. Or you can offer 5% off when they buy 2 items and 15% off when they buy 4. Tiered discounts can encourage higher cart values, product bundling, or bulk purchases.
Learn about creating discount functions and the different types.
Discounts are a popular tool to reward customers, build loyalty, and promote sales and your business.
Function Junction gives you the ability to create different types of discounts based on the promotion that you want to create.
Any discount function that you create in Function Junction displays in your Shopify admin's Discounts section.
Learn about the bundle fixed price function.
With a fixed-price bundle, you can group specific products together and sell them as a single unit at a set price, regardless of the individual item prices.
For example, you can offer a gift set for $50 that includes multiple products, a starter kit at a reduced bundle rate, or a seasonal box with pre-selected items. Fixed-price bundles are useful for simplifying the buying experience and promoting curated product collections.
Below is an example of a tiered discount. This discount tier structure is based on the Cart subtotal.
The Discount type is a Percentage total discount.
$50
10% off
$100
20% off
$200
30% off
In this example, if a customer has a cart subtotal of $200 or more, they get 30% off their total order.
From the Function Junction dashboard, click Create a function.
Under Create campaign, click Start from scratch.
Beside Tiered Discount, click Continue.
Under Function name, give your discount a unique name so you can identify it later, then click Next.
Optional: Under Eligibility, select Specific condition to set criteria based on: customer total spend, customer tags, customer orders count, cart subtotal, cart items quantity, cart has items, and cart has no items. You can add additional conditions by clicking Add a condition.
Click Next.
Under Create tiers based on, select one of the drop-down menu options: cart subtotal, cart items quantity, discountable items subtotal, or discountable items total quantity. Depending on which option you choose, the tiers below are auto-populated with an example of the tiers you could use.
Under Discount type, select one of the drop-down menu options: Percentage discount per item, percentage total discount, fixed total discount, or fixed discount per item. Depending on which option you choose, you have different options below.
Enter the rest of the information, like tier level and discount value.
Optional: Under Filter, add a filter. You can choose to set the discount for only specific products. This can be based on: product/variant, product tag, collection, vendor, type, or on sale. Each filter condition you can choose has specific rules that you need to set up.
Click Next.
Under Discount type, select if you want the discount to be Automatic or With Discount Code.
Automatic: Under Discount message, if you select Yes, then enter the discount message in the field provided below.
With Discount Code: Enter the discount code that you want customers to enter at checkout.
Under Combinations, if you want this discount to be combined with other discounts, then click Yes, and check which types of discounts that you want it to be combinable with.
When you're done, click Publish.
When your discount is published, if you want to advertise it, then you can publish a widget to your store.
From the Function Junction dashboard, click Create a function.
Under Create campaign, click Start from scratch.
Beside Bundle Fixed Price, click Continue.
Under Function name, give your discount a unique name so you can identify it later, then click Next.
Optional: Under Eligibility, select Specific condition to set criteria based on: customer total spend, customer tags, customer orders count, cart subtotal, cart items quantity, cart has items, and cart has no items. You can add additional conditions by clicking Add a condition.
Click Next.
Under Final price of the bundle, enter the price customers will pay for the bundle.
Click Next.
Specify the items in the bundle:
From the drop-down menu, set the items to be included in the bundle. This can be based on: product/variant, product tag, collection, vendor, type, or on sale.
Beside selected items quantity, use a measurement condition like is greater than to set the item quantity required to get the discount, and fill in the number in the text field.
Optional: If you want to add more products with different quantity requirements, then click Add an item and repeat steps 1a and 1b.
Click Next.
Automatic: Under Discount message, if you select Yes, then enter the discount message in the field provided below.
With Discount Code: Enter the discount code that you want customers to enter at checkout.
Under Combinations, if you want this discount to be combined with other discounts, then click Yes, and check which types of discounts that you want it to be combinable with.
When you're done, click Publish.
When your discount is published, if you want to advertise it, then you can publish a widget to your store.
In this example, Quinn has a honey shop, and all of her honeys are $15 each. She wants to create a discount so that if her VIP customers select 3 honeys, they aren't paying the full price of $45, but instead get a fixed price of $30. She wants her discount to apply to the cart automatically when conditions are met.
Function name: In this case, Quinn would give her bundle discount a name like Bundle of 3 honeys $30 so that she can identify it later.
Eligibility: She wants this to be eligible only to her VIP customers, so she sets the eligibility to Specific condition: if customer tags is any and then selects the VIP customer tag.
Final price of the bundle: In step 2, Quinn would set the final price of the bundle to: $30 .
Specify the items in the bundle: In step 3, Quinn would set the condition to product/variant is any and then select her honey products. She would also set the selected item quantity is equal to 3 .
Discount method: In step 4, Quinn would set the Discount type to Automatic. She is going to send out an email to her VIP customers, so she doesn't need to advertise the discount on her store. She sets the discount message to No.
Product Discounts
Shipping Rules
Payment Gateways
Deployment
Copy-paste scripts
Installed via apps
Execution Time
Slower, Ruby-based
Faster, WebAssembly-based
Customization
Manual Ruby scripts
Apps & APIs
Performance
Can have timeouts
Runs in <5ms
Scalability
Limited for flash sales
Supports large-scale sales
Before you begin, it's helpful to understand some information about discounts, like the discount's application method, the way it functions (ie function type), and the value type.
There are two application methods for discounts in Shopify:
Discount code: A code that customers can apply at checkout to get a specific discount. For example, a 5% off discount code could be 5%off .
Automatic discount: Automatic discounts are applied to a customer's cart automatically, based on certain criteria that you set in the discount creation process. For example, you could create an automatic $20 off discount that would be applied to a customer's cart if the cart subtotal is over $100.
Discount functions help you automate discounts based on certain criteria that you set.
There are several discount functions that you can set up:
Conditional discounts: You set conditions that the customer's cart or order must meet to be eligible for the discount.
Shipping discounts: Apply to the order's shipping specifically.
Tiered discounts: You can set up a structure for how different levels of discount are applied to the customer's cart automatically.
Bundle discounts: Allows you to group products together and sell them as a single unit.
Within the discount functions, there are also different ways for customers to get the discount, such as:
Percentage discount item: A percentage of the item's price is discounted, for example, 5% off each item.
Percentage total discount: A percentage of the cart's total amount is discounted.
Fixed total discount: A specific monetary value is discounted from the total price, for example, $20 off the total.
Fixed discount per item: A specific monetary value is discounted from each item's price, for example, $5 off per item.
There are also several conditions related to the discount function type that can be required to get the discount, such as having a specific cart total, specific products, or a certain number of products in the cart. Learn more about each condition that can be set on each respective discount function's page.
For automatic discounts, the maximum number of active or published discounts is five.
For discount code discounts, they aren't limited to the five discount maximum by Shopify, as these are manual codes that a customer can enter at checkout rather than an automatic rule-based discount.
Function Junction's discount functions that are not published are marked as Expired in the Shopify admin's Discounts section. These are functions that you've created, but toggled off for later use.
Learn about the quick start template for giving free shipping based on VIP customer tag.
You can use a template to create a free shipping discount for customers with a VIP customer tag.
In this example function, the logged-in customer with a VIP tag receives a free shipping discount even for small orders.
The VIP customer gets a free shipping message at checkout.
For the trigger, there is one condition. If the customer has been tagged as VIP, then the free shipping discount is applied at checkout.
From the Function Junction dashboard, under Quick start templates, click VIP Free Shipping.
Under Function name, give your discount a unique name so you can identify it later.
In this example, the customer needs to be logged into their account and have a VIP tag in order to qualify for the free shipping discount.
Set up the condition that customers need to meet to get the discount. In this example, the function needs one condition:
If customer tags is any VIP
Click Next.
Set up the action (the discount) that is taken when the conditions you set are met. In this example, the customer is rewarded with free shipping if they are tagged with VIP:
then percentage total discount is 100
Under Discount type, select if you want the discount to be Automatic or With Discount Code. In this example, the discount applies automatically.
Automatic: Under Discount message, if you select Yes, then enter the discount message in the field provided below.
With Discount Code: Enter the discount code that you want customers to enter at checkout.
When your discount is published, if you want to advertise it, then you can .
Learn how to set up the bundle discount function.
Bundle discounts let you offer a discount when customers purchase a specific combination or quantity of products together.
For example, you can create offers like 10% off when customers purchase a full skincare set, or $15 off when buying a jacket and matching pants. Bundle discounts are ideal for promoting product sets, increasing average order value, and encouraging customers to explore more of your catalog.
From the Function Junction dashboard, click Create a function.
Under Create campaign, click Start from scratch.
Beside Bundle Discount, click Continue.
Under Function name, give your discount a unique name so you can identify it later, then click
Set up the action (the discount) that is taken when the conditions you set are met.
The discount types you can choose from the drop-down menu are: Percentage discount per item or fixed discount per item.
Fill in the second text box with the number representing the discount amount you want to set up, then click Next.
Specify the items in the bundle:
From the drop-down menu, set the items to be included in the bundle. This can be based on: product/variant, product tag, collection, vendor, type, or on sale.
Beside selected items quantity, use a measurement condition like is greater than to set the item quantity required to get the discount, and fill in the number in the text field.
Automatic: Under Discount message, if you select Yes, then enter the discount message in the field provided below.
With Discount Code: Enter the discount code that you want customers to enter at checkout.
Under Combinations, if you want this discount to be combined with other discounts, then click Yes, and check which types of discounts that you want it to be combinable with.
When your discount is published, if you want to advertise it, then you can .
In this example, Reese has a ski shop and he wants to bundle a set of ski products together for a 5% discount off each item in the bundle.
He wants to offer discounts for people who want to buy a full set, so it applies when there's a combination of a helmet, ski poles, skis, and ski boots in the cart. His products are in collections for each category of product.
Function name: In this case, Reese would give his bundle discount a name like Full ski gear set discount so that he can identify it later.
Eligibility: He wants this to be eligible to any shoppers, so he leaves it set to All customers.
Discount type and amount: Since Reese wants to give 5% off per item, in step 2, he sets it to then percentage discount per item
Learn about the quick start template for discounting based on customer tag.
The Customer tag discount template applies an order discount for customers with a specific tag (or multiple tags) that you set.
In this example, customers who are logged into their customer account and who have a wholesale tag qualify for volume discounts on their order when their order has more than 4 items in the cart.
Wholesale customers get a discounted 15% off their entire order. The total discount appears in the subtotal area of the cart before checkout.
In this example, there are two triggers. The AND statement is required, meaning that both conditions must be met to trigger the discount.
For the trigger conditions, the customer needs to have the wholesale tag and add more than 4 items to the cart.
From the Function Junction dashboard, under Quick start templates, click Customer Tag Discount.
Under Function name, give your discount a unique name so you can identify it later.
In this example, there are two triggers. The AND statement is required meaning that both conditions must be met to trigger the discount. For the trigger conditions, the customer needs to have the "wholesale" tag and add more than 4 items to the cart.
Set up the conditions that customers need to meet to get the discount. In this example, the function needs two conditions, so click Add a condition and then enter the following conditions:
If customer tags is any wholesale
Set up the action (the discount) that is taken when the conditions you set are met.
For this example, the action should be: Percentage total discount.
Fill in the second text box with the number representing the discount amount you want to set up, then click Next. In this example, the discount here is 15%.
In this example, the customer is rewarded with 15% off all items in the cart.
Under Discount type, select if you want the discount to be Automatic or With Discount Code. In this example, the discount applies automatically.
Automatic: Under Discount message, if you select Yes, then enter the discount message in the field provided below.
With Discount Code: Enter the discount code that you want customers to enter at checkout.
When your discount is published, if you want to advertise it, then you can .
Learn about how to display your functions' promotional pricing on your products and collections.
You can use promotional pricing to automatically show Function Junction discounted prices and sale badges to eligible customers on your store.
After you've set up a discount campaign using Function Junction, enable promotional pricing in your theme settings to display the right prices and visual indicators to eligible customers.
The criteria for promotional pricing to appear is based on conditions that you've already set up in the function configuration.
Below is an example of how a VIP customer sale badge would appear on the product page:
Steps:
From the Function Junction app menu, click Display settings.
Under Add to theme, check Display promotional pricing.
Click Preview and configure to launch the theme editor.
In the theme editor panel, toggle the Promotional price badge theme block on.
If you're comfortable with HTML/CSS you can customize how the promotional pricing badges appear on both your product pages, and your collection pages.
Add your code under product page, or collection page to update the badge on each page, respectively.
If you need help, you can contact us by using the chat widget in the app, or email us at .
Learn about the quick start template for order discounts based on conditions.
You can create special campaigns that reward customers for reaching a specific total in the cart. Discounts can be based on a set amount off or percentage off the order.
The Order discount template applies a discount after the subtotal calculation of all items in the cart.
In this example, if the customer spends $200 or more, then they receive $25 off skincare products.
The customer sees their discount in the subtotal area of the cart.
In this example, there is one condition. If the cart subtotal is greater than or equal to $200, the discount is triggered. In the action, the function checks if the items in the cart belong to the Skincare collection. If so, then the fixed total discount is applied.
From the Function Junction dashboard, under Quick start templates, click Order Discount.
Under Function name, give your discount a unique name so you can identify it later.
In this example, the customer needs to add $200 or more to their cart to get the discount.
Set up the conditions that customers need to meet to get the discount. In this example, the function needs one condition:
If cart subtotal is greater than or equal to 200
Click Next.
Set up the action (the discount) that is taken when the conditions you set are met. In this example, the customer is rewarded with $25 off if the products are from the Skincare collection.
collection is any, and then select the skincare collection.
then fixed total discount
Under Discount type, select if you want the discount to be Automatic or With Discount Code. In this example, the discount applies automatically.
Automatic: Under Discount message, if you select Yes, then enter the discount message in the field provided below.
With Discount Code: Enter the discount code that you want customers to enter at checkout.
When your discount is published, if you want to advertise it, then you can .
Learn about the quick start template for shipping discounts based on conditions.
Learn how to change the visibility of your function campaign.
You can control which customers see your campaign block on your storefront. This gives you flexibility to run broad promotions for everyone, keep campaigns private, or target specific customer segments.
For example, you might make a VIP discount visible only to customers with a VIP tag, while showing a seasonal sale banner to all visitors.
Choose between the following visibility settings:
Everyone: All store visitors can see the campaign
Hidden (private access only)
Under Combinations, if you want this discount to be combined with other discounts, then click Yes, and check which types of discounts that you want it to be combinable with.
When you're done, click Publish.
Optional: Under Eligibility, select Specific condition to set criteria based on: customer total spend, customer tags, customer orders count, cart subtotal, cart items quantity, cart has items, and cart has no items. You can add additional conditions by clicking Add a condition.
Click Next.
Optional: If you want to add more products with different quantity requirements, then click Add an item and repeat steps 1a and 1b.
Click Next.
When you're done, click Publish.
is5%Items in bundle: In step 3, Reese would set the items he wants included using and logic, since the customer needs to add a product from each category or collection. Since they have their own collections:
collection is any ski boots and selected items quantity is equal to 1
and collection is any ski helmets and selected items quantity is equal to 1
and collection is any ski poles and selected items quantity is equal to 1
and collection is any skis and selected items quantity is equal to 1
Discount method: In step 4, Reese would set the Discount type to Automatic. He wants customers to know about it, so he writes the Discount message to be 5% off when you buy a full SKI SET! He doesn't want this discount to combine with any other discounts, so he leaves Combinations set to No.
andcart items quantityis greater than4Click Next.
Optional: Under Filter, add a filter. You can choose to set the discount for only specific products. This can be based on: product/variant, product tag, collection, vendor, type, or on sale. Each filter condition you can choose has specific rules that you need to set up.
When you're done, click Next.
Under Combinations, if you want this discount to be combined with other discounts, then click Yes, and check which types of discounts that you want it to be combinable with.
When you're done, click Publish.
Optional: Toggle promotional pricing visibility on or off for product pages. You can also choose to change the colors and badge size.
Click Save.

is25Under Combinations, if you want this discount to be combined with other discounts, then click Yes, and check which types of discounts that you want it to be combinable with.
When you're done, click Publish.

In this example, the customer can qualify for free shipping if their cart subtotal is over $100 or if they have five or more items in the cart.
At checkout, the customer will see their shipping discount and custom message.
In this example, there are two trigger conditions. The OR statement is used in this case to allow either of the two conditions to apply the discount.
When the cart has conditions that qualify, the discount is applied.
From the Function Junction dashboard, under Quick start templates, click Shipping Discount.
Under Function name, give your discount a unique name so you can identify it later.
In this example, there are two triggers. The OR statement is required, meaning that one condition or the other must be met to trigger the discount. For the trigger conditions, the customer needs to have a cart subtotal of over $100 or have five or more items in the cart.
Set up the conditions that customers need to meet to get the discount. In this example, the function needs one of two conditions, so click Add a condition and then enter the following conditions:
If cart subtotal is greater than or equal to 100
or cart items quantity is greater than 5
Click Next.
Set up the action (the discount) that is taken when the conditions you set are met.
For this example, the action should be: Percentage total discount.
Fill in the second text box with the number representing the discount amount you want to set up, then click Next. In this example, the discount is 100%.
Optional: Under Filter, add a filter. You can choose to set the discount for only specific products. This can be based on: product/variant, product tag, collection, vendor, type, or on sale. Each filter condition you can choose has specific rules that you need to set up.
When you're done, click Next.
In this example, the customer is rewarded with 100% off the cost of shipping.
Under Discount type, select if you want the discount to be Automatic or With Discount Code. In this example, the discount applies automatically.
Automatic: Under Discount message, if you select Yes, then enter the discount message in the field provided below.
With Discount Code: Enter the discount code that you want customers to enter at checkout.
Under Combinations, if you want this discount to be combined with other discounts, then click Yes, and check which types of discounts that you want it to be combinable with.
When you're done, click Publish.
When your discount is published, if you want to advertise it, then you can publish a widget to your store.
Targeted customers: Show the campaign block to only customers who meet the conditions that you set
By default, a newly created function is visible to all customers. However, you can set the visibility setting in the initial setup of the function, or change it after it's published from the campaign dashboard.
Steps:
From the app dashboard, under Functions library, find the function that you want to edit.
Click the more options menu (⋮) to open the campaign dashboard.
Under Control visibility, choose an option. Depending on your choice, you need to set certain conditions to complete the setup.
Everyone
Hidden (private access only)
Click Save.
If you want to show the campaign to only certain customers based on conditions you set, then choose Targeted customers in the Control visibility section.
You can set conditions based on: customer total spend, customer tags, or customer order count, and then set the limits or tags based on your campaign requirements.
Learn how to set up the conditional discount function.
With conditional discounts, you can set up different types of discounts, such as fixed discounts (like $5 off) or percentage discounts (like 5% off) off items or the total cart amount.
You can set multiple types of conditions, which provides more flexibility in how you set up the discount rules.
You can create conditional discounts to target specific customer actions or groups. For example:
Spend threshold: Offer $5 off when a customer spends $50 or more.
Collection-based: Apply 15% off items in a specific collection, such as clearance products.
Customer segment: Give wholesale customers (tagged with wholesale) 20% off their orders.
These types of discounts help you tailor promotions to different shopping behaviors or customer groups.
From the Function Junction dashboard, click Create a function.
Under Create campaign, click Start from scratch.
Beside Conditional Discount, click Continue.
Under Function name, give your discount a unique name so you can identify it later, then click
Set up the conditions that customers need to meet to get the discount.
Criteria can be based on: customer total spend, customer tags, customer orders count, cart subtotal, cart items quantity, cart has items, and cart has no items. Each condition has specific rules that you need to set up.
Optional: Click Add a condition to add an additional condition, if you want customers to meet more than one.
Set up the action (the discount) that is taken when the conditions you set are met.
The discount types you can choose from the drop-down menu are: Percentage discount per item, percentage total discount, fixed total discount, or fixed discount per item.
Fill in the second text box with the number representing the discount amount you want to set up, then click Next.
Under Discount type, select if you want the discount to be Automatic or With Discount Code.
Automatic: Under Discount message, if you select Yes, then enter the discount message in the field provided below.
With Discount Code: Enter the discount code that you want customers to enter at checkout.
When your discount is published, if you want to advertise it, then you can .
In this example, Ramesh has a sporting goods shop.
He wants flexibility in creating a 20% off discount code because he has a few conditions that need to be met:
the cart subtotal needs to be over $50,
there needs to be at least 3 items in the cart,
the items can't be on sale.
In this case, he'd choose a conditional discount and do the following:
Function name: In this case, Ramesh would give his conditional discount a name like 20% off $50 carts so that he can identify it later.
Conditions: In step 2, because he wants this to be exclusive to carts with at least $50 worth of product and 3 items, he needs to add two conditions:
if cart subtotal is greater than
Learn how to set up a payment option customization function.
Payment method customization lets you control which payment options appear at checkout, and how they’re displayed, based on specific conditions. You can hide, reorder, or rename payment methods to suit your business needs.
For example, you can show American Express first for U.S. customers, hide certain methods for low-value orders, or rename a payment method to reflect a local preference. This allows you to tailor the checkout experience based on factors like customer location or order value.
From the Function Junction dashboard, click Create a function.
Under Create campaign, click Start from scratch.
Beside Customize Payment Options at Checkout, click Continue.
Under Function name, give your discount a unique name so you can identify it later.
Define the condition that activates the function:
From the drop-down menu, select the condition that you want the function to be based on, like cart has items, then product/variant is any, then select the products you want, and selected items quantity is greater than 1
Customize the payment method based on your conditions. Click Add a rule under any of the following:
Rename payment methods
Reorder payment methods
Hide payment methods
In this example, Max has several payment methods for his store. He has regular credit cards as a method, PayPal, and Klarna for a buy now, pay later option. Max decides he only wants to show Klarna as a payment option if the cart subtotal exceeds $500.
Function name: In this case, Max would give his function a name like Hide Klarna orders under $500 so that he can identify it later.
Condition type: Since he wants this to apply to a cart subtotal, not related to delivery, he would leave the condition type set to Standard.
Conditions: In step 2, because he wants this to be exclusive to carts with less than $500 worth of product, he needs to add the condition:
Learn how to set up the shipping discount function.
You can use shipping discounts to automatically reduce or remove a customer’s shipping charge at checkout, based on conditions you define.
For example, you might offer free shipping on orders over $75, discounted shipping for wholesale customers, flat-rate shipping within specific countries, or free express shipping on high-value orders. You can use shipping discounts help reduce cart abandonment, encourage higher order values, and reward loyal customers.
When you're done, click Next.
Under Combinations, if you want this discount to be combined with other discounts, then click Yes, and check which types of discounts that you want it to be combinable with.
When you're done, click Publish.
$50and cart items quantity is greater than or equal to 3
The action (ie discount): In step 3, Ramesh would enter the discount action as then percentage total discount is 20%.
Filter: In step 3, because Ramesh wants to apply this only to products that aren't on sale, he would select Specific products, then on sale false.
Discount method: In step 4, Ramesh would set the Discount type to With Discount Code. He is going to send out an email to customers, and also add a widget to the store to advertise the sale, so he sets the Discount message to 20% OFF carts over $50 (with at least 3 items)!
Under Condition type, click the drop-down and select one of the following:
Standard: The most commonly used and well-balanced settings.
Delivery: For conditions that are more related to shipping and delivery.
Click Next.
Optional: Click Add a condition to add any additional conditions that you want.
Click Next.
Enter the condition that you want based on the rule that you chose. It will differ depending on the rule.
Click Publish.
if cart subtotal is less than $500
Payment method rule: In step 3, Max would Add a rule under Hide payment methods. He would enter payment method name contains Klarna, and he'd also leave Hide in set to all.

From the Function Junction dashboard, click Create a function.
Under Create campaign, click Start from scratch.
Beside Shipping Discount, click Continue.
Under Function name, give your discount a unique name so you can identify it later, then click Next.
Optional: Under Eligibility, select Specific condition to set criteria based on: customer total spend, customer tags, customer orders count, cart subtotal, cart items quantity, cart has items, and cart has no items. You can add additional conditions by clicking Add a condition.
Click Next.
Set up the action (the discount) that is taken when the conditions you set are met.
The discount types you can choose from the drop-down menu are: Percentage total discount, or fixed total discount.
Fill in the second text box with the number representing the discount amount you want to set up, then click Next.
Optional: Under Filter, add a filter. You can choose to set the discount for only specific shipping rates. This can be based on: rate name, rate method, or rate price. Each filter condition you can choose has specific rules that you need to set up.
When you're done, click Next.
Under Discount type, select if you want the discount to be Automatic or With Discount Code.
Automatic: Under Discount message, if you select Yes, then enter the discount message in the field provided below.
With Discount Code: Enter the discount code that you want customers to enter at checkout.
Under Combinations, if you want this discount to be combined with other discounts, then click Yes, and check which types of discounts that you want it to be combinable with.
When you're done, click Publish.
In this example, Maia has a furniture business and she wants to offer free shipping automatically, as long as the cart subtotal is over $500.
However, Maia ships large objects worldwide, so she wants to make sure the discount only applies to shipping rates that don't exceed the value of the cart (ie, not more than $500).
Function name: In this case, she would give her shipping discount a name like Free shipping over $500 so that she can identify it later.
Eligibility: Since she wants the cart to be over $500, she would select Specific condition, and then set the condition to the following: if cart subtotal is greater than $500
Action taken: In step 2, Maia would set the action to: then percentage total discount is 100%
Filter: Since she wouldn't want to discount a shipping rate worth more than the cart total, she would set the filter to Specific shipping rates, and set the conditions to: rate price is less than $500
Discount method: In step 3, Maia would set the Discount type to Automatic. She wants customers to know about it, so she writes the Discount message to be FREE shipping on orders over $500! She doesn't want this discount to combine with any other discounts, so she leaves Combinations set to No.
When your discount is published, if you want to advertise it, then you can publish a widget to your store.
Learn how to set up the BOGO (Buy One, Get One) function.
BOGO (Buy One, Get One) discounts let you offer free or discounted products when customers add specific items or quantities to their cart.
For example, you can create offers like "Buy 1, get 1 free," "Buy 2, get 1 at 50% off," or "Buy a main item, get an accessory free." BOGO deals can help to boost sales volume, clear inventory, and increase customer satisfaction.
From the Function Junction dashboard, click Create a function.
Under Create campaign, click Start from scratch.
Beside BOGO (Buy One, Get One), click Continue.
Under Function name, give your discount a unique name so you can identify it later, then click
Specify the items customers need to buy for the discount:
From the drop-down menu, set the items to be included. This can be based on: product/variant, product tag, collection, vendor, type, or on sale.
Beside selected items quantity, use a measurement condition like is greater than to set the item quantity required to get the discount, and fill in the number in the text field.
Specify the items customers will receive for the discount:
From the drop-down menu, set the items to be included. This can be based on: product/variant, product tag, collection, vendor, type, or on sale.
Beside selected items quantity, use a measurement condition like is greater than to set the item quantity required to get the discount, and fill in the number in the text field.
Specify the discount value for the product(s) the customers will receive.
Under Discount type, click the drop-down menu and select either Percentage off or Fixed discount.
Depending on which type you chose, enter the number for the percentage off or the fixed discount, respectively.
Automatic: Under Discount message, if you select Yes, then enter the discount message in the field provided below.
With Discount Code: Enter the discount code that you want customers to enter at checkout.
Under Combinations, if you want this discount to be combined with other discounts, then click Yes, and check which types of discounts that you want it to be combinable with.
When your discount is published, if you want to advertise it, then you can .
In this example, Dua has a makeup brand, and she wants to run a sale that offers customers the opportunity to buy three lipsticks, get the fourth one free.
She wants the discount to apply automatically when all 4 lipsticks are added to the cart.
Function name: In this case, Dua would give her BOGO discount a name like Buy 3 lipsticks, get 1 free so that she can identify it later.
Eligibility: She wants this to be eligible to all shoppers, so she leaves it set All customers.
Specify the X product: In step 2, Dua would set the condition to: product/variant is any and then select her lipstick products. She would also set the
Learn about the quick start template for bundle discounts based on conditions.
You can set up bundle discounts to increase customers' total items per transaction. You can bundle individual products together with a wide range of options, including by collection, tags, vendor, type, and by manually selecting products and variants.
Discounts are applied to each item in the cart that qualifies for the bundle discount.
In this example, the customer saves 15% when they add products from the Eyes collection and the Lips collection to their carts.
Each qualifying item that's bundled receives the 15% discount.
The discount message displays in the cart.
Two conditions trigger the discount:
If the cart has an item from the Eyes collection with a quantity of one or more, and the cart has an item from the Lips collection with a quantity of one or more, then the discount is applied.
The function verifies that the items belong to the chosen collections and then applies a percentage discount to each qualifying item in the cart.
From the Function Junction dashboard, under Quick start templates, click Bundle Discount.
Under Function name, give your discount a unique name so you can identify it later.
In this example, the function is looking for items in the cart that belong to the Eyes collection AND items in the cart from the Lips collection. The requirements are that there is one item from each collection needed to build the bundle:
Set up the conditions that customers need to meet to get the discount. In this example, the function needs two conditions:
Condition 1:
If cart has items
collection is any and select the Eyes collection
selected items quantity is greater than or equal to
Condition 2:
and cart has items
collection is any and select the Lips collection
selected items quantity is greater than or equal to
Click Next.
Set up the action (the discount) that is taken when the conditions you set are met. In this example, the customer is rewarded with $25 off products from the two collections.
collection is any, and then select both the Lips and Eyes collections.
then percentage discount per item
Under Discount type, select if you want the discount to be Automatic or With Discount Code. In this example, the discount applies automatically.
Automatic: Under Discount message, if you select Yes, then enter the discount message in the field provided below.
With Discount Code: Enter the discount code that you want customers to enter at checkout.
When your discount is published, if you want to advertise it, then you can .
Learn about the quick start template for discounting products based on conditions.
You can build campaigns to reward customers for items added to the cart. You can discount items in the cart by a monetary amount or percentage.
The Product discount template applies a discount to each individual item in the cart that qualifies for a discount.
In this Product discount function example, the store is rewarding customers with 50% off each item if the cart subtotal is greater than $50.
The customer receives the discounted amount for each individual item in the cart with a custom message:
In this example, there is one trigger condition. The cart subtotal must be over $50 for the discount to apply. The discount is applied to each item by the percent value:
From the Function Junction dashboard, under Quick start templates, click Product Discount.
Under Function name, give your discount a unique name so you can identify it later.
Set up the conditions that customers need to meet to get the discount.
The criteria for this example should be based on cart subtotal.
Optional: Click Add a condition to add an additional condition, if you want customers to meet more than one.
Click Next.
Set up the action (the discount) that is taken when the conditions you set are met.
For this example, the action should be: Percentage discount per item.
Fill in the second text box with the number representing the discount amount you want to set up, then click Next. In this example, the discount is 50%.
Under Discount type, select if you want the discount to be Automatic or With Discount Code. In this example, the discount applies automatically.
Automatic: Under Discount message, if you select Yes, then enter the discount message in the field provided below.
With Discount Code: Enter the discount code that you want customers to enter at checkout.
When your discount is published, if you want to advertise it, then you can .
If you added a Discount message, then it appears in the cart.
If left blank, the Campaign Name is added to the cart message.
Learn how to create a function and publish it on your store.
There are two parts to setting up a function on your store:
Creating the function: There are different conditions required for each function. You can find specific function setup instructions in the Templates or Functions section of the Help Center.
Publishing a widget on your storefront: This is important if you want customers to know about the function, like in the case of discounts, sales, or free shipping promos.
Steps:
From the FJ Functions & Script Editor, click Create a function.
Under Create campaign, click Start from scratch.
Beside the function type you want to create, click Continue.
Input your function details as per the steps. Refer to the specific type of function in the Function types section of the Help Center if you need help.
Your function is now active.
After you've clicked Publish, you're taken to that function campaign's dashboard.
Here you can:
edit the function
monitor function performance
switch the function status from draft to active
To make the function details visible to customers, you can publish it as a storefront widget.
Steps:
From the function campaign dashboard, under Storefront Widgets you have different options depending on the type of function you created:
Promotional banner: Slides up from the bottom to highlight promotions or calls-to-action. Supports a title, subtitle, and button.
Announcement bar: Slim, sticky banner at the top for important updates or offers. It stays visible as customers scroll. Includes text and a link.
On your theme editor, the widget is published under the Apps block.
Steps:
Click on the widget that was added to the Apps section block.
Beside Block identifier (Block Name or App Block ID), click Select.
Click the corresponding block name for the function you created.
Optional: Adjust any styles that you want to apply to the widget.
Learn about cart and checkout validation functions
Cart and checkout validation lets you control when a customer can proceed to checkout by applying custom rules to their cart.
For example, you can require a minimum spend of $20, prevent checkout if a restricted item is in the cart for certain regions, or limit the total number of items purchased. This feature is useful for enforcing shipping restrictions, setting purchase limits, or applying order rules without impacting every customer.
Optional: Under Eligibility, select Specific condition to set criteria based on: customer total spend, customer tags, customer orders count, cart subtotal, cart items quantity, cart has items, and cart has no items. You can add additional conditions by clicking Add a condition.
Click Next.
Optional: If you want to add more products with different quantity requirements, then click Add an item and repeat steps 1a and 1b.
Click Next.
Optional: If you want to add more products with different quantity requirements, then click Add an item and repeat steps 1a and 1b.
Click Next.
When you're done, click Publish.
selected item quantityis equal to3Specify the Y product: In step 3, Dua would set the condition to: product/variant is any and then select her lipstick products again. She would also set the selected item quantity is equal to 1.
Select the discount value for Y product: Dua wants the 4th lipstick to be free, so in step 4 she would set the action to: Percentage off 100%.
Discount method: In step 5, Dua would set the Discount type to Automatic. She wants customers to know about it, so she writes the Discount message to be Buy 3 lipsticks, get one free! She doesn't want this discount to combine with any other discounts so she leaves Combinations set to No.
Click Publish.
Popup: Modal window over page content for promotions, announcements, or sign-ups. Includes a title, subtitle, and button.
Enter the details required for the widget and click Save.
Under Widget preview, from the Destination drop-down, select where you want to publish the widget to. You can choose:
Home page
Product page
Collection page
Select the Theme that you want to publish the widget to.
Click Continue to theme editor.
Click Save.
Optional: Click back to the main template and click and drag the Apps section block to the position in the theme template that you want, and click Save.
11is15Under Combinations, if you want this discount to be combined with other discounts, then click Yes, and check which types of discounts that you want it to be combinable with.
When you're done, click Publish.

When you're done, click Next.
Under Combinations, if you want this discount to be combined with other discounts, then click Yes, and check which types of discounts that you want it to be combinable with.
When you're done, click Publish.



From the Function Junction dashboard, click Create a function.
Under Create campaign, click Start from scratch.
Beside Cart & Checkout Validation, click Continue.
Under Function name, give your discount a unique name so you can identify it later.
Under Condition type, click the drop-down and select one of the following:
Standard: The most commonly used and well-balanced settings.
Delivery: For conditions that are more related to shipping and delivery.
Click Next.
Define the condition that activates the function:
From the drop-down menu, select the condition that you want the cart validation to be based on like cart subtotal is greater than $15
Optional: Click Add a condition to add any additional conditions that you want.
Click Next.
Define the error messages to be displayed to the customer when the condition is met.
Under Customer flow, click the drown-down menu and select the condition that triggers the cart validation error message.
Under Error message, enter the message that you want to display to customers.
Under Display location, click the drop-down menu and select where you want the message to be displayed to the customer.
Optional: If you want to add additional error messages for different locations, click Add error message and repeat steps 1a through 1c.
In this example, Akio wants to set up a minimum order value of $50 required for customers to check out.
Function name: In this case, Akio would give his cart validation function a name like Minimum spend cart validation so that he can identify it later.
Condition type: Since he wants this to apply to a minimum spend, not related to delivery, he would leave the condition type set to Standard.
Conditions: In step 2, because he wants this to be exclusive to carts with at least $50 worth of product he needs to add the condition:
if cart subtotal is less than $50
Error messages: In step 3, Akio would enter the error messages he wants to present customers when they reach certain stages of the checkout.
Customer flow: He wants the error message to come up any time during customer interaction with the cart or checkout process, so he leaves Customer flow set to All
Error message: He wants the error to read Unable to complete checkout, cart total needs to meet $50 so he would add this message under Error message.
Display location: He wants the error message to be displayed in the customer's cart so he leaves the Display location set to Cart.
Effective September 12, 2024
This Privacy Policy describes how Presidio Creative, LLC. (together with its affiliated companies - "Function Junction", "we", or "us") collects, stores, uses and discloses personal data when you interact with Function Junction, including when you visit or interact with any of our linked websites, participate in any of our events, interact with any of our online ads and content, emails, sales and marketing channels, integrations or communications under our control (“sites”, and collectively with our eCommerce Operating System platform, the “Services”).
Please review this Privacy Policy carefully, and please use the information herein to make informed choices. If you have any concerns or questions about our privacy practices, please feel free to contact us. By accessing the sites, registering for an account, or making a purchase from us, you are agreeing to all of the terms set forth in this Privacy Policy.
If you do not agree to this Privacy Policy, do not use the sites, purchase our products, interact with us, or give us any information. Your continued use of the sites and/or of our Services means that you agree to this privacy policy.
Our Services are designed for businesses and are not intended for personal or household use. Accordingly, we treat all personal data covered by this Privacy Policy, including information about any visitors to our sites, as pertaining to individuals acting as business representatives, rather than in their personal capacity.
You are not legally required to provide us with any personal data. If you do not wish to provide us with your personal data, or to have it processed by us or any of our service providers, please do not provide it to us and avoid any interaction with us or with any of our Services.
Specifically, this Privacy Policy describes our practices regarding:
When we use the term “personal data” in this Privacy Policy, we mean information that identifies, relates to, describes, is reasonably capable of being associated with, or could reasonably be linked, directly or indirectly, to an individual. It does not include aggregated or identified information that is maintained in a form that is not reasonably capable of being associated with or linked to an individual.
We collect the following categories of personal data, with respect to the following types of data subjects:
Merchant Data: personal data that we collect, process and manage on behalf of our business customers (“merchants” or “customers”), as part of our eCommerce Operating System platform (“platform”). We process such Merchant Data on behalf of and under the instruction of the respective customer. Accordingly, this Privacy Policy (which describes Function Junction’s own privacy and data processing practices) does not apply to such processing done on its customers’ behalf. To learn about the Privacy Policy and practices of our customers, please contact them directly.
User Data: personal data concerning our customers’ internal focal persons who directly engage with Function Junction concerning their organizational account, and users of the platform on behalf of such customers, e.g., the account administrators and users, billing contacts and authorized signatories on behalf of the customer (collectively, “users”); as well as the customer’s business needs and preferences, as identified to us or recognized through our engagement with them.
Prospect Data: personal data relating to visitors of our websites, participants at our events, and any other prospective customer, user or partner (collectively, “prospects”) who visits, purchases, or otherwise interacts with our sites and Services.
Specifically, we collect or generate the following types of personal data about such individuals through the Services:
Usage, login credentials, and device information concerning customers, users and prospects (connectivity, technical and aggregated usage data, such as user agent, IP addresses and approximate location based upon such IP addresses;
Information concerning our customers, users and prospects (contact and business details such as name, email, phone number, position, workplace and professional information, and related business insights, our communications with such individuals (correspondences, sensory information including call and video recordings, and transcriptions and analyses thereof), feedback and testimonials received, contractual and billing details, as well as any expressed, presumed or identified needs, preferences, attributes and insights relevant to our potential or existing engagement), purchasing details including interest and/or purchase history, commercial information, including records of our products or services purchased, obtained, or considered);
Personal data contained in Customer Data which is provided by our customers or processed on their behalf and under their instruction, which may also include any of the types of personal data described above (with respect to users or other individuals whose data is contained in the Customer Data).
If you reside or are using the Services in a territory governed by privacy laws under which “Consent” is the only or most appropriate lawful basis for the processing of personal data as described herein (in general, or specifically with respect to the types of personal data you expect or elect to process or have processed by us or via the Services, or due to nature of such processing), your acceptance of our Terms of Service (or the execution of another service agreement with Function Junction) and this Privacy Policy will be deemed as your consent to the processing of your personal data for all purposes detailed in this Privacy Policy, unless applicable law requires a different form of consent. If you wish to revoke such consent, please contact us at [email protected].
We do not sell your personal data for the intents and purposes of the California Consumer Privacy Act (CCPA) or California Consumer Rights Act (CPRA) and have not sold your personal data in the past.
We and our authorized service providers (further detailed below) maintain, store and process personal data in the United States of America, as reasonably necessary for the proper performance and delivery of our Services, for our internal business purposes in the locations where Function Junction resides, or as may be required by law.
While privacy laws may vary between jurisdictions, Function Junction is committed to protect personal data in accordance with this Privacy Policy and customary industry standards, and such appropriate lawful mechanisms and contractual terms requiring adequate data protection, regardless of any lesser legal requirements that may apply in the jurisdiction to which such data is transferred.
We retain personal data for as long as we deem it as reasonably necessary in order to maintain and expand our relationship and provide you with our Services and offerings; in order to comply with our legal and contractual obligations; or to protect ourselves from any potential disputes (i.e. as required by laws applicable to log-keeping, records and bookkeeping, and in order to have proof and evidence concerning our relationship, should any legal issues arise following your discontinuance of use), all in accordance with our data retention policy and applicable laws.
To determine the appropriate retention period for personal data, we consider the amount, nature, and sensitivity of the personal data, the potential risk of harm from unauthorized use or disclosure of your personal data, the purposes for which we process your personal data and the applicable legal requirements.
Please note that except as required by applicable law or our specific agreements with you, we will not be obligated to retain your personal data for any particular period, and we are free to securely delete, anonymize or restrict access to it for any reason and at any time, with or without notice to you.
If you have any questions about our data retention policy, please contact us by e-mail at [email protected].
We disclose personal data in the following ways:
Service Providers: We engage selected third-party companies and individuals to perform services on our behalf or complementary to our own. Such service providers include hosting and server co-location services, communications and content delivery networks (CDNs), data security services, billing and payment processing services, fraud detection and prevention services, web and product analytics, e-mail distribution and monitoring services, session or activity recording services, remote access services, content transcription and analysis services, performance measurement, data optimization and marketing services, social and advertising networks, content and data enrichment providers, event production and hosting services, e-mail, voicemails, support, enablement and customer relation management systems, and our legal, financial, privacy and compliance advisors (collectively, “service providers“). Our service providers may have access to personal data, depending on each of their specific roles and purposes in facilitating and enhancing our Services, and may only use the data as determined in our agreements with them.
Partnerships: We engage selected business and channel partners, resellers, distributors and providers of professional services related to our Services, which allow us to explore and pursue growth opportunities by facilitating a stronger local presence and tailored experiences for our customers, users and prospects. In such instances, we may share relevant contact, business and usage details with the respective partner, to allow them to engage with those entities and individuals for such purposes. If you directly engage with any of our partners, please note that any aspect of that engagement that is not directly related to the Services and directed by Function Junction is beyond the scope of Function Junction’s Terms of Service and this Privacy Policy, and may therefore be covered by the partner’s own terms and policies. Please review the privacy policys and terms of services of those businesses for more information about what each of those businesses does with your personal data.
Service Integrations: Using our Services to their fullest extent requires connecting or integrating with third-party services, for example, Facebook, Google Ads, Klaviyo, ReCharge, and more in order to share or receive data, which may include personal data, to the platform, or to enrich the data you have processed on the platform. The provider of this connected or integrated third-party service may receive certain relevant data about or from your account on the Services, or share certain relevant data from your account on the third-party provider’s service with our Services, depending on the nature and purpose of such integration. This could include Customer Data and/or User Data. Note that we do not receive or store your passwords for any of these third-party services (but do typically require your API key in order to integrate with them).
Sharing your Feedback or Recommendations: If you submit a public review or feedback, note that we may (at our discretion) store and present your review on our sites and in our Services. If you wish to remove your public review, please contact us at [email protected].
Business Customers: Our customers have access to any personal data we process on their behalf in our capacity as a “processor” or a “service provider”, as well as to personal data relating to their users, as it relates to their use of our Services.
Legal Compliance: We may disclose or allow government and law enforcement officials access to your personal data, in response to a subpoena, search warrant or court order (or similar requirement), or in compliance with applicable laws and regulations. Such disclosure or access may occur if we believe in good faith that: (a) we are legally compelled to do so; (b) disclosure is appropriate in connection with efforts to investigate, prevent, or take action regarding actual or suspected illegal activity, fraud, or other wrongdoing; or (c) such disclosure is required to protect our legitimate business interests, including the security or integrity of our products and services.
Protecting Rights and Safety: We may share personal data with others if we believe in good faith that this will help protect the rights, property or personal safety of Function Junction and our employees, any of our prospects, users or customers, or any members of the general public.
Function Junction Subsidiaries and Affiliated Companies: We may share personal data internally within our group, for the purposes described in this Privacy Policy. In addition, should Function Junction or any of its subsidiaries or affiliates undergo any change in control or ownership, including by means of merger, acquisition or purchase of substantially all or part of its assets, personal data may be shared with or transferred to the parties involved in such an event. We may disclose personal data to a third-party during negotiation of, in connection with or as an asset in such a corporate business transaction. Personal data may also be disclosed in the event of insolvency, bankruptcy or receivership.
For the avoidance of doubt, Function Junction may share personal data in additional manners, pursuant to your explicit approval, or if we are legally obligated to do so, or if we have successfully rendered such data non-personal, non-identifiable and anonymous. We may transfer, share or otherwise use non-personal and non-identifiable data at our sole discretion and without the need for further approval.
We and our service providers use “cookies”, anonymous identifiers, pixels, container tags and other technologies in order to provide our Services and ensure that they perform properly, to analyze our performance and marketing activities, for personalization purposes, for product development and improvements, and to personalize your experience.
Cookies are packets of information sent to your web browser and then sent back by the browser each time it accesses the server that sent the cookie. Some cookies are removed when you close your browser tab or window. These are the “Session Cookies”. Some last for longer periods and are called “Persistent Cookies”. We use both types.
We use Persistent Cookies to remember your log-in details and make it easier for you to log-in the next time you access the platform. We may use this type of cookies and Session Cookies for additional purposes, to facilitate the use of the Services’ features and tools. We may also use HTML5 local storage or Flash cookies for the above-mentioned purposes. These technologies differ from browser cookies in the amount and type of data they store, and how they store it.
Whilst we do not change our practices in response to a “Do Not Track” signal in the HTTP header from a browser or mobile application, you can manage your cookies preferences, including whether or not to accept them and how to remove them, through your browser settings. Please bear in mind that disabling cookies may complicate or even prevent you from using the Services.
We also use the web analytics tool Google Analytics. This tool helps us understand users’ behavior on our Services, including by tracking page content, and click/touch, movements, scrolls and keystroke activities. Further information about the privacy practices of our analytics service provider is available at: www.google.com/policies/privacy/partners. Further information about your option to opt-out of this analytics service is available at: .
Please note that if you get a new computer, install a new browser, erase or otherwise alter your browser’s cookie file (including upgrading certain browsers), you may also clear the opt-out cookies installed once you opt-out, so an additional opt-out will be necessary to prevent additional tracking.
For more information on our cookie and data collection technologies practices, you may also use the “Cookie settings” feature available in our Services depending on your location and activity on our Services, as applicable.
We engage in service and promotional communications, through e-mail notifications.
Service Communications: We may contact you with important information regarding our Services. For example, we may send you notifications (through any of the means available to us) of changes or updates to our Services, billing issues, log-in attempts or password reset notices, etc. Please note that you will not be able to opt out of receiving certain service communications which are integral to your use of some of our Services (like password resets or billing notices).
Promotional Communications: We may also notify you about new features, additional offerings, events, special opportunities or any other information we think you will find valuable, as our customer, user or prospect, subject to any necessary collection of your consent as appropriate based on applicable laws. We may provide such notices through any of the contact means available to us, through the Services, or through our marketing campaigns on any other sites or platforms.
If you do not wish to receive such promotional communications, you may notify us at any time by sending an e-mail to: [email protected], or sending us a request through the live chat in the Function Junction website/app, or by following the instructions contained in the promotional communications you receive.
We have implemented industry-standard physical, procedural and technical security measures, designed to secure your personal data, to minimize the risks of theft, damage, loss of information, or unauthorized access or use of information. However, we cannot guarantee that our Services will be immune from any wrongdoings, malfunctions, unlawful interceptions or access, or other kinds of abuse and misuse. As such, your use of the Services is at your own risk and, when you register an account with us, we encourage you to choose passwords of sufficient length and complexity and not used to access any other site or services, install the latest security updates and anti-virus software on your computer/device to help prevent malware and viruses, not share your password with others, and review your account information periodically. If there is any unexpected activity or inaccurate information or if you have reason to believe that your information is no longer secure, or if you have any questions about our security, please contact us by e-mail at [email protected].
Individuals have rights concerning their personal data as detailed below and, with respect to all requests, we may need to ask you to provide us with certain credentials to make sure that you are who you claim you are, to avoid disclosure to you of personal data related to others and to ask you to provide further information to better understand the nature and scope of data that you request to exercise your rights. Such additional data may be then retained by us for legal, compliance and auditing purposes (e.g., as proof of the identity of the person submitting the request or proof of request fulfillment).
We may redact from the data that we will make available to the requesting data subject any personal data related to others.
Please contact us by e-mail at: [email protected] or send us a request through the live chat in the Function Junction website/app if you wish to exercise your privacy rights under any applicable law, including the EU or UK General Data Protection Regulation (GDPR), or the California Consumer Privacy Act (CCPA), the California Privacy Rights Act (CPRA), the Virginia Consumer Data Protection Act (VCDPA) and others such as – to the extent applicable – the right to know/request access to (specific pieces of personal data collected; categories of personal data collected; categories of sources from whom the personal data was collected; purpose of collecting personal data; categories of third parties with whom we have shared personal data), to request rectification or erasure of your personal data held with Function Junction, or to restrict or object to such personal data’s processing (including the right to direct us not to sell your personal data to third parties now or in the future), or to port such personal data, or the right to equal services and prices (e.g. freedom from discrimination) (each to the extent available to you under the laws which apply to you). Under some regulatory frameworks, such as the GDPR, you may also have the right to lodge a complaint with the relevant supervisory authority, as applicable. These rights are also subject to various exclusions and exceptions under applicable laws. We will not charge a fee to process or respond to your verifiable privacy request unless it is excessive, repetitive, or manifestly unfounded. If we determine that the request warrants a fee, we will tell you why we made that decision and provide you with a cost estimate before completing your request. Alternatively, we may refuse to comply with your request in such circumstances.
We will not fulfill your request unless you have provided sufficient information that enables us to reasonably verify that you are the individual about whom we collected the personal data.
Please also note that if you request deletion of your personal data, we may deny your request or may retain certain elements of your personal data if it is necessary for us or our service providers. We will provide details of our reasoning to you in our correspondence on the matter.
Certain data protection laws and regulations, such as the EU GDPR, UK GDPR, CCPA/CPRA, and VCDPA, typically distinguish between two main roles for parties processing personal data: the “data controller” (or under the CCPA/CPRA, “business”), who determines the purposes and means of processing; and the “data processor” (or under the CCPA/CPRA, “service provider”), who processes the data on behalf of the data controller (or business). Below we explain how these roles apply to our Services, to the extent that such laws and regulations apply.
Function Junction is the “data controller” of Prospect Data. With respect to such data, we assume the responsibilities of data controller (to the extent applicable under law), as set forth in this Privacy Policy. In such instances, our service providers processing such data will assume the role of “data processor”.
Function Junction is the “data processor” of Customer Data, which we process on behalf of our customers (who are each, as relevant, the “data controller” of such data). In such instances, our service providers who process such Customer Data on our behalf are the “sub-processors” of such data.
Function Junction is both a “data controller” and “data processor” of User Data. Such data is processed by Function Junction for its own purposes (as described in Section 2 above), as an independent ‘controller’; whilst certain portions of it which are included in Customer Data will be processed by us on our customer’s behalf, as a ‘data processor’.
Accordingly, Function Junction processes Customer Data (which includes some User Data) strictly in accordance with our customer’s reasonable instructions and other commercial agreements with such customer.
Our customers are solely responsible for determining whether and how they wish to use our Services, and for ensuring that all individuals using the Services on their behalf, as well as all individuals whose personal data may be included in Customer Data processed through the Services, have been provided with adequate notice and given informed consent to the processing of their personal data, where such consent is necessary or advised, and that all legal requirements applicable to the collection, recording, use or other processing of data through our Services are fully met by the customer, including specifically in the context of an employment relationship. Our customers are also responsible for handling data subject rights requests under applicable law, by their users and other individuals whose data they process through the Services.
California Requirements:
This Privacy Policy describes the categories of personal data we may collect and the sources of such information (in Section 1 above), and our retention (Section 4) and deletion rights (Section 9) practices. We also included information about how we may process your information (in Sections 2 through 7), which includes for “business purposes” under the California Consumer Privacy Act (CCPA)/California Privacy Rights Act (CPRA). We do not sell your personal data for the intents and purposes of CCPA. We may disclose personal data to third parties or allow them to collect personal data from our Services as described in Section 5 above, if those third parties are authorized service providers or business partners who have agreed to our contractual limitations as to their retention, use, and disclosure of such personal data, or if you integrate the services of third parties with our Services, or direct us to disclose your personal data to third parties, or as otherwise described in Section 5 above.
You may also designate an authorized agent, in writing or through a power of attorney, to request to exercise your privacy rights on your behalf. The authorized agent may submit a request to exercise these rights by emailing us.
We currently do not collect household data. If we receive a Right to Know or Right to Delete request submitted by all members of a household, we will individually respond to each request. We will not be able to comply with any request by a member of a household under the age of 13 as we do not collect Personal data from any person under the age of 13.
Virginia Requirements:
You may also designate an authorized agent, in writing or through a power of attorney, to request to exercise your privacy rights on your behalf. The authorized agent may submit a request to exercise these rights by emailing us.
We do not disclose a user’s personal data to any third party for such third-party’s direct marketing purposes.
If you have any questions or would like to exercise your rights under the CCPA/CPRA, Nevada S.B.220, or VCDPA, you can contact [email protected].
Updates and Amendments: We may update and amend this Privacy Policy from time to time by posting an amended version on our Services. The amended version will be effective as of the date it is published. We will provide prior notice if we believe any substantial changes are involved via any of the communication means available to us or via the Services. After such notice period, all amendments shall be deemed accepted by you. In the event consent is required based on where you reside, you will be asked to consent prior to being allowed to access our Services subsequent to a Privacy Policy update/amendment.
External Links: While our Services may contain links to other websites or services, we are not responsible for their privacy practices. We encourage you to pay attention when you leave our Services for the website or application of such third parties, and to read the privacy policies of each and every website and service you visit. This Privacy Policy applies only to our Services.
Children: Our Services are not designed to attract minors. We do not knowingly collect personal data from minors and do not wish to do so. If we learn that a person who is considered a minor according to applicable law is using the Services, we will attempt to prohibit and block such use and will make our best efforts to promptly delete any personal data stored with us with regard to such minor. If you believe that we might have any such data, please contact us by e-mail at [email protected].
Contacting Us: If you have any comments or questions regarding our Privacy Policy, or if you have any concerns regarding your personal data held with us, please contact Function Junction’s privacy team at [email protected].