Welcome to the ClickFix documentation!
We offer several types of features to help you customize your Ontraport Pages, streamline your workflows, and integrate with other applications.
Our features are divided into several categories:
This documentation includes detailed information about each of these features and how to use them. On the right side, you will find examples, demos, case studies, and templates that you can use.
There are different types of ClickFix accounts, and some features are only available for certain types of accounts. Here's what the symbols mean:
🆓 : These features are available for Free Account and above
➰ : These features are only available for Essential Account and above
💡 : These features are only available for Marketer Account and above
♾️ : These features are only available for Pro Account
You can upgrade your account anytime by clicking here.
This documentation is a work in progress, so if you have any suggestions for how to make it better, please let us know in the Facebook Group. Thank you for using ClickFix!
What you see | What you need to do |
---|---|
%keyword% |
Remove the two % symbols. And replace keyword with the appropriate value. This value will be explained in the documentation. |
%grab_your_token% | This is a clickable link that will take you to the ClickFix app to get or generate a secure token. Note that this link will open in a new tab, leaving this documentation open. |
%target_field% |
Replace this with the field you want to target on your page or form. You can target a field by its ID by using the prefix # (e.g. #%field_id% ). You can also use the field name (e.g. %field_name% ). Keep in mind that a #%field_id% is unique, while multiple fields can have the same %field_name% . You can save yourself some time by using our Free Chrome Plugin to find your #%field_id% or %field_name% . |
#%trigger.anchor% |
Replace this with the anchor button that will trigger the action. (e.g. #hide.menu to hide a menu) |
%[do_something]% |
Replace this with the shortcode you want to execute. Unless specified, you can also add a %keyword% in place of or along with a %[do_something]% , which will be displayed when the action is triggered. In the case of a conditional system to display different page elements based on a dropdown value, %[do_something]% is what happens when the condition is true. |
Required. | If a parameter is not marked as Required., it likely has a (Default) value. In any case, a non-Required. parameter can be considered Optional. |
In this section you will find Training Videos or links to Ressources and Case Studies related to a specific Feature.
If this is your first time using ClickFix, we advise you watch the following videos :
This box will contain Example uses of our Features.
Followed by an explanation of what is happening.
Here you will fill Live Demos, generally Ontraport Pages where you can see our Features in action.
You can see most of our Demos in the Demo Dashboard
On our Live Demos, remember that you can always Right Click -> View Source to see the Shortcodes and how we used them (they should be right at the top of the Source).
If you want to use our Shortcode on your pages, you need to register your domain name with us.
To do this, go to https://app.clickfix.io/managedomains/ while beeing logged into ClickFix.
Keep in mind that each ClickFix Plan has a limit on the number of domains you can register. If you want to register more domains, you can upgrade your account in your account settings.
(If you are on a Free Account you may skip this part)
If you want to use our special ClickFix Shortcodes on your pages, you need to give us your Ontraport API keys. To do this, click on this link while you are logged in to ClickFix: https://app.clickfix.io/manageontraportkeys/
Remember, if you have the Basic Plan, you can only use one set of Ontraport API keys at a time. But if you want to use more, you can go to your account settings and upgrade your account.
If you have a question that you can't find the answer to, or you see a mistake in this documentation, you can get help by logging into https://app.clickfix.io and going to the Help Center.
You can also post about it in the Facebook Group and someone will try to help you.
Shortcodes are used as you would use Javascript code.
You can use them within the headers of your Ontraport Pages (or more generally in most places where you can add Javascript), or anywhere else you want on the page (links, titles, text...).
To use Shortcodes on your Ontraport Pages, you have to add a special line of code called an "import script" to the header of your page. Here's what it looks like:
<script src="https://klikfx.com/js/1"></script>
You also have to make sure the website you want to use the Shortcodes on is listed here:
https://app.clickfix.io/managedomains/
Even though Shortcodes were originally made for Ontraport Pages, you can use them on other types of websites too as long as you can insert the <script src="https://klikfx.com/js/1"></script>
import script.
Pro Tip :
If you don't want people visiting your website to see the Shortcodes, you can use an invisible <div>
to hide them. It looks like this:
<script src="https://klikfx.com/js/1"></script>
<div style="display:none;">
%Add Your Shortcodes Here%
</div>
Note on Dynamic Blocks
Sometimes, Shortcodes don't work well with "Dynamic Blocks".
But now, if you add [loop:
before any Shortcode, it will work properly.
So for example instead of this :
[StarRating max=5 rating=[Block//Rating]]
You would do this :
[loop:StarRating max=5 rating=[Block//Rating]]
Conditions shortcodes allow you to perform actions based on a specific condition being met.
They are similar to campaign triggers, which also allow you to execute actions based on specific conditions.
They consist of an opening [If]
shortcode and a closing [/If]
shortcode.
[IfAnchor
#%trigger.anchor%
]
%[do_something]%
%keyword%
[/IfAnchor]
[IfAnchor
#%trigger.$variable%
]
%[do_something]%
$%variable%
[/IfAnchor]
This shortcode will Trigger one or more Actions - %[do_something]%
- and/or display a String - %keyword%
- when a certain link #%trigger.anchor%
is Triggered.
You can also use it with WildCards with the help of the $
sign (see Examples and Demos for more information on this Feature).
An Anchor can be Triggered :
Remember :
[IfAnchor]
, and a Closing Shortcode, [/IfAnchor]
#%block_id%
as your #%trigger.anchor%
because the page may moove before %[do_something]%
is finished, which can cause the page to act strange if the block was hidden at first. In this case, we would use a [Redirect #%block_id%
] just before the closing [/IfAnchor]Attribute | Type | Description | |
---|---|---|---|
#%trigger.anchor% or #%trigger.$variable% |
#Anchor | Replace this with the Anchor Link that will Trigger your Action. So if you build an anchor that will hide a menu for example, it could look like this #hide.menu. Required. |
|
%[do_something]% |
Shortcode | Will Execute your %[do_something]% Shortcode. |
|
%keyword% |
String (Word or Sentence) | Will display the %keyword% when your [IfAnchor] is Triggered. |
|
$%variable% |
String | Will display the $%variable% 's Value when your [IfAnchor] is Triggered. |
[IfAnchor #hide.block]
[HideBlock #o7dff3cad25e6]
[/IfAnchor]
Will hide the Block with id #o7dff3cad25e6 if someone triggers the Anchor #hide.block.
[IfAnchor #show.message]
Hello World
[/IfAnchor]
Will display "Hello World" if someone triggers the Anchor #show.message.
[IfAnchor #select.$state]
[FillField state with $state]
[/IfAnchor]
If I Trigger #select.Nevada
, my State will be set to Nevada.
If I Trigger #select.New%20Hampshire
, my State will be set to New Hampshire.
[IfAnchor #add.$number][Calc f1234=f1234+$number][/IfAnchor]
If I Trigger #add.1
, it will add '1' to the Value of the Field whose Field Name is f1234.
[IfBump
%bump_id%
%is/not%
checked]
%[do_something]%
%keyword%
[/IfBump]
This shortcode will Trigger one or more Actions - %[do_something]%
- and/or display a String - %keyword%
- based on whether your %bump_id%
is checked or not.
Remember :
[IfBump
, and a Closing Shortcode, [/IfBump]
[IfBump][do_something][/IfBump]
[IfBump]
[do_something]
[/IfBump]
Attribute | Type | Description | |
---|---|---|---|
%bump_id% |
ID | Replace this with the ID of the Bump that will Trigger your Action. You can use our Free Chrome Plugin to find the ID of your bump easily. Required. |
|
%is/not% |
is or not |
Choose whether you want to trigger your action when the bump is checked (is ) or when it is not checked (not ).Required. |
|
%[do_something]% |
Shortcode | Will Execute your %[do_something]% Shortcode. |
|
%keyword% |
String (Word or Sentence) | Will display the %keyword% when your [IfBump] is Checked or Not. |
[IfBump 33 is checked]
[ShowElement 55]
[/IfBump]
Will display the Element with ID 55 uppon the Bump being checked.
[IfBump 33 not checked][HideElement 55][/IfBump]
Will do the exact same thing as the first example.
[IfUrl type=contains
%parameter%
]
%[do_something]%
%keyword%
[/IfUrl]
Attribute | Type | Description | |
---|---|---|---|
#parameter% |
String | The String to look for in the URL. Required. |
[IfUrl type=query
%url_parameter%
%operator%
%target_value%
]
%[do_something]%
%keyword%
[/IfUrl]
Unlike IfField, which will execute the reverse shortcode if not true, IfUrl will not do that. This means you will need to first use a hide to hide all conditional elements for example, and then use IfUrl to display the one you want displayed.
Attribute | Type | Description | |
---|---|---|---|
%url_parameter% |
String | The parameter to look for in the URL. Required. |
|
%value% |
String | The String to match to the parameter in the URL. Required. |
|
%operator% Required. |
is |
%url_parameter% is equal to %target_value% |
|
not |
%url_parameter% is not equal to %target_value% |
||
> |
%url_parameter% is more than %target_value% |
||
< |
%url_parameter% is less than %target_value% |
||
>= |
%url_parameter% is more than or equal to %target_value% |
||
<= |
%url_parameter% is less than or equal to%target_value% |
||
OR |
Use OR to separate multiple combinations of %url_parameter% %operator% %target_value% if you only want one of them to have to be Validated. |
||
AND |
Use AND to separate multiple combinations of %url_parameter% %operator% %target_value% if you want all of them to have to be Validated. OR takes precedence over AND . |
||
() |
Use brackets to make even more complex conditions. |
[IfUrl type=query amount is 800]
The URL contains the query amount=800
[/IfUrl]
[IfUrl type=contains fbclid]
Welome, facebook visitor!
[/IfUrl]
[IfField
%target_field%
%operator%
%target_value_01%
,%target_value_02%
]
%[do_something]%
%keyword%
[/IfField]
This shortcode will Trigger one or more Actions - %[do_something]%
- and/or display a String - %keyword%
- based on whether your %target_field%
and your %target_value%
match according to your %operator%
.
You can use this Shortcode for simple or complex comparisons. See the examples for more information.
Remember :
[IfField]
, and a Closing Shortcode, [/IfField]
[IfField][do_something][/IfField]
[IfField]
[do_something]
[/IfField]
Attribute | Type | Description |
---|---|---|
%target_field% |
#%field_id% or %field_name% |
You can specify a specific field by using its #%field_id% .If you use %field_name% and there are multiple fields with the same name on the page, only the first one will be checked.You can use our Free Chrome Plugin to find the id or name of your field easily. |
%operator% Required. |
is |
%target_field% is equal to %target_value% |
not |
%target_field% is not equal to %target_value% |
|
> |
%target_field% is more than %target_value% |
|
< |
%target_field% is less than %target_value% |
|
>= |
%target_field% is more than or equal to %target_value% |
|
<= |
%target_field% is less than or equal to%target_value% |
|
is checked/unchecked |
%target_field% is a checkbox and it is checked or unchecked |
|
OR |
Use OR to separate multiple combinations of %target_field% %operator% %target_value% if you only want one of them to have to be Validated. |
|
AND |
Use AND to separate multiple combinations of %target_field% %operator% %target_value% if you want all of them to have to be Validated. OR takes precedence over AND . |
|
() |
Use brackets to make even more complex conditions. | |
%target_value_0X% |
Can be pretty much anything. Check the examples for more information. | |
Your target value can be surrounded by single quotes ' or double quotes " . |
||
If your %target_field% is a Dropdown, you can use either Value or Label as %target_value% . |
||
You can have a single %target_valueX% , or multiple separated by commas , |
||
Required. | ||
%[do_something]% |
Shortcode | Will Execute your %[do_something]% when your Shortcode [IfField] is Validated. |
%keyword% |
String (Word or Sentence) | Will display the %keyword% when your [IfField] is Validated. |
[HideField #o39626ddbd9db-confirm_email]
[IfField email not '']
[ShowField #o39626ddbd9db-confirm_email]
[/IfField]
Will first hide the confirm_email
Field so that it is displayed only once the Visitor has entered his Email Address in the Email Field.
[IfField country not 'United States,Australia,Canada']
[FillField state with "My State is not listed”]
[HideField state]
[/IfField]
Will Hide and Fill the state
Field if the selected country
is not United States, Australia or Canada.
[IfField f1631 >= 3 and f1631 <= 5]
This number is between 3 & 5.
[/IfField]
If the Numeric Field “f1631” is greater than or equal to 3, and less than or equal to 5, then we display "This number is between 3 & 5".
[IfField (lastname is Ray OR firstname is Moon) AND country not '' OR firstname is Rochelle AND email not '']
Your Last Name is Ray or or your Last Name is Moon, and you have selected a Country.
Either that or your First Name is Rochelle and you have entered an email address.
[/IfField]
You can go as far as you want with complex conditions, using ()
, and
and or
.
[IfVar
%$var%
%operator%
%target_value_01%
,%target_value_02%
]
%[do_something]%
%keyword%
[/IfVar]
This shortcode will Trigger one or more Actions - %[do_something]%
- and/or display a String - %keyword%
- based on whether your %$var%
and your %target_value%
match according to your %operator%
.
You can use this Shortcode for simple or complex comparisons. See the examples for more information.
Remember :
[IfVar]
, and a Closing Shortcode, [/IfVar]
[IfVar][do_something][/IfVar]
[IfVar]
[do_something]
[/IfVar]
Attribute | Type | Description |
---|---|---|
%$var% |
variable | You can use your Variable $var defined through your [Calc] shortcodes |
%operator% Required. |
is |
%$var% is equal to %target_value% |
not |
%$var% is not equal to %target_value% |
|
> |
%$var% is more than %target_value% |
|
< |
%$var% is less than %target_value% |
|
>= |
%$var% is more than or equal to %target_value% |
|
<= |
%$var% is less than or equal to%target_value% |
|
is checked/unchecked |
%$var% is a checkbox and it is checked or unchecked |
|
OR |
Use OR to separate multiple combinations of %$var% %operator% %target_value% if you only want one of them to have to be Validated. |
|
AND |
Use AND to separate multiple combinations of %$var% %operator% %target_value% if you want all of them to have to be Validated. OR takes precedence over AND . |
|
() |
Use brackets to make even more complex conditions. | |
%target_value_0X% |
Can be pretty much anything. Check the examples for more information. | |
Your target value can be surrounded by single quotes ' or double quotes " . |
||
If your %$Var% is a Dropdown, you can use either Value or Label as %target_value% . |
||
You can have a single %target_valueX% , or multiple separated by commas , |
||
%target_valueX% can be another Variable, You can use your Variable $var defined through your [Calc] shortcodes |
||
Required. | ||
%[do_something]% |
Shortcode | Will Execute your %[do_something]% when your Shortcode [IfVar] is Validated. |
%keyword% |
String (Word or Sentence) | Will display the %keyword% when your [IfVar] is Validated. |
[Calc $total=f2371+f2370]
[IfVar $total >= 2]
[FillCoupon "SAVE50"]
[/IfVar]
[IfVar $total < 2]
[FillCoupon ""]
[/IfVar]
Will Add the valor of the 2 field and store it into the variable $total, and then will apply the coupon SAVE50
if the variable is greater than 2.
[IfVar $inventory > 0][ShowBlock #o281404921618][/IfVar]
[IfVar $inventory is 0][ShowBlock #obc2f6724b911][/IfVar]
Will show a block based on the variable $inventory
left.
[ToolTip
%id_of_element%
in#%block_id%
delay=%delay
content="content
" follow-cursor=yes/no
placement=top/bottom/left/right
theme=light/light-border/material/translucent
interactive=yes/no
]
This shortcode will add a Tooltip : "content
" when you hover your cursor over an element with the ID %id_of_element%
the block with the ID #block_id
.
Attribute | Type / Values | Description |
---|---|---|
%id_of_element% |
ID | The ID of the element you want to add the Tooltip to. |
#%block_id% |
ID | The ID of the block the element is in. |
delay= | parameters | The amount of time in milliseconds before the message appears when you hover your cursor over the element. |
content= | parameters | The message (text) that appears in the tooltip, the text needs to be in quotes. |
follow-cursor= | parameters | yes or no - determines whether the tooltip should follow the cursor movement or not. |
placement= | parameters | top / bottom / left / right - position of the tooltip. |
theme= | parameters | light / light-border / material / translucent - theme of the tooltip. |
interactive= | parameters | yes or no - determines if user can interact with the tooltip (Select text, copy etc..) |
CSS shortcodes can be used to add custom styling to the different parts of your Ontraport Pages:
Blocks
Columns
Elements
Fields*
Rows*
*NOTE: To target Fields & Rows, you’ll need an advanced understanding of how CSS selectors & the inspector panel works.
[CSS] - Targets Blocks
[CSS #%id_of_target_block_01%,#%id_of_target_block_02% “%css-property01%:%value01%;%css-property02%:%value02%;”]
The declaration block contains one or more declarations separated by semicolons ;
.
Each declaration includes a CSS property name and a value, separated by a colon :
.
A CSS declaration always ends with a semicolon ;
, and the shortcode declaration is surrounded by square brackets [ ]
.
https://clickfix.ontraport.com/css
More info on CSS https://www.w3schools.com/css/css_syntax.asp
[CSS #oa32642f55230 “margin-top: -60px;z-index:99;”]
Will move the block 60 pixels up (invading the space of the previous block) and make sure it is shown in front of the block it overlaps.
[CSSColumn] - Targets Columns
[CSSColumn %id_of_target_column_01% of #%id_of_target_block “%css-property01%:%value01%;%css-property02%:%value02%;”]
The declaration block contains one or more declarations separated by semicolons.
Each declaration includes a CSS property name and a value, separated by a colon.
A CSS declaration always ends with a semicolon, and the shortcode declaration is surrounded by square brackets
EXAMPLES
[CSSColumn 5 in #o9463cb77cd6a "margin-top:-50px;"]
Will move the column up by 50 pixels (useful for creating overlapping effects).
[CSSElement] - Targets Elements
[CSSElement %id_of_target_element_01% in #%id_of_target_block “%css-property01%:%value01%;%css-property02%:%value02%;”]
The declaration block contains one or more declarations separated by semicolons.
Each declaration includes a CSS property name and a value, separated by a colon.
A CSS declaration always ends with a semicolon, and the shortcode declaration is surrounded by square brackets
[CSSElement 5 in #o0c1f32b349e8 "text-shadow: 2px 2px 4px #000000;"]
This applies a drop shadow to the text element.
[CSSElement 9 in #o0bdf5617467c "box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.75);"]
This applies a box shadow to an element (in this case an image).
[CSSElement 9 in #o05ff3c1a834a "-webkit-filter: blur(5px); /* Safari 6.0 - 9.0 */ filter: blur(5px);"]
This applies a blur effect to an element (in this case an image).
[CSSElement 9 in #o9890af95297a "border-radius: 50%;"]
This applies a circle crop effect to an element (in this case an image).
[StarRating
rating
=x
/$%variable%
max=x
star-size=x
]
This shortcode allows you to build a star rating system.
Attribute | Type | Description |
---|---|---|
rating= |
Value or $variable |
rating= can be either a numerical value or a $variable. It will show a number of full stars equal to the rating= value.Required. |
max=x |
Keyword | X is the number of stars you want to display (full or empty).Default value max= 5 Optional. |
star-size=x |
Keyword | X is the size of the stars in pixels, it's a vector so it will be high quality on any size. Default value star-size= 24 Optional. |
rater= |
%field_name% |
This will display selectionnable stars and will fill the %field_name% selected with the number of stars. Optional. |
Live Demo - rating
Here we are using a variable [StarRating rating=$rating
max=5 star-size=24] and it will display stars based on the average rating of the product out of 5
Live Demo - rater
Here we are using [StarRating max=5 rating=0rater=f2187
star-size=50] to fill the field rating (f2187)
[PhoneStyle field=
%target_field_1%
,%target_field_2%
]
This shortcode will change the way a phone field looks by adding a dropdown menu for selecting a country. The dropdown will be filled with the correct country for the visitor based on their IP address.
Attribute | Type | Description | |
---|---|---|---|
%target_field% |
#%field_id% or %field_name% |
Because the same Field will have the same name if it is on the page multiple times, you may target a specific Field by targeting its #%field_id% .You can use our Free Chrome Plugin to find the ID or name of the field easily. Required. |
You can also add CSS parameters to the shortcode such as :
background-color=
#The background color code
dropdown-divider-color=
#The dropdown divider color code
dropdown-bg-color-hover=
#The hover color code
line-height=
The heigh of the line in pixel ( px )
margin-top/bottom/left/right=
The heigh of the margin in each the direction you choose in pixel ( px )
[PhoneStyle field=sms_number background-color=#XXXXX dropdown-divider-color=#XXXXX dropdown-bg-hover=#XXXXX line-height=39px margin-top=1px margin-left=1px]
[IfScreen min-width:
%pixels%
px and max-width:%pixels%
px]
[/IfScreen]
The Screen Targeting shortcode lets you change your Ontraport pages depending on the size of the screen your visitor is using.
*NOTE: You can also use it to change the way your page looks based on the device orientation, like if it's a phone or a tablet.
These shortcodes work like Media Queries, which are usually only used for CSS.
But we modified them so you can use any shortcode or display text based on the screen size you set.
[IfScreen min-width:%number%px]
%[do_something]%
%keyword%
[/IfScreen]
This shortcode will Trigger one or more Actions - %[do_something]% and/or display a String - %keyword% for any screen that is AT LEAST %number%px wide.
Also please note that:
This shortcode requires an Opening Shortcode - [IfScreen] and a Closing Shortcode - [/IfScreen]
This shortcode DOES NOT require line-breaks
[FloatingBlock
%block_id%
left=%value_left%
top=%value_top%
]
This shortcode will make the block with ID #block_id
stay in the same place on your screen as you scroll the page, you can also use bottom=%value_bottom%
and right=%value_right%
, any combination of those attributes.
Attribute | Type / Values | Description |
---|---|---|
%block_id% |
ID | The ID of the block you want to make floating |
top= |
Option | Block distance from the top of the page, pixels or percentage (e.g 100/100px or 50%), use either top or bottom, not both |
bottom= |
Option | Block distance from the bottom of the page, pixels or percentage (e.g 100/100px or 50%) |
left= |
Option | Block distance from the left of the page, pixels or percentage (e.g 100/100px or 50%), use either left or right, not both |
right= |
Option | Block distance from the right of the page, pixels or percentage (e.g 100/100px or 50%) |
Remember :
*You should only use one of top
or bottom
, and one of left
or right
.
[FloatingElement
%id_of_element%
of#%block_id%
onscroll=yes/no
width=%value_width
top=%value_top%
right=%value_left%
]
This shortcode will make the Element with ID %id_of_element%
of #block_id
stay in the same place on your screen as you scroll the page, you can also use bottom=%value_bottom%
and right=%value_right%
, any combination of those attributes.
Attribute | Type / Values | Description |
---|---|---|
%id_of_element% |
ID | The element ID you want to make floating. required. |
#%block_id% |
ID | The ID of the block you want to make floating |
onscroll= |
parameters | yes or no |
width= |
Option | The additional width of the floating element in pixels (e.g 100) |
top= |
Option | Block distance from the top of the page in pixels (e.g 100), use either top or bottom, not both |
bottom= |
Option | Block distance from the bottom of the page in pixels (e.g 100) |
left= |
Option | Block distance from the left of the page in pixels (e.g 100), use either left or right, not both |
right= |
Option | Block distance from the right of the page in pixels (e.g 100) |
Remember :
*You should only use one of top
or bottom
, and one of left
or right
.
[StickyBlock %block_id%
%top_offset%
]
This shortcode will make the block sticky, it will stick to the position after scrolling to the certain position(%top_offset%
).
Attribute | Type | Description |
---|---|---|
%block_id% |
ID | The Block ID you want to make sticky. required. |
%top_offset% |
Option | Scroll offset, The number of pixels you need to scroll down before the block becomes sticky. |
[StickyColumn %id_of_column%
in/of %block_id%
%top_offset%
freeze=%freeze%
]
This Shortcode will make the Column sticky, it will stick to the position after scrolling to the certain position(%top_offset%
).
Attribute | Type | Description |
---|---|---|
%id_of_column% |
ID | The column ID you want to make sticky. required. |
in %block_id% or of %block_id% |
ID | If there are multiple columns with the same ID on the page, you can specify in which Block is the one you want by adding this to the shortcode. |
%top_offset% |
Option | Scroll offset, The number of pixels you need to scroll down before the Column becomes sticky. |
freeze= | Boolean | values are yes or no , If yes , the column will always stay in its first position |
[StickyElement %id_of_element%
in/of %block_id%
%top_offset%
freeze=%freeze%
]
This shortcode will make the element sticky, it will stick to the position after scrolling to the certain position(%top_offset%
).
Attribute | Type | Description |
---|---|---|
%id_of_element% |
ID | The element ID you want to make sticky. required. |
in %block_id% or of %block_id% |
ID | If there are multiple Elements with the same ID on the page, you can specify in which Block is the one you want by adding this to the shortcode. |
%top_offset% |
Option | Scroll offset, The number of pixels you need to scroll down before the Element becomes sticky. |
[ProgressBar x=
%value_x%
y=%value_y%
]
This special Shortcode will show a progress bar on your page using data from different sources :
X is the current score, Y is the maximum score.
Attribute | Type / Values | Description | |
---|---|---|---|
%value% |
Numeric | Replace this with either : * [Field Name] if you want to use an Ontraport Merge Field* %url_parameter% if you wish to get the value from your URL* $variable if you want to use a Variable.Required. |
|
type= |
Type | Option is 'dots'. Default is solid. | |
height= |
Option | A Height in pixels. | |
color= |
Option | A color, like red or #FFF for example. |
|
background= |
Option | A color, like red or #FFF for example. |
|
border-size= |
Option | A Border Size in pixels. | |
border-style= |
Option | solid , dashed or dotted |
|
padding= |
Option | A Padding size in pixels. |
Page Manipulation Shortcodes allows you to hide certain parts of your Ontraport pages (and then display them again) :
However, you can't use it with rows because they can't be identified individually.
(There is a Feature Request with Ontraport here).
Page Manipulation Shortcodes can be :
Simple Page Manipulation using :
[HideBlock][ShowBlock]
[HideColumn][ShowColumn]
[HideElement][ShowElement]
[HideField][ShowField]
[IfAnchor]
[Redirect]
Right Click -> View Source to see the Shortcodes and how we used them.
[HideBlock
#%id_of_target_block_01%
,#%id_of_target_block_02%
]
This shortcode can show or hide a block or a series of blocks on an Ontraport Page.
Attribute | Type | Description | |
---|---|---|---|
%id_of_target_block_0X% |
ID | The ID of the Block you want to hide. You can save yourself some time by using our Free Chrome Plugin to find your Block's ID. Required. |
[HideBlock #o9a6611924513]
Will hide the blocks with id #o9a6611924513.
[ShowBlock #ob8099e4c466e]
Will show the block with id #ob8099e4c466e (which must have previously been hidden using [HideBlock #ob8099e4c466e]
.
[HideBlock #ob8099e4c466e,#o9a6611924513][ShowBlock #o76aaaa4513]
Will hide the blocks with ids #ob8099e4c466e and #o9a6611924513, and will show the block with id #o76aaaa4513.
[HideDynamicBlock
%id_of_target_dynamicblock%
]
[ShowDynamicBlock%id_of_target_dynamicblock%
]
This shortcode can show or hide a Dynamic Block on an Ontraport Page.
Attribute | Type | Description | |
---|---|---|---|
%id_of_target_dynamicblock% |
ID | The ID of the Block you want to hide. Contraty to Hide/ShowBlock you cant find this id with our plugin for now. You will need to use the DevTools on chrome by right clicking on the dynamic block and click 'Inspect' then you have to go up the tree to find a line with "span class="object-record-block-container" of your dynamic block, on the line below you will have to retrieve the id after "class="opt-row opt-id-". Required. |
[HideColumn
%id_of_column_01%
,%id_of_column_02%
in #%block_id%
]
[ShowColumn%id_of_column_01%
,%id_of_column_02%
in #%block_id%
]
This shortcode can show or hide a column or a series of column, within a specific block, on an Ontraport Page.
NOTE: It is usually better to use the [ShowElement]/[HideElement] Shortcodes instead, because HideColumn can sometimes mess up the formatting of the page unless if you use it on a single column row.
Attribute | Type | Description | |
---|---|---|---|
%id_of_column_0X% |
ID | The ID of the column you want to hide. You can save yourself some time by using our Free Chrome Plugin to find your Column's ID. Required. |
|
in #%block_id% |
ID | If there are multiple columns with the same ID on the page, you can specify in which Block is the one you want by adding this to the shortcode. |
[HideColumn 8]
Will hide the column with id 8.
[ShowColumn 1]
Will show the column with id 1. (which must have previously been hidden using [HideColumn 1]
.
[HideColumn 1,2,3,4 in #o76aaaa4513][ShowColumn 5 in #o76aaaa4513]
Will show the columns with ids 1,2,3 and 4 and will hide the column with id 5 within the block with id #o76aaaa4513.
[HideElement
%id_of_element_01%
,%id_of_element_02%
in #%block_id%
]
[ShowElement%id_of_element_01%
,%id_of_element_02%
in #%block_id%
]
This Shortcode can show or hide an Element or a series of Elements, within a specific Block, on an Ontraport Page.
Attribute | Type | Description | |
---|---|---|---|
%id_of_element_0X% |
ID | The id of the Element you want to hide. You can save yourself some time by using our Free Chrome Plugin to find your Element's ID. Required. |
|
in #%block_id% |
ID | If there are multiple elements with the same ID on the page, you can specify in which Block is the one you want by adding this to the shortcode. |
[HideElement 8]
Will hide the Element with id 8.
[ShowElement 1]
Will show the Element with id 1. (which must have previously been hidden using [HideElement 1]
.
[HideElement 1,2,3,4 in #o76aaaa4513][ShowElement 5 in #o76aaaa4513]
Will show the Elements with ids 1,2,3 and 4 and will hide the Element with id 5 within the block with id #o76aaaa4513.
[HideField
%target_field_01%
,%target_field_02%
]
[ShowField%target_field_01%
,%target_field_02%
]
This Shortcode can show or hide a Field or a series of Fields on an Ontraport Page or an Ontraport Form.
Note that on an Ontraport Form, you'll need to add the "ontraform" parameter : [HideField %target_field_01%
ontraform]
Attribute | Type | Description | |
---|---|---|---|
%target_field_0X% |
#%field_id% or %field_name% |
Because the same Field will have the same name if it is on the page multiple times, you may target a specific Field by targeting its #%field_id% .If you use %field_name% and multiple Fields with the same name are found on the page, all the Fields will be displayed or shown.You can save yourself some time by using our Free Chrome Plugin to find your Field's id or name. Required. |
Note : be careful not to hide a required field. If a field is required AND hidden, the "required" part will break the form, meaning the form will appear to submit despite the required field, BUT Ontraport will not register the data.
[HideField email]
Will hide the Field with name email (the email field, basically).
[ShowField f1345]
Will show the Field with name f1345 (which must have previously been hidden using [HideField f1345]
.
[HideField #o76aaaa4513-f1345,#o76aaaa4513-f1359][ShowField email]
Will show the unique Fields with ids #o76aaaa4513-f1345 and #o76aaaa4513-f1359, and will hide all the Fields with name email.
[Tabs
#%id_of_target_block_01%
,#%id_of_target_block_02%
]
This Shortcode will create a system of Tabs from your Blocks automatically, meaning it will hide and show the Blocks based on the Anchor clicked.
You will then simply need to link buttons to #%id_of_target_block_01%
and #%id_of_target_block_02%
so your Visitors can use the Tabs feature.
By default, all the blocks that make up the tabs will be hidden. If you want a specific block to be displayed when the page loads, you can use the [HideBlock #%id_of_target_block%]
Shortcode right after the [Tabs]
Shortcode.
You can have as many [Tabs]
as you want using this Shortcode.
Attribute | Type | Description | |
---|---|---|---|
#%id_of_target_block_0X% |
ID | The IDs of the different Blocks you want to build into a Tabs system. You can save yourself some time by using our Free Chrome Plugin to find your Block's ID. Required. |
[Tabs #o9a6611924513,#ob8099e4c466e]
Will hide the Blocks with ids #o9a6611924513 and #ob8099e4c466e.
If a user presses a Button linking to a #o9a6611924513, that Block will appear.
If a user then presses #ob8099e4c466e, it will hide the other block (#o9a6611924513) and display the block #ob8099e4c466e in its stead.
[HideBlock #o9a6611924513,#ob8099e4c466e]
[IfAnchor #o9a6611924513]
[HideBlock #ob8099e4c466e]
[ShowBlock #o9a6611924513]
[/IfAnchor]
[IfAnchor #ob8099e4c466e]
[HideBlock #o9a6611924513]
[ShowBlock #ob8099e4c466e]
[/IfAnchor]
Is the equivalent of the previous example, [Tabs #o9a6611924513,#ob8099e4c466e]
.
Name | Description | Example |
---|---|---|
fields | List of fields & variables, separated with commas | my_test_field,$test_variable |
calculation | A calculation, can include fields, variables and numbers | ((field + $variable) / 25) - $var2 |
[Calc
%target_field_01%
,$%variable_01%
=%target_field_02%
+|-|*|/
$%variable_02%
round=x
display
]
This shortcode lets you build anything from very basic calculations (adding or subtracting a number from a field when a button is clicked for example) to highly complex quote forms.
Attribute | Type | Description | |
---|---|---|---|
%target_field_0X% |
#%field_id% or %field_name% |
Because the same Field will have the same name if it is on the page multiple times, you may target a specific Field by targeting its #%field_id% .If you use %field_name% and multiple Fields with the same name are found on the page, all the Fields will be displayed or shown.You can save yourself some time by using our Free Chrome Plugin to find your Field's id or name. |
|
$%variable_0X% |
Variable | A Variable of your choice. Basically a way to give a Name to a Value. This Name can only contain the underscore '_' symbol. | |
round=x |
Keyword | X being how many numbers you want to see after your decimal point but the result will be rounded up or down. Ex : 12,6278 round=0 will show you 13 round=3 : 12.628 |
|
decimal=x |
Keyword | X being how many decimal you want to see after your decimal point. Ex : 12,6278 decimal=0 will show you 12, decimal=3 : 12.627 |
|
display |
Keyword | If you insert this Keyword at the end of your Shortcode, it will display the value set by the [Calc]. |
Please note that :
[Calc $myvar1=5]
[Calc f1234,$myvar2=f5678+$myvar1]
Will Fill the f1234
Field with 5
+ the value of the field f5678
.
[SetVar $var="STRING"]
This shortcode allows you to define a variable, similar to [Calc $var="STRING"] except it will remove any character that Calc could interfere with such as -*/+.
This shortcode allows you to provide a list of options for the user to choose from when filling out a form field : %target_field%
.
[Autocomplete #
%target_field%
options='a,b,c,d'
]
The options
can be provided as a string, with each option separated by a comma.
[Autocomplete #
%target_field_01%
options=#%target_field_02%
]
Or the options
can be provided from the contents of another field : %target_field_02%
.
Attribute | Type / Values | Description | |
---|---|---|---|
%target_field_0x% |
#%field_id% or %field_name% |
Because the same Field will have the same name if it is on the page multiple times, you may target a specific Field by targeting its #%field_id% .If you use %field_name% and multiple Fields with the same name are found on the page, all the Fields will be Filled.You can save yourself some time by using our Free Chrome Plugin to find your Field's id or name. Required. |
|
%options% |
String | Value provided by a string with each option separated by a comma. |
[Autocomplete #oa09d7553999b-title options='Mr,Mrs,Miss,Ms,Master,Sir']
Will allow you to chosse between Mr,Mrs,Miss,Ms,Master,Sir to fill in the Title field.
[ToNumber $mvyar
=[Merge]
]
Will turn a string into a numeric, to remove currency data when merging Price fields for example.
Attribute | Type | Description | |
---|---|---|---|
[Merge] |
Ontraport Merge Field | The Ontraport Merge Field you want to turn to numeric. | |
$mvyar |
Variable | A Variable of your choice. Basically a way to give a Name to a Value. This Name can contain the underscore '_' symbol. |
Can then be displayed/used as a regular variable in Calc :
[Calc $myvar
display]
We created this shortcode because [Calc $price
=[Price]
] didnt work, [Price]
is merged in this format : $10.50 USD
[EncryptBeforeSubmit fields=
%target_field_01%
,%target_field_02%
form=#%id_of_target_block%
key=%public_key%
]
This shortcode is used to encrypt data in fields before it is submitted to a form.
You can use this to let your Visitors submit sensitive data without it ever being sent/stored unencrypted over the Internet.
In Ontraport you will only see an Encrypted version of your visitor's Input, and you will need to use your %private_key%
in order to read it in the future (see below).
Attribute | Type | Description | |
---|---|---|---|
%target_field_0X% |
#%field_id% or %field_name% |
Because the same Field will have the same name if it is on the page multiple times, you may target a specific Field by targeting its #%field_id% .If you use %field_name% and multiple Fields with the same name are found on the page, all the Fields will be displayed or shown.You can save yourself some time by using our Free Chrome Plugin to find your Field's id or name. Required. |
|
%id_of_target_block% |
ID | The ID of the Block that contains the fields you want to Encrypt Before Submit. You can save yourself some time by using our Free Chrome Plugin to find your Block's ID. |
|
%public_key% & %private_key% |
RSA Keys | You will need to generate your keys here : Online RSA Key Generator. We advise you to use an Encryption of at least 512bits. Leave the "Async" box ticked. You can watch our training video to the right for more instructions regarding how to do this. Remember to save your %private_key% very privately.Your %public_key% is the only thing you should be sharing. |
Please note that :
-----BEGIN PUBLIC KEY-----
MFswDQYJKoZIhvcNAQEBBQADSgAwRwJAcEzl7YR3bK7A8r8JlgH3SnDhpSU532Rl
xkPPLzpUpAlq2t6r3aYqX7DKQoKPGA/yvL25efvGQj3APrhWkZZCQwIDAQAB
-----END PUBLIC KEY-----
Remember to remove the top -----BEGIN PUBLIC KEY-----
and the bottom -----END PUBLIC KEY-----
so you can replace %public_key%
with the Key itself and only that (see examples).
[EncryptBeforeSubmit fields=firstname,lastname key=MFswDQYJKoZIhvcNAQEBBQADSgAwRwJAcEzl7YR3bK7A8r8JlgH3SnDhpSU532RlxkPPLzpUpAlq2t6r3aYqX7DKQoKPGA/yvL25efvGQj3APrhWkZZCQwIDAQAB]
Will Encrypt First Name and Last Name before the form is submitted.
Encrypt a message before it's sent to you.
Right Click -> View Source to see the Shortcodes and how we used them.
[SyncFields
%target_field_01%
,%target_field_02%
]
This shortcode will make sure that all the fields with the same name on a page have the same value.
You can use this if you want to build a One Page Survey for example, or a One Page, Mulsti Step checkout form with multiple Form Submissions (the data is sent to Ontraport even if they don't complete every step of the Form) through our MultiStep Shortcode.
Note that you can just add [SynchFields]
to your page to synchronize all the fields of all your forms, but this might slow down your page if you have too many fields or forms.
Attribute | Type | Description | |
---|---|---|---|
%target_field_0X% |
%field_name% |
You can save yourself some time by using our Free Chrome Plugin to find your Field's name. |
[SyncFields]
Will Synchronize all your Form Fields on an Ontraport Page.
[SyncFields email,firstname,lastname]
If you have more than one Email, First Name and Last Name Field on the page, they will be synchronized with each other (all Email Fields will have the same value, all the First Name Fields will have the same value, and so on...).
@ComingSoon
Right Click -> View Source to see the Shortcodes and how we used them.
[SyncCoupon #fieldid,fieldname]
Will synchronize the coupon code into a field on the page.
[EmailVerification field=xxx(default : look for email) reject=risky(level at which we stop) message='Your email is invalid' suggestion=yes/no submit=yes/no]
This Shortcode will check if an email address is valid.
Attribute | Type / Values | Description |
---|---|---|
field= |
#%field_id% or %field_name% |
Because the same Field will have the same name if it is on the page multiple times, you may target a specific Field by targeting its #%field_id% .If you don't provide this, it will check the "email" field by default. |
reject= |
Option | The level of rejection to consider. You can choose from risky , unknown , or undeliverable . The default is undeliverable . You can also include multiple options by separating them with a comma. See below for the description of each level. |
message= |
String | A custom message to display instead of the default verification message. |
suggestion= |
Parameters | yes or no - If yes , and there is a suggested email, it will display a message asking if you meant to use that suggested email instead.The default is yes . |
submit= |
Parameters | yes or no - If no , the form will not be submited unless the email is valid.If yes , the form will be submitted even if the email is not valid, but the message will be displayed. The default is no . |
Rejection level :
reject=risky
risky
result means the email addresses appears to exist, but have quality issues that may result in low engagement or a bounce. This includes emails such as info@, contact@ or admin@reject=unknown
Unknown
occurs when we are unable to get a valid response from the recipient's email server. This may happen when the destination email server is too slow or temporarily unavailable.reject=undeliverable
undeliverable
if the email addresse does not exist, or is syntactically incorrect.[SearchField
TOKEN
FilterListName
field=%field_name%
preview="{%field_name%}
{%field_name%}
" trigger=#selected.{%field_name%}
]
This shortcode will let you transform a field into a searchbox of a filtered list.
Attribute | Type / Values | Description | |
---|---|---|---|
Token | Key | The Token of the object containing your filtered list. Go here : https://app.clickfix.io/clickfixapps/ Select your object and at the bottom of the page get "Your Token :". Required. |
|
FilterListName | Key | The name of the filtered list in which you want to search. The filtered list must have the "Searchable" switch on "Yes". Required. |
|
field= | %field_name% |
You must add a field to the page which will be used as a searchbox. Required. |
|
preview= | "{%field_name%} " |
The information you want to be displayed in the search list. You can use several {%field_name%} separated by a space. |
|
trigger= | #selected.{%field_name%} Or {url} |
The action that will be trigerred when you select a result of your search. |
Live Demo
In this demo we search in the Objects JobPosts
and the filtered list SearchJobs
. In the search field you will see the Job Title and Description preview="{f1800} {f1801}"
. When you select a job you will be redirected to the Dynamic Templates page of that job with trigger={page_104_url}
.
[PhoneVerification field=xxx message='Your number is invalid' submit=no/yes background-color=#XXXXX dropdown-divider-color=#XXXXX dropdown-bg-hover=#XXXXX line-height=39px margin-top=1px margin-left=1px]
This shortcode is used to verify the validity of a phone number.
Attribute | Type / Values | Description |
---|---|---|
field= |
#%field_id% or %field_name% |
Because the same Field will have the same name if it is on the page multiple times, you may target a specific Field by targeting its #%field_id% .If you don't provide this, it will check the "sms_number" field by default. |
message= |
String | A custom message to display instead of the default verification message. |
submit= |
Parameters | yes or no - If no , the form will not be submited unless the phone number is valid.If yes , the form will be submitted even if the phone number is not valid, but the message will be displayed. The default is no . |
You can also add CSS parameters to the shortcode such as :
background-color=
#The background color code
dropdown-divider-color=
#The dropdown divider color code
dropdown-bg-hover=
#The hover color code
line-height=
The heigh of the line in pixel ( px )
margin-top/bottom/left/right=
The heigh of the margin in each the direction you choose in pixel ( px )
[GetAddress
%target_field%
hide=%hide%
language=%language%
gkey=%google_key%
]
This shortcode will let your visitors give you their physical address using just one visible search field, and prefilling the default Ontraport address fields using the searched address.
Note that if you use a Long Text type Field (such as Notes), your Browser will throw a JavaScript Error, but you can dismiss it, it'll work like a charm.
Attribute | Type / Values | Description | |
---|---|---|---|
%target_field% |
#%field_id% or %field_name% |
You must add a field to the page which will be used as a searchbox by your customer. This field will also be populated with the full address. Required. |
|
%hide% |
no |
Will not hide the default Ontraport address fields from your Page (you can still hide them using the [HideField] Shortcode). | |
yes Default. |
Will automatically hide all the default Ontraport address fields from your Ontraport Page. | ||
%language% |
ISO 639-1 Language Codeen (Default) |
Choose a language you wish to use for the search box. | |
%google_key% |
Key | Please follow the instructions below. Required. |
You can also map the different part of the address to fields of your choice like this :
[GetAddress
%target_field%
language=%language%
gkey=%google_key%
address=billing_address1 city=billing_city zip=billing_zip state=billing_state country=billing_country]
If you do this you will need to hide the fields manually.
Notes :
Step 1
Go to the Google Developer Console.
Step 2
Click on “Select Project”. If you have already created a Google Project before, one will automatically be seclected (in this capture, it’s “My Project”).
Step 3
Click on "New Project". You'll be required to enter a name.
Step 4
Once you've picked a name, you'll see a notification at the top right corner while your project is being created.
Once that's done, go back to Step 2 and select your newly created project.
Step 5
Click on “+ ENABLE APIS AND SERVICES”.
Step 6
Search for "Places API" and click "Enable". Then do the same for "Maps JavaScript API".
Step 7
After enabling the Places API, you’ll see the Places API management dashboard. Click on the “Credentials” tab.
Step 8
Click on "To view all credentials or create new credentials visit Credentials in APIs & Services".
Step 9
Click on “Create Credentials” -> “API Key”.
Step 10
Bravo, you now have your API Key which you can use in place of %google_key%
in your [GetAddress] shortcodes.
Note that you have to create a billing account and add a payment method to be able to use the Places API.
To do so go to https://console.cloud.google.com/, click on “Get started for free” and fill up the needed information.
As of September 2019 this feature is being offered free of charge by Google.
You can learn more about Google's Pricing here :
https://developers.google.com/places/web-service/usage-and-billing#basic-data
Right Click -> View Source to see the Shortcodes and how we used them.
[QrScan
#%trigger.anchor%
%redirect_url%={QR}
]
This shortcode will allow you to pop up a QR-Code scanner through a button linking to a #%trigger.anchor%
, allowing your visitor to scan it using a webcam or phone camera.
Once a QR code is successfully scanned, the visitor will be redirected to the %redirect_url%
specified in the shortcode. In the %redirect_url%
, you can use the {QR}
placeholder to insert the data from the scanned QR code.
You can have multiple [QrScan] shortcodes on a page, allowing you to have multiple buttons, redirect URLs, and functions.
Note that you can use Magic Hooks to turn a string into a QR-Code.
This combined with our other tools should let you build very complex QR Systems, covering most use cases from Ticketing to Inventory Management or even Order Tracking. Contact us if you need help.
Attribute | Type / Values | Description | |
---|---|---|---|
#%trigger.anchor% |
Replace this with the anchor button that will trigger the QR-Code Scanner. Required. |
||
%redirect_url% |
The Url the visitor will be redirected to after scanning the QR-Code. | ||
{QR} |
Use as-is | Add {QR} anywhere in your %redirect_url% to use the scanned data. |
|
You can use only a %redirect_url% attribute or the {QR} reference, but at least one of them is Required. |
[QrScan #go.to.login https://app.ontraport.com]
Will let you scan a QR-Code and it will then redirect the user to the Ontraport Login Page. No, it doesn't make any sense to do this.
[QrScan #redirect.qr {QR}]
Will redirect the visitor directly to the scanned data.
[QrScan #search.google https://google.com?q={QR}]
Will search Google.Com for the scanned data.
Three Buttons, Three QR Scanners, Three Functionnalities
Right Click -> View Source to see the Shortcodes and how we used them.
[Signature
%target_field%
]
This shortcode will transform the target field into a signature drawing box, allowing users to sign with their mouse or finger if they are on a touchscreen.
The signature image will be encoded and stored as a "data://" string that can be used as an image src attribute on pages. Note that this will not work in Emails.
You can use this image by simply calling the value of the field in place of the image url in an email or an Ontraport Page.
Attribute | Type / Values | Description | |
---|---|---|---|
%target_field% |
#%field_id% or %field_name% |
You must add a field to the page which will be used as a signature drawing box by your customer. This field will also be populated with the signature and saved upon form submission. Must be a Long Text field in order to store the (long) signature as a String. Required. |
Simple Signature field
Contract Signature Portal
Right Click -> View Source to see the Shortcodes and how we used them.
Our Scheduling Better Field is a set of Shortcodes and Webhooks that will let you build very simple or infinitely complex Appointment Booking Setups.
[Schedule
%target_field%
%public_scheduling_token%]
This shortcode will transform the target Date and Time Field into a Calendar Booking field, allowing your users to pick a free Date and Time on your Calendar.
This will then fill that Date and Time field with the proper Date/Time/Timezone combination, which will then be sent to Ontraport upon form submission.
Note that in order to avoid any Double Booking, you must set your "Log an event into your calendar" webhook in order for the event to be added to your calendar.
Attribute | Type / Values | Description | |
---|---|---|---|
%target_field% |
#%field_id% or %field_name% |
You must add a Date and Time field to the page which will be used to hold our Calendar Booking information. This field will be populated with the proper date/time/timezone and saved upon form submission. Must be a Date and Time field. Required. |
|
%public_scheduling_token% | Key | Your %public_scheduling_token%(click to get it). Required. | |
align= |
Parameter | align=left or center or right With center default.Will let you set how you want to align the calendar within the column it sits. Optional |
[ScheduleTimer token=%public_scheduling_token% block=#%block_id%
display=yes/no]
This Shortcode will set an Ontraport Countdown Timer to the next available time for the Scheduling Module related to your Token.
Attribute | Type | Description | |
---|---|---|---|
token= |
Key | Your %public_scheduling_token%(click to get it). Required. |
|
#%block_id% |
ID | The ID of the block containing the Countdown you wish to set to the proper time. If no #%block_id% is provided, it will default to "All Countdowns". |
|
display=yes/no |
Boolean | Yes (Default) : The timer will be visible, even if the time has already passed.No : The timer will be hidden when the time has already passed.(0) |
This Webhook will add an event to your calendar.
To use this Magic Hook, get your %private_scheduling_token%by visiting the link provided.
Once you have your token, you can simply POST the following Webhook from your Ontraport Campaign:
https://klikfx.com/api/schedule/log-event?token=%private_scheduling_token%
POST Parameters:
Parameter | Type | DESCRIPTION |
---|---|---|
title= |
String | A name for your event. Required. |
&email= |
Ontraport Merge Field | The merge field for the email address of the contact you have an appointment with. In general it will be [Email], unless you use Custom Objects. Required. |
&date= |
Ontraport Merge Field | The merge field for the date of the appointment. This should be a UNIX timestamp formatted field. Must be UNIX Timestamp formatted. Required. |
&description= |
String | A description for your event. |
&location= |
String | A location for your event. |
&block= |
Parameter | yes - Default value, the event will block time on the calendar, equivalent to setting Show me as to Busy in the Calendar UI. .no - The event does not block time on the calendar, equivalent to setting Show me as to Available in the Calendar UI. |
Add the destination URL: https://klikfx.com/api/schedule/log-event?token=[%private_scheduling_token%]
Select webhook method: POST
Add the data to send:
title=Meeting with [First Name] [Last Name]&email=[Email]&description=Please call this person promptly: [SMS Number]&date=[Appointment Date Field unix+0]
Will add an event to your calendar looking like this :
Title : Meeting with John Doe
Description : Please call this person promptly: +1xxxxxxxxxx
Date : Date
This Webhook allows you to populate a contact or object's fields with "click to add to calendar" links for different calendar services. Allowing you to then send an email to the person you're having an appointment with so they can simply add the event to their preferred calendar.
To use this Magic Hook, you will need to get your %private_scheduling_token% and then POST this WebHook from your Ontraport Campaign :
https://klikfx.com/api/schedule/add-to-calendar-links?token=[%private_scheduling_token%]
POST Parameters:
Parameter | Type | DESCRIPTION |
---|---|---|
title= |
String | A name for your event. Required. |
&start= |
UTC Timestamp | The starting date and time of the event, in UTC timestamp format. Required. |
&id= |
Integer | An identifier of the object you want to populate links for. Required. |
&object= |
Integer | An identifier of object type. Default is 0 (Contacts). |
&description= |
String | A description for your event. |
&location= |
String | The location for your event. |
&url= |
String | A web page for your event. |
The rest of parameters are used to describe the configuration of your fields and links you want to get, in following format:
f1234=google&f1235=yahoo&f1236=ics
NB: It is important to note that ICS requires a Long Text field to be used !
Supported providers are:
Provider | Description |
---|---|
google |
An event-adding link for Google Calendar. |
yahoo |
A link for Yahoo Calendar. |
outlook.com |
A link for Outlook.com website. |
ics |
Universal link for many calendars including most of desktop applications, Apple Calendar, Ubuntu Calendar and so on. |
Add the destination URL: https://klikfx.com/api/schedule/add-to-calendar-links?token=[%private_scheduling_token%]
Select webhook method: POST
Add the data to send:
title=Scheduled+Meeting&start=[Date unix+0]&id=[Contact ID]&location=Homestead&url=https://mywebsite.com&f1234=google&f1235=yahoo&f1236=ics
[UploadBox %target_field%
%your_token%
subfolder
=%a_folder_name%
]
Attribute | Type | Description |
---|---|---|
%target_field% |
#%field_id% |
Because the same Field will have the same name if it is on the page multiple times, you may target a specific Field by targeting its #%field_id% .You can save yourself some time by using our Free Chrome Plugin to find your Field's id. Required. |
%your_token% |
Key | You may access our Upload Box Feature and your token by clicking here. Required. |
subfolder = |
Variable or String | All the files uploaded with this uploadbox will be stored within a %a_folder_name% folder. So every different client can have a different folder name.You can Have multiple different subfolder =Variable or String.Exemple : email= $email or email=[Email] Optional |
This hook creates a folder in your UploadBox storage. To use it please obtain your %clickfix_token% and your uploadbox token. Send this webhook from your Ontraport Automation:
https://klikfx.com/a/h/storage-folder?token=[your_clickfix_token]
Parameter | Type | DESCRIPTION |
---|---|---|
&upload= |
UploadBox Token | Your UploadBox token. Required. |
&path= |
String | A path to your desired folder. Please note that path will be sanitized to a path-safe characters (letters, digits, spaces and -._/ ). To create a several nested folders, please use / as a separator.NB: your UploadBox path must contain the [PATH] variable to take effect. Example: folder1/folder2 |
&vars[<name>]= |
Array | Additional variables for your path. If you specified any custom variables in the UploadBox path, provide the values in this parameter. Example: vars[name]=PeterGriffin&vars[email]=awesome.me@example.com |
&object= |
Object ID | The Object ID of the Destination Object you wish to get the data into. If id presents and this parameter is skipped, Contacts object will be updated. Optional. |
&id= |
ID | The ID of the destination object you wish to get the data into. If not provided, no object will be updated. |
&field= |
String | Destination field of object. Receives an URL to directory that was created. If not provided, no object will be updated. |
NB: Only supports Google Drive storages.
NB: The created directory will be shared for reading for anyone with an URL. To prevent that, use "Private Links" setting in your storage.
NB: As a safety measure set by Google we cannot interact with folders that were not created via the API, so you can’t add files or folders to an existing folders, and creating a folder with an existing name will simply create a new folder.
This hook will modify a folder in your UploadBox storage. To use it please obtain your %clickfix_token% and your UploadBox token. Send this webhook from your Ontraport Automation:
https://klikfx.com/a/h/storage-folder-change-path?token=[your_clickfix_token]
Parameter | Type | DESCRIPTION |
---|---|---|
&upload= |
UploadBox Token | Your UploadBox token. Required. |
&path= |
String | A path to your desired folder. Please note that path will be sanitized to a path-safe characters (letters, digits, spaces and -._/ ). To create a several nested folders, please use / as a separator.NB: your UploadBox path must contain the [PATH] variable to take effect. Example: folder1/folder2 |
&vars[<name>]= |
Array | Additional variables for your path. If you specified any custom variables in the UploadBox path, provide the values in this parameter. Example: vars[name]=PeterGriffin&vars[email]=awesome.me@example.com |
&old_path= |
String | The old path to your desired folder. Example: old_path=folder/[ID]/Contracts NB: Choose between &old_path= OR &path_link= . |
&path_link= |
URL | A shared link url (the link you get when you first create your folder). NB: Choose between &old_path= OR &path_link= . |
NB: As a safety measure set by Google we cannot interact with folders that were not created via the API, so you can’t edit the name of a folder that was not created via the API.
[UploadToField %field%]
Will make an upload box that'll allow you to turn an image or any file into a date:// string to be stored inside a long text field.
[Random]
This shortcode generates a random numeric number.
It can be used as a unique identifier for users in a multi-step form if you don’t require their email address as a first step for example. Simply add this shortcode as “prefill” to a hidden field, and use a [SyncFields] shortcode to propagate that randomly generated identifier across your different forms.
It's important to note that using this shortcode requires you to add the fields to your page and hide them using the clickfix Hide shortcodes.
[FillField
%target_field%
with"%keyword%"
]
Will Fill the Field %target_field%
with %keyword%
.
[FillField
%target_field%
with url%url_parameter_01%
,%url_parameter_02%
]
Will Fill the Field %target_field%
with the value of your %url_parameter_01%
, and if not found of your %url_parameter_02%
.
[FillField
%target_field%
with url%url_parameter_01%
,%url_parameter_02%
or"%keyword%"
]
Will Fill the Field %target_field%
with the value of your %url_parameter_01%
, and if not found of your %url_parameter_02%
, and if not found it will Fill it with %keyword%
.
[FillField
%target_checkbox_field%
with%checked/unchecked%
]
Will set your %target_checkbox_field%
as either %checked%
or %unchecked%
.
Attribute | Type / Values | Description | |
---|---|---|---|
%target_field% |
#%field_id% or %field_name% |
Because the same Field will have the same name if it is on the page multiple times, you may target a specific Field by targeting its #%field_id% .If you use %field_name% and multiple Fields with the same name are found on the page, all the Fields will be Filled.You can save yourself some time by using our Free Chrome Plugin to find your Field's id or name. Required. |
|
"%keyword%" |
String (Word or Sentence) | A set Value with which you want to Fill your Field. | |
Checkbox Field Type | If you are dealing with a Checkbox Field Type, use either with checked or with unchecked . |
||
Dropdown Field Type | If you are dealing with a Dropdown Field Type, you can use either Value or Label. | ||
%url_parameter_0X% |
URL Parameter | Replace this with the Parameter(s) you want to get from the URL and send to your Field. |
[FillField email with url email,Email or “Enter Your Email To Continue”]
Will Fill the email
Field with :
[IfField country not 'United States','Australia','Canada']
[FillField state with "My State is not listed”]
[HideField state]
[/IfField]
Will Hide and Fill the state
Field if the selected country
is not United States, Australia or Canada.
[BumpQuantity quantity=
%quantity%
]
Will update the quantity of a product in a Bump.
You will need to active "Allow the buyer to change quantity" for the product in the bump you want to update the quantity of.
A %quantity%
can a numeric or a $var.
[ThisBlock
$var
]
This shortcode will allow you to grab the ID of the surrounding block and store it into a $variable
.
To be used as [loop:ThisBlock $var[Block//ID]] to be able to act on individual blocks generated via Dynamic Blocks.
2 Steps :
1- In the dynamic block, Custom HTML element
[Loop:ThisBlock $blockid[Block//ID]]
[loop:HideElement 4 in $blockid[Block//ID]]
2- In the Custom Code Header
[IfAnchor #show.$ablock]
[ShowElement 4 in $ablock]
[HideElement 5 in $ablock]
[/IfAnchor]
On this demo the shortcodes we used in a dynamic loop block will alow us to get the ID of the block in wich we click the button with this Anchor #show.$blockid[Block//ID]
. And then we will hide the element 5 and show the element 4 only in this block of the loop with the Anchor in the Custom Code.
[CopyFields
%field_name_1%
,%field_name_X%
of#%source_block_id%
to#%target_block_id%
]
This Shortcode will copy all the selected field from one block to the targeted block.
Attribute | Type | Description | |
---|---|---|---|
%field_name_X% |
%field_name% |
All the field you want to copy. You can select as many field as you want, they just needs to be separated by a comma. You can save yourself some time by using our Free Chrome Plugin to find your Field's name. Required. |
|
of #%source_block_id% |
ID | The block ID where the field you want to copy are. You can save yourself some time by using our Free Chrome Plugin to find your Block ID. Required. |
|
to #%target_block_id% |
ID | The block ID where you want to copy the field you selected. Required. |
[CopyFields email,state,city,address,address2,zip,country,firstname,lastname,sms_number of #o67e0646174c8 to #o98335abdbf38]
Will copy the value of the field email, state, city, address, address2, zip, country, firstname, lastname and sms_number found in the block ID #o67e0646174c8 to the block ID #o98335abdbf38
[FillBump
%bump_id%
in#%id_block%
with%checked/unchecked%
]
Will set your bump: %bump_id%
in the block: #%id_block%
as either %checked%
or %unchecked%
.
Attribute | Type / Values | Description | |
---|---|---|---|
%bump_id% |
Bump ID | The Bump id of the bump you want to target. You can save yourself some time by using our Free Chrome Plugin to find your Bump's id. Required. |
|
#%id_block% |
Block ID | Because the same Bump id can be on different block we need the #blockid of the bump you want to target.You can save yourself some time by using our Free Chrome Plugin to find your Block's id. Required. |
|
Bump Field Type | If you are dealing with a Bump Field Type, use either with checked or with unchecked .Required. |
[FillCoupon
%url_parameter%
in#%id_of_target_block%
]
Will Fill and Submit the Coupon Field in the #%id_of_target_block%
Block with the value of your %url_parameter%
.
[FillCoupon
"%coupon%"
in#%id_of_target_block
]
Will Fill and Submit the Coupon Field in the #%id_of_target_block%
Block with %coupon%
.
If no Block ID is provided we will fill the first coupon field we find.
Attribute | Type | Description | |
---|---|---|---|
#%id_of_target_block% |
ID | Because coupon have the same ID if they are in different Blocks, you may target a specific coupon by adding this to your Shortcode. You can save yourself some time by using our Free Chrome Plugin to find your Block's ID. Optional. |
[FillFrame
#%frame_id%
%url_parameter_01%
,%url_parameter_02%
]
It is not possible for a Frame (in our case, an Ontraport Form embedded in a Page) to access parameters from the URL.
This shortcode will let you send those parameters manually to the Frame so you can exploit it (for prefilling Fields for example.
Note that when using Frames you must add the ClickFix import script ( <script src="https://klikfx.com/js/1"></script>
) to both the Page Header and a Custom HTML Block at the Ontraport Form level.
Attribute | Type / Values | Description | |
---|---|---|---|
#%frame_id% |
ID | The ID of the Frame you want to send Data to. When publishing your Form, one of the Parameter is named data-opf-uid . This is what you're looking for. Remember to include the # in your Attribute.Required. |
|
%url_parameter_0X% |
URL Parameter | Replace this with the Parameter(s) you want to Get from the URL and send to your Frame. Required. |
[FillFrame
#%frame_id%
anchor=#%trigger.anchor%
]
This shortcode will let you send those parameters manually to the Frame so you can exploit it with [IfAnchor #%trigger.anchor%
] %[do_something]%
[/IfAnchor].
Attribute | Type | Description | |
---|---|---|---|
#%frame_id% |
ID | The ID of the Frame you want to send Data to. When publishing your Form, one of the Parameter is named data-opf-uid . This is what you're looking for. Remember to include the # in your Attribute.Required. |
|
#%trigger.anchor% |
#Anchor | Replace this with the Anchor Link that will Trigger your Action. Note that in Ontraport, in order to publish a #%trigger.anchor% you must insert a dot "." in the middle of it.So if you build an anchor that will hide a menu for example, it could look like this #hide.menu. Required. |
[FillFrame #p2c185444f23 email,firstname]
Will send the email and first name Parameters from the Browser URL onto the Frame whose ID is #p2c185444f23.
Then in the Frame itself you can do most of the things you would normally do with our Shortcodes on an Ontraport Page such as :
[FillField email with url email][HideField email]
[FromURL
%url_parameter_01%
,%url_parameter_02%
or"%keyword%"
]
Mostly Deprecated : On your Ontraport Pages you can now just do [%url_parameter%]
to get the same functionality. This Shortcode - as most of our Shortcodes - can be used outside of Ontraport Pages though.
This Shortcode will display the Value found in the Browser URL for %url_parameter_01%
. If not found it will look for %url_parameter_02%
, and if this is not found it will display your "%keyword%"
.
Attribute | Type | Description | |
---|---|---|---|
%url_parameter_0X% |
URL Parameter | Replace this with the Parameter(s) you want to display from the URL. Required. | |
%keyword% |
String (Word or Sentence) | Will display the %keyword% if none of your %url_parameter_0X% is found in the URL. |
[FromURL email,Email or "Enter Your Email To Continue"]
Will display :
[MultiStep
#%id_of_target_block%
#%trigger.anchor%
]
This shortcode will :
#%id_of_target_block%
#%id_of_target_block%
to Ontraport.#%trigger.anchor%
when the form located in the block with ID #%id_of_target_block%
is Submitted.The Shortcode [MultiStep] can be used multiple times on a single Ontraport page, allowing for the creation of seamless multi-step experiences for visitors while still saving all data to Ontraport in case they do not reach the final step.
It's important to note that, in general, a unique identifier such as an email address from the URL is needed to identify the contact across different forms. In such cases, our [SyncFields] shortcode can be used to help with this.
It's also noteworthy that when using shipping on an order form in a second block, the address data from the first block may not be automatically populated, so it's necessary to add and hide the address fields on the second block.
Additionally, if "Merge via cookie data" checkbox is enabled in the form settings, it can help to alleviate potential issues that may arise when using multistep forms, such as blank contact creation if fields are not properly synched.
Attribute | Type | Description | |
---|---|---|---|
%id_of_target_block% |
ID | The ID of the Block in which you want to prevent the Form from being automatically Redirected while still Posting its Submited Data to Ontraport. You can save yourself some time by using our Free Chrome Plugin to find your Block's ID. Required. |
|
#%block_id% |
Shortcode | Will Execute your %[do_something]% Shortcode upon your [IfAnchor] being Triggered. |
|
#%trigger.anchor% |
#Anchor | Replace this with the Anchor Link that will be Triggered upon your Form being Submitted. Required. |
|
except=#anchor% |
Parameter | Will prevent the multistep and let the form submit normally if #anchor is found in the url. Useful if you use only one block/form to. |
[MultiStep
#%id_of_target_block%
#%trigger.$variable%
]
You can use your Variable $variable
defined through your [Calc] shortcodes Trigger an Anchor.
Right Click -> View Source to see the Shortcodes and how we used them.
[HideBlock #o76aaaa4513]
[MultiStep #o7dff3cad25e6 #step.2]
[IfAnchor #step.2]
[HideBlock #o7dff3cad25e6]
[ShowBlock #o76aaaa4513]
[Redirect #o76aaaa4513]
[/IfAnchor]
[SyncFields email]
Will :
[Calc $total=f1234]
[MultiStep #o7dff3cad25e6 #add.$total]
[IfAnchor #add.$total]
[Calc f5678=$total+f5678]
[/IfAnchor]
Will make the sum of f5678 and f1234. The found value will then replace the value in f5678 upon form submit.
[Redirect
%url%
]
or
[Redirect
#%anchor%
]
This shortcode will Redirect a Visitor to a %url%
or an #%anchor%
(triggering any related [IfAnchor] in the process).
You are Required. to provide an Anchor or a URL to Redirect the Visitor to.
Other possible syntax :
[Redirect url="%url%"]
Use if you have a complex url that includes parameters.
[Redirect url="%url%?param={fromurl:%url_parameter%}" ]
Will grab a url parameter to append to the redirect url.
[Redirect https://google.com]
Will redirect your Visitor to https://google.com.
[ShowAfter 1min]
[ShowBlock #o7dff3cad25e6]
[Redirect #o7dff3cad25e6]
[/ShowAfter]
Will display the Block with ID #o7dff3cad25e6 after one minute, and scroll the Visitor down to that Block.
[IfAnchor #show.my.block][ShowBlock #o7dff3cad25e6][Redirect #o7dff3cad25e6][/IfAnchor]
Will do the same as above, but upon your Visitor clicking an Anchor Button.
Note that we don't use [IfAnchor #o7dff3cad25e6]
because if you were to do this, the page would immediately redirect you to the Block with ID #o7dff3cad25e6 - which will lead to some odd page behaviour since the Block is still hidden at this point.
[SearchReplace search="A string" replace="Another string" monitor=#%blockid%]
This shortcode will search for a specified string on the page and replace it with another specified string.
It can be useful for translating text on a page, such as in a payment form.
The shortcode includes an attribute "monitor" where you can specify the ID of the block containing the text that needs to be translated, allowing the shortcode to dynamically update the translation as the user interacts with the page.
monitor=#blockid of your payment form
Because the payment form tends to evolve / needs to be retranslated as the user interacts with the page (if they enter a coupon code for example).
[Submit
#%id_of_target_block%
]
This Shortcode will Submit the Form contained in the Block with ID #%id_of_target_block%
.
If no #%id_of_target_block%
is provided, this Shortcode will Submit the first form found on the page.
So for Ontraport Forms, you can simply use [Submit].
Attribute | Type | Description | |
---|---|---|---|
%id_of_target_block% |
ID | The ID of the Block you want to submit. You can save yourself some time by using our Free Chrome Plugin to find your Block's ID. |
[IfAnchor #submit.form]
[Submit #o76aaaa4513]
[/IfAnchor]
Will Submit the Form in the Block with ID #o76aaaa4513 once the #submit.form Anchor is triggered.
[ShowAfter
%time%
]
%[do_something]%
%keyword%
[/ShowAfter]
This shortcode will Trigger one or more Actions - %[do_something]%
- and/or display a String - %keyword%
- after a certain %time%
.
Please note that :
[ShowAfter]
, and a Closing Shortcode, [/ShowAfter]
[ShowAfter][do_something][/ShowAfter]
[ShowAfter]
[do_something]
[/ShowAfter]
Attribute | Type | Description | |
---|---|---|---|
%time% |
Delay | Replace this with your Wait Time. Your delay can be expressed with : Seconds : s,sec,second,seconds Minutes : m,min,minute,minutes Hours : h,hour,hours Required. |
|
%[do_something]% |
Shortcode | Will Execute your %[do_something]% after your %time% . |
|
%keyword% |
String (Word or Sentence) | Will display the %keyword% after your %time% . |
[HideBlock #o7dff3cad25e6]
[ShowAfter 1min]
[ShowBlock #o7dff3cad25e6]
[Redirect #o7dff3cad25e6]
[/ShowAfter]
Will first hite the Block with ID #o7dff3cad25e6, and will then display the Block with ID #o7dff3cad25e6 after one minute, and scroll the Visitor down to that Block.
@ComingSoon
Right Click -> View Source to see the Shortcodes and how we used them.
[TheYear]
Will display the current year.
[Timer type=
%timer_type%
field=%target_field%
display=yes/no
]
This Shortcode will set an Ontraport Countdown on an Ontraport Page to a date and time related to your %timer_type%
and Fill the %target_field%
with a TimeStamp (allowing you to transfer this TimeStamp over to Page 2, or to send it via Email to your Visitor).
Note that your %target_field%
will be hidden automatically.
Your %target_field%
must be either a Numeric, a Text, a Long Text Field or Date & Time Fields.
Values | Description |
---|---|
every_quarter |
Will set the timer to the next quarter of the hour. |
%time% |
Replace with a time of your choice. our delay can be expressed with: Seconds: s,sec,second,seconds Minutes: m,min,minute,minutes Hours: h,hour,hours |
next(day1:time1:tz)(day2,day3:time1,time3:tz) |
Will set the timer to the next combination of day and time found in the chosen timezone. See examples for more information on how to use this case. Timezones can be found here under the TZ database name column Feel free to contact us if you need other options. |
%timestamp% |
A Unix Timestamp |
May be #%field_id%
or %field_name%
. Because the same Field will have the same name if it is on the page multiple times, you may target a specific Field by targeting its #%field_id%
.
If you use %field_name%
and multiple Fields with the same name are found on the page, all fields will be Filled.
You can save yourself some time by using our Free Chrome Plugin to find your Field's ID or Name.
Values | Description |
---|---|
yes (default) |
Will do nothing. |
no |
Will hide the Timer elements that have already reached Zero when the page loads. |
days , hours , minutes , seconds |
You can also specifiy the columns you want to display by adding their names, comma-separated. |
[Timer param=
%url_parameter%
submit=#%id_of_target_block%
]
This Shortcode will collect the TimeStamp from your %url_parameter%
and submit the Form with ID #%id_of_target_block%
once the Timer has expired.
Step 1 : Optin Page : Every Monday and Wednesday at 8pm or every friday or saturday at 6pm Paris Time, whatever comes first
[Timer type=next(monday,tuesday:8pm:Europe/Paris)(friday,saturday:6pm:Europe/Paris) field=#o36ed4c6216c6-f1776 display=no]
Will set the End Time to be whatever comes next between the provided possiblities.
Step 1 : Optin Page : Every Quarter
[Timer type=every_quarter field=#o36ed4c6216c6-f1776 display=no]
Will calculate End Time, in this case the next quarter of the hour, set all Ontraport Countdowns found on the page to this Time, and Fill the Field with ID #o36ed4c6216c6-f1776 with End Time.
It will also hide all countdown elements that have hit 0.
From there we'll assume that :
Step 1 : Optin Page : 10 Minutes in the future
[Timer type=10min field=#o36ed4c6216c6-f1776]
Will calculate End Time, in this case 10 minutes in the future, set all Ontraport Countdowns found on the page to this Time, and Fill the Field with ID #o36ed4c6216c6-f1776 with End Time.
From there we'll assume that :
Step 2 : Confirmation Page
[Timer param=timer submit=#o8c6cc87feff8]
[FillField #o8c6cc87feff8-email with email]
Will set all Ontraport Countdowns found on the page to TimeStamp found in the timer
Parameter from the URL, and will Submit the Form with ID #o8c6cc87feff8 once the Countdowns hit zero.
We prefill the Email Field because we want to make sure the contact is still identified on page 3 (which would generally be a Webinar Page or a "Too Late" Page).
[Today
%format%
(optional) var=%$a_variable_name%
]
Attribute | Type | Description |
---|---|---|
%format% |
String | In addtion you can add specific format code. (Optional, if nothing date_format=long )(See Below) |
date_format= |
Parameter date field format : long , abb , ss , es , ed , dayname , unix , udayname . You can find them Here |
|
long |
Will display Long date. | |
abb |
Will display Short date. | |
ss |
Will display Standard Slash date. | |
sd |
Will display Standard Dash date. | |
es |
Will display European Slash date. | |
ed |
Will display European Dash date. | |
dayname |
Will display Day of the week date. | |
unix |
Will display Unix Time date. | |
%$a_variable_name% |
String | A name for the Variable the value will be stored in. Optional |
Attribute | Type | Example |
---|---|---|
String | ||
Month | M |
1 2 ... 11 12 |
Mo |
1st 2nd ... 11th 12th | |
MM |
01 02 ... 11 12 | |
MMM |
Jan Feb ... Nov Dec | |
MMMM |
January February ... November December | |
Quarter | Q |
1 2 3 4 |
Qo |
1st 2nd 3rd 4th | |
Day of Month | D |
1 2 ... 30 31 |
Do |
1st 2nd ... 30th 31st | |
DD |
01 02 ... 30 31 | |
Day of Year | DDD |
1 2 ... 364 365 |
DDDo |
1st 2nd ... 364th 365th | |
DDDD |
001 002 ... 364 365 | |
Day of Week | d |
0 1 ... 5 6 |
do |
0th 1st ... 5th 6th | |
dd |
Su Mo ... Fr Sa | |
ddd |
Sun Mon ... Fri Sat | |
dddd |
Sunday Monday ... Friday Saturday | |
Day of Week (Locale) | e |
0 1 ... 5 6 |
Day of Week (ISO) | E |
1 2 ... 6 7 |
Week of Year | w |
1 2 ... 52 53 |
wo |
1st 2nd ... 52nd 53rd | |
ww |
01 02 ... 52 53 | |
Week of Year (ISO) | W |
1 2 ... 52 53 |
Wo |
1st 2nd ... 52nd 53rd | |
WW |
01 02 ... 52 53 | |
Year | YY |
70 71 ... 29 30 |
YYYY |
1970 1971 ... 2029 2030 | |
YYYYYY |
-001970 -001971 ... +001907 +001971 Note: Expanded Years (Covering the full time value range of approximately 273,790 years forward or backward from 01 January, 1970) |
|
Y |
1970 1971 ... 9999 +10000 +10001 Note: This complies with the ISO 8601 standard for dates past the year 9999 |
|
Era Year | y |
1 2 ... 2020 ... |
Era | N, NN, NNN |
BC AD Note: Abbr era name |
NNNN |
Before Christ, Anno Domini Note: Full era name |
|
NNNNN |
BC AD Note: Narrow era name |
|
Week Year | gg |
70 71 ... 29 30 |
gggg |
1970 1971 ... 2029 2030 | |
Week Year (ISO) | GG |
70 71 ... 29 30 |
GGGG |
1970 1971 ... 2029 2030 | |
AM/PM | A |
AM PM |
a |
am pm | |
Hour | H |
0 1 ... 22 23 |
HH |
00 01 ... 22 23 | |
h |
1 2 ... 11 12 | |
hh |
01 02 ... 11 12 | |
k |
1 2 ... 23 24 | |
kk |
01 02 ... 23 24 | |
Minute | m |
0 1 ... 58 59 |
mm |
00 01 ... 58 59 | |
Second | s |
0 1 ... 58 59 |
ss |
00 01 ... 58 59 | |
Fractional Second | S |
0 1 ... 8 9 |
SS |
00 01 ... 98 99 | |
SSS |
000 001 ... 998 999 | |
SSSS ... SSSSSSSSS |
000[0..] 001[0..] ... 998[0..] 999[0..] | |
Time Zone | z or zz |
EST CST ... MST PST |
Z |
-07:00 -06:00 ... +06:00 +07:00 | |
ZZ |
-0700 -0600 ... +0600 +0700 | |
Unix Timestamp | X |
1360013296 |
Unix Millisecond Timestamp | x |
1360013296123 |
Attribute | Type | Example |
---|---|---|
Localized Format | String | |
Time | LT |
8:30 PM |
Time with seconds | LTS |
8:30:25 PM |
Month numeral, day of month, year | L |
09/04/1986 |
l |
9/4/1986 | |
Month name, day of month, year | LL |
September 4, 1986 |
ll |
Sep 4, 1986 | |
Month name, day of month, year, time | LLL |
September 4, 1986 8:30 PM |
lll |
Sep 4, 1986 8:30 PM | |
Month name, day of month, day of week, year, time | LLLL |
Thursday, September 4, 1986 8:30 PM |
llll |
Thu, Sep 4, 1986 8:30 PM |
[UpdateQuantity id=%quantity field id%
quantity=%quantity%
]
Will update the quantity of a specific product.
You can get the %quantity field id%
using our Chrome Plugin. Simply highlight Fields IDs and click on the quantity you want to update to Copy the id to your clipboard.
A %quantity%
can a numeric or a $var.
[UpdateQuantity id=5bb873ea-a95e-d523-e918-0ff674497897 quantity=10]
Will update the quantity field to 10.
[Calc $qty=f2185]
[IfAnchor #update]
[UpdateQuantity id=5bb873ea-a95e-d523-e918-0ff674497897 quantity=$qty]
[/IfAnchor]
Will update product quantity with the value of field f2185 when Anchor #update is clicked.
[Validate
%target_field%
%validation_type%
"%validation_message%"
]
This shortcode will prevent a Form Submission if the %validation_type%
deems the content of the %target_field%
non-valid and will display your custom %validation_message%
in place of the Ontraport one.
Attribute | Type | Description | |
---|---|---|---|
%target_field% |
#%field_id% or %field_name% |
Because the same Field will have the same name if it is on the page multiple times, you may target a specific Field by targeting its #%field_id% .If you use %field_name% and multiple Fields with the same name are found on the page, all fields will go through the Validation process.You can save yourself some time by using our Free Chrome Plugin to find your Field's id or name. Required. |
|
%validation_type% |
Type | IBAN will prevent the Submission of the Form with ID %target_field% unless a valid IBAN is entered. Feel free to contact us if you need other options. Required. |
|
Type | Xdigits will prevent the Submission of the Form with ID %target_field% unless the number of digits in the field is equal to X .Required. |
||
"%validation_message%" |
String | Your validation message, inside brackets - " . |
[Validate #o3f5aa1c64e04-f1234 IBAN “Please enter a valid IBAN”]
Will monitor the Field with ID #o3f5aa1c64e04-f1234 and prevent the Submission of the Form with ID #o3f5aa1c64e04 unless a valid IBAN is entered.
If the IBAN is deemed non-valid, then "Please enter a valid IBAN" will be displayed at the Field level.
[Validate #oc20da0737451-office_phone 8digits "Must be 8 digits"]
Will monitor the Field with ID #oc20da0737451-office_phone and will prevent the Submission of the Form unless if the field contains 8 digits.
If the Field does not contains 8 digits, then "Must be 8 digits" will be displayed at the Field level.
@ComingSoon
Magic Hooks provides a set of endpoints that allows you to simplify complex processes by performing multiple tasks through a single webhook.
If you require a Magic Hook that is not currently available, you can request it on the ClickFix Facebook Group and we will add it in!
The URL Shortener allows you to create short, unique, and customized links to send to your clients instead of using PURLs.
To use this feature, you will need to obtain your %clickfix_token% and then POST this WebHook from your Ontraport Campaign :
https://klikfx.com/api/misc/short-url?
Parameter | Required | DESCRIPTION |
---|---|---|
token= |
Yes | Your %clickfix_token% (click to get it). |
&field= |
Yes | The ID of the Field into which you want to Populate the Shortened URL. You may define the field in following formats:
|
&id= |
The ID of the Contact or Object. Optional. If not provided, a new object will be created. |
|
&expiration= |
This will set the date after which your link will stop working. May be defined in following formats:
|
|
&key= |
Adding a key will encrypt the url in our Database with your own password. You can set it explicit, like key=myownkey , or pass key=generate and we'll generate it for you. This key will be added to shortened url like this: https://cfx.ovh/<shortcode>/myownkey , so use it for your advantage.Clickfix URL shortener also applies a second password to encrypt your data. If you do not pass the key, we apply our default encryption key, so your customer data is safe in any case. |
The Hook and all the Parameters above go into the "destination URL" box. The URL you want to shorten goes into the "data to send" box.
To use this Magic Hook, get your %clickfix_token% and then POST this WebHook from your Ontraport Campaign :
https://klikfx.com/a/h/map-to-custom?
Parameter | Type | DESCRIPTION |
---|---|---|
token= |
Key | Your %clickfix_token% (click to get it). Required. |
&sourceObject= |
Object ID | The Object ID of the Source Object you wish to get the data for.36 for Partners Required.. |
&sourceId= |
ID | The ID of the Source Object you wish to get the data for. Required.. |
&object= |
Object ID | The Object ID of the Destination Object you wish to get the data into. Required.. |
&id= |
ID | The ID of the Contact or Object you wish to get the data into. Required. |
&destination_field=source_field |
Field IDs | The id of the destination_field you wish to populate in your Destination Object from the source_field you wish to get the data for in the Source Object.Required. |
(https://klikfx.com/a/h/map-to-custom?token=%clickfix_token%&sourceObject=36&sourceId=[Contact ID]&object=0&id=[Contact ID]&f1234=sales
Will look up affiliate data for Contact [Contact ID]
and add the total number of sales to the field f1234 in that Contact.
The Document To Field Magic Hook will read a doc, docx or pdf document and will send its content to a field.
To use this Magic Hook, get your %clickfix_token% and then POST this WebHook from your Ontraport Campaign :
https://klikfx.com/a/h/doc2field?
Parameter | Type | DESCRIPTION |
---|---|---|
token= |
Key | Your %clickfix_token% (click to get it). Required. |
&object_id= |
Object ID | The Object ID of the object you wish to update with file URL. Default value is 0 (Contacts object). |
&id= |
ID | The ID of the object you wish to update with file URL. Required. |
&field= |
Field ID | The ID of the field where the URL of the generated PDF file will be stored. Required. |
&file= |
string | The URL of the file whose content you want to send to a field. Required. |
&type= |
Parameters | The type : html (default) / text of the content you want to get. Required. |
The Linkedin Parser Magic Hook will read a linkedin profile page and will extract its content to a field.
To use this Magic Hook, get your %clickfix_token% and then POST this WebHook from your Ontraport Campaign :
https://klikfx.com/a/h/linkedin-scrapper?token=%clickfix_token%
PARAMETER | TYPE | DESCRIPTION |
---|---|---|
token= |
Key | Your ClickFix Token (click to get it). Required. |
&object_id= |
Object ID | The Object ID of the Object onto which you want to Populate the Response.0 for Contacts (Required). |
&id= |
ID | The ID of the Contact or Object. Required. |
&field= |
Field ID | The ID of the Field you want to Populate (must be a Long Text Type Field). Required. |
&type= |
Parameters | The type : html / text (default) of the content you want to get. |
url= |
string | The URL of the linkedin webpage that you want to convert. Required. |
To use this Magic Hook, get your %clickfix_token%. Please note that your token must have a "Format value" permission enabled. Then POST this WebHook from your Ontraport Campaign:
https://klikfx.com/a/h/format?token=
%clickfix_token%
Format webhook supports any currency and decimal/thousand separators supported by Ontraport.
Parameter | Type | DESCRIPTION |
---|---|---|
&%target_field%=%value% |
Destination | The %value% you want pushed into the %target_field% . Multiple fields can be provided. Example: &f1234=$15.99USD&f1235=99.55 Required. |
&object_id= |
Object ID | The Object ID of the Destination Object you wish to get the data into. If id presents and this parameter is skipped, Contacts object will be updated. Optional. |
&id= |
ID | The ID of the destination object you wish to get the data into. Required. |
&type= |
String | Type of formatting. Default value is number . See list of valid types below. |
Type | Description | Example Value | Example Conversion |
---|---|---|---|
number |
Converts the value into a number with 2 decimals. | 10.299.300,44$ USD | 10299300.44 |
round |
Rounds the value. | 15.55$ | 16 |
floor |
Returns the largest integer less than or equal to a given number. | 15.55$ | 15 |
ceil |
Rounds a number up to the next largest integer. | 23.33$ | 24 |
To use this Magic Hook, get your %clickfix_token%. Please note that your token must have a "Phone and Email Verification" permission enabled. Then POST this WebHook from your Ontraport Campaign:
https://klikfx.com/api/misc/check-email?token=
%clickfix_token%
Parameter | Type | DESCRIPTION |
---|---|---|
email= |
String | An email address to validate. Required. |
&id= |
ID | The ID of the destination object you wish to get the data into. Optional. |
&object_id= |
Object ID | The Object ID of the Destination Object you wish to get the data into. If id presents and this parameter is skipped, Contacts object will be updated. Optional. |
&destination_field=source_field |
Field IDs | For each response field, you can provide a respective object field to populate data into. See Data Map. Optional, only works together with id . |
The payload you provide can contain a map of object fields and response fields. Said map, if passed, will update your destination object with response data.
Available response fields:
Field | Type | Comment |
---|---|---|
String | Normalized version of the provided email address. | |
user | String | The user (mailbox) of the provided email address. |
domain | String | The domain of the provided email address. |
free | Boolean | true if the email is from a free provider (gmail, hotmail, etc). |
did_you_mean | String | Returns a suggested email if a possible spelling error was detected. |
result | String | The result of validation. Possible values: deliverable , risky , unknown , undeliverable . See Data map: result values |
reason | String | Validation result explanation. Possible values: accepted_email , role , accept_all , disposable , unavailable_smtp , timeout , no_connect , rejected_email , invalid_domain , invalid_email . See Data map: reason values |
For example, if you wish to populate your object with domain, result and reason, simply add the following:
f1234=domain&f1235=result&f1236=reason
Value | Explanation |
---|---|
deliverable | Deliverable means it is confirmed the mailbox exists and the email addresses are safe to send. |
risky | A risky result means the email addresses appears to exist, but have quality issues that may result in low engagement or a bounce. Use caution when sending to risky addresses. Accept-All, Disposable, and Role addresses are classified as Risky |
unknown | Unknown occurs when it is impossible to get a valid response from the recipient's email server. This usually happens when the destination email server is too slow or temporarily unavailable. |
undeliverable | Undeliverable email addresses do not exist, or are syntactically incorrect. |
Value | Explanation |
---|---|
accepted_email | TheChecker has confirmed the mailbox exists and the email addresses are safe to send. |
role | Role means the mailbox exists, but is a role account (contact, support, sales, admin). |
accept_all | Accept all means the domain of the email accept all emails sent to any mailbox. So, we cant't confirm if it really exists or not. |
disposable | Disposable means the mailbox exists, but is from a disposable/temporary domain. |
unavailable_smtp | Unavailable SMTP is an unknown result, because the mail server returned an unexpected and temporarily response during the verification process. |
timeout | Timeout is an unknown result, because the mail server takes too long to answer our requests. |
no_connect | No connect is an undeliverable result, because the mail server is unreachable, and is not safe to send. |
rejected_email | Rejected email means it is undeliverable, because the provider confirmed the mailbox doesn't exists. |
invalid_domain | Invalid domain means it is undeliverable, because the domain doesn't exists or the MX server is misconfigured. |
invalid_email | Invalid email means it is undeliverable, because the email has an incorrect syntax. |
To use this Magic Hook, get your %clickfix_token%. Please note that your token must have a "Phone and Email Verification" permission enabled. Then POST this WebHook from your Ontraport Campaign:
https://klikfx.com/api/misc/check-phone?token=
%clickfix_token%
Parameter | Type | DESCRIPTION |
---|---|---|
phone= |
String | A phone number to validate. Required. |
&country_code= |
String | Two-letter country code of a phone number. Passing this value will return invalid response if given phone number doesn't belong to this country. Optional. |
&id= |
ID | The ID of the destination object you wish to get the data into. Optional. |
&object_id= |
Object ID | The Object ID of the Destination Object you wish to get the data into. If id presents and this parameter is skipped, Contacts object will be updated. Optional. |
&destination_field=source_field |
Field IDs | For each response field, you can provide a respective object field to populate data into. See Data Map. Optional, only works together with id . |
The payload you provide can contain a map of object fields and response fields. Said map, if passed, will update your destination object with response data.
Available response fields:
Name | Example |
---|---|
status | valid |
line_type | mobile |
carrier | Vodafone |
location | United Kingdom |
country_name | United Kingdom |
country_timezone | Europe/London |
country_code | GB |
international_format | +44 7766 733573 |
local_format | 07766 733573 |
e164_format | +447766733573 |
can_be_internationally_dialled | yes |
For example, if you wish to populate your object with carrier, line type and "Can be internationally dialled" trait, simply add the following:
f1234=carrier&f1235=line_type&f1236=can_be_internationally_dialled
This Magic Hook allows you to retrieve and populate data about affiliates into a specific field of a Contact or Object record in your Ontraport account.
To use this hook, you will need to first get your %clickfix_token% and then POST this WebHooks from your Ontraport Campaign.
https://klikfx.com/api/misc/affiliate-report?
Parameter | Type | DESCRIPTION | Required |
---|---|---|---|
token= |
Key | Your %clickfix_token% (click to get it). |
Yes |
&totals[%target_field%]=%value% |
Destination | The %value% you want pushed into the %target_field% . For all available values, see below. |
Yes |
&conditions[%type%]=value |
Condition | There are two possible %type% : id or product . For further explanation, see below. |
Yes |
&destObject= |
Destination Object | Default : Contacts (0). | |
&destObjectId= |
Destination Object ID | ID of the Object or Contact you wish to get the data into. | Yes |
It's important to note that the conditions[id]=[Contact ID]
is always required.
This webhook will calculate some data about affiliates and put it into your destination object. For example, you can get a number and sum of sales into a specific fields of your partners contact and use it in your marketing campaigns or reports.
Additionally, you can specify multiple values to calculate in the totals
variable. For example, this code: &totals[f1234]=sales&totals[f1235]=visits
will put a total of sales by this affiliate in the field f1234
and a number of visits in the field f1235
of a contact record.
Parameter | DESCRIPTION |
---|---|
lead | Partner leads |
visits | Partner visits |
optins | Partner leads |
sale | A number of partner sales |
owed | An amount of commission you owe to a partner |
sales | Total sales |
commish | -- |
refund | A number of refunds |
refundtotal | A total of refunds |
commish_total | -- |
product_sales | A number of sales by product. |
approved_commission_count | A number of approved affiliate sales. |
approved_commission_total | A total of approved affiliate sales. |
approved_commission_amount | Amount of approved affiliate commission. |
pending_commission_count | A number of pending affiliate sales. |
pending_commission_total | A total of pending affiliate sales. |
pending_commission_amount | Amount of pending affiliate commission. |
Sub-affiliates are those affiliates who had been referred by your affiliate.
Parameter | DESCRIPTION |
---|---|
sub_owed | An amount of commission you owe to all sub-affiliates |
sub_visits | Sub-affiliates visits |
sub_optins | Sub-affiliates leads |
sub_sale | A number of sales by sub-affiliates |
sub_sales | A total of sales by sub-affiliates |
sub_commish | -- |
product_sub_sales | A number of sales by product. |
A condition for affiliate ID is required and is set in this format: &conditions[id]=[Contact ID]
.
A condition for product is optional. It is set in this format: &conditions[product]=[Product ID]
. If set, this product condition will affect the following variables:
product_sales
product_sub_sales
approved_commission_count
approved_commission_total
approved_commission_amount
pending_commission_count
pending_commission_total
pending_commission_amount
https://klikfx.com/api/misc/affiliate-report?token=%clickfix_token%&totals[f1234]=lead&conditions[id]=[Contact ID]&destObjectId=[Contact ID]
Will get the number of leads for a specific contact and push that number to field f1234 in that contact.
The PDF Converter Magic Hook is a helpful tool for converting your Ontraport pages into neat PDF files and uploading them into your storage. The URL of the file will be storred in a specified field of a Contact or custom object.
To use this Magic Hook, get your %clickfix_token% and then POST this WebHook from your Ontraport Campaign :
https://klikfx.com/a/h/generate-upload-pdf?token=%clickfix_token%
This Hook supports both POST and GET methods, though it's highly recommended to use POST payload, to avoid any problems with your URL encoding.
Parameter | Type | DESCRIPTION |
---|---|---|
url= |
string | The URL of the webpage that you want to convert to a PDF file. Required. |
Ontraport Object parameters | ||
&object_id= |
Object ID | The Object ID of the object you wish to update with file URL. Default value is 0 (Contacts object). |
&id= |
ID | The ID of the object you wish to update with file URL. Required. |
&field= |
Field ID | The ID of the field where the URL of the generated PDF file will be stored. Required. |
File parameters | ||
&name= |
string | A file name to give your PDF. It will replace the [FILENAME] parameter in your upload box path. If no name is provided we will use the page Title (in SEO Parameters) as File Name. NB: Both custom and generated filenames will be sanitized (i.e. all spaces replaced with underscore, all special characters replaced with dash) to provide compatibility with storage file system. |
&storage= |
string | The token of the Uploadbox instance to hold your files. Required. |
&orientation= |
string | PDF Page orientation. Supports values such as P (Portrait) and L (Landscape). Default orientation is P . |
&size= |
string | PDF Page size. Support values from "A3" to "A6". Default value is "A3". |
NB: Please note that conversion may take a while. Despite this period is very short, it's not recommended to create any campaign actions right after you triggered the webhook. Instead, make a trigger on field update.
To use this Magic Hook, get your %clickfix_token% and then POST this WebHook from your Ontraport Campaign :
https://klikfx.com/a/h/complete-task?
Parameter | Type | DESCRIPTION |
---|---|---|
token= |
Key | Your %clickfix_token% (click to get it). Required. |
&object= |
ID | The ID of the object type to mark a task as complete for. Defaults to 0 for a contact object. |
&id= |
ID | The ID of the contact or object. Required. |
&tasktemplate= |
ID | The ID of the task template. To find it go edit the Task Template, your ID will be in the URL. Required. |
&outcome= |
STRING | The outcome of the task marked as complete. Must match one of your task outcomes. Required. |
This magic hook will find a task for a specific contact or object and mark it as complete.
To use this Magic Hook, get your %clickfix_token% and then POST this WebHook from your Ontraport Campaign :
https://klikfx.com/a/h/qr?
Parameter | Type | DESCRIPTION |
---|---|---|
token= |
Key | Your %clickfix_token% (click to get it). Required. |
&object= |
Object ID | The Object ID of the Object onto which you want to Populate the QR Code.0 for Contacts (Default.). |
&id= |
ID | The ID of the Contact or Object. Required. |
&field= |
Field ID | The ID of the Field you want to Populate (must be a Long Text Type Field). Required. |
&data= |
String | The String you wish to turn into a QR Code. Note that if you wish to set a URL as data, you'll need to encode that URL, except for your Merge Fields. Required. |
&storage= |
string | The token of the Uploadbox instance to hold your files. If no Storage is provided, we will return the QR code encoded as a string |
&filename= |
parameter | Set a name for your image. Optional. |
To use this Magic Hook, you will first need to get your %clickfix_token%, ensure that you have given it both ClickFunnels permissions, and then add this WebHook :
https://klikfx.com/a/h/clickfunnels-purchase/%clickfix_token%
...in the webhook section of your Funnel in ClickFunnels, which you’ll find under “Settings” when editing a Funnel.
Purchases will be logged :
The Webhook Screen should look like this in ClickFunnels :
To use this Magic Hook, get your %clickfix_token% and then POST this WebHook from your Ontraport Campaign :
https://klikfx.com/a/h/twilio-sms?
Parameter | Type | DESCRIPTION |
---|---|---|
token= |
Key | Your %clickfix_token% (click to get it).Required. |
&account_sid= |
Key | Your TWILIO account sid (Secret ID). It can be found here. Required. |
&auth_token= |
Key | Your TWILIO auth token. It can be found here. Required. |
&twilio_number= |
Phone Number | Your TWILIO SMS number. Required. |
&send_to= | Phone Number | SMS Number of the person you want to write to. Required. |
&message= | String | Your Message. Required. |
&media= | String/Array | Media link(s). You can attach one or more images to the message. If your addressee has United States or Canada phone number, they will receive an MMS message, otherwise it will be a regular SMS message with short links to your media. To send multiple links, do so: &media[]=Link1&media[]=Link2 (note the brackets).Optional. |
This MagicHook changes or removes a partner from open order.
To use this Magic Hook, get your %clickfix_token%, add the permission for this Magic Hook and then POST this WebHook from your Ontraport Campaign :
https://klikfx.com/a/h/change-partner?token=[%YOUR_CLICKFIX_TOKEN%]
Parameter | Type | DESCRIPTION |
---|---|---|
&contact_id= |
ID | The ID of the contact : [Contact ID]. Required. |
&product_id= |
ID | The ID of the product that must be contained in the open order you wish to change. Required. |
&affiliate_id= |
ID | The ID of a partner you wish to set for an open order. By default (if this parameter is omitted) partner (affiliate) ID will be removed from the open order. You can also pass 0 to remove partner explicitly. If this parameter contains valid partner (affiliate) ID it will be set as a partner in this open order. |
To use this Magic Hook, get your %clickfix_token%, add the permission for this Magic Hook and then POST this WebHook from your Ontraport Campaign :
https://klikfx.com/a/h/add-product?
Parameter | Type | DESCRIPTION |
---|---|---|
token= |
Key | Your %clickfix_token% (click to get it). Required. |
&id= |
ID | The ID of the contact : [Contact ID]. Required. |
&product_id= |
ID | The ID of the product that must be contained in the open order we wish to change. Required. |
&new_product_id= |
ID | The ID of the product that will be added in the open order we wish to change. Required. |
&amount= |
Numeric | The new "Next Charge Amount" for that Open Order. You can use 99.95 for cents. Optional defaults to 0 |
&recurrence= |
String | Optional parameter that changes a recurrency of a subscription. Valid values for this parameter are: daily , weekly , monthly , quarterly , yearly , which will change subscription length to day, week, month, quarter (3 month), and year respectively. This change will take effect after next charge date. |
To use this Magic Hook, get your %clickfix_token%, add the permission for this Magic Hook and simply POST this WebHook from your Ontraport Campaign :
https://klikfx.com/a/h/swap-subscription?
Parameter | Type | DESCRIPTION |
---|---|---|
token= |
Key | Your %clickfix_token% (click to get it). Required. |
&id= |
ID | The ID of the contact : [Contact ID]. Required. |
&product_id= |
ID | The ID of the product that must be contained in the open order we wish to change. Required. |
&new_product_id= |
ID | The ID of the product that will now be charged in the open order we wish to change. Required. |
&amount= |
Numeric | The new "Next Charge Amount" for that Open Order. You can use 99.95 for cents. Required. |
&recurrence= |
String | Optional parameter that changes a recurrency of a subscription. Valid values for this parameter are: daily , weekly , monthly , quarterly , yearly , which will change subscription length to day, week, month, quarter (3 month), and year respectively. This change will take effect after next charge date. |
Note that if two open orders are found containing the same product we will only change the last created.
This magic hook will look for the last card added by a Contact and set it as default credit card.
To use this Magic Hook, get your %clickfix_token%
and then send a POST payload to this address:
https://klikfx.com/a/h/change-default-card?
Required parameters
Parameter | Type | Required | DESCRIPTION |
---|---|---|---|
token |
Key | yes | Your %clickfix_token% (click to get it). |
id |
int | yes | ID of the contact |
https://klikfx.com/a/h/change-default-card?token=abcdef&id=12345
Will look up the Contact with ID 12345, will find the last card he inputed and will set it as default credit card.
To use this Magic Hook, get your %clickfix_token% and then POST this WebHook from your Ontraport Campaign :
https://klikfx.com/a/h/change-charge-date?
Parameter | Type | DESCRIPTION |
---|---|---|
token= |
Key | Your %clickfix_token% (click to get it). Required. |
&id= |
ID | The ID of the contact : [Contact ID]. Required. |
&from= |
today or order |
Do we change the date based on today 's date (Default.) or based on order date found in the Open Order? |
&product= |
Product ID | The ID of the Product you want to look up in the Contact's Open Orders (if no Product ID is provided, we will change the Last Open Order create for that Contact). |
&timezone= |
TimeZone | Your preferred timezone. You can find it in the “TZ” column by clicking here. If no timezone is specified, we will operate in Standard Time. Not setting a timezone might cause issues where some of your orders might get charged a day in advance because it is already that day in GMT (Standard Time) but not in your timezone. |
&type= &offset= |
type and offset combination |
Pick a type and an offset from the table below. Required. |
type | offset |
---|---|
nextday | Numeric 1 to 7 (Monday to Sunday) |
nextmonth | Numeric from 1 to 31 (if no 31 in that month, set to last day of the month) |
days | A number of days in the future |
weeks | A number of weeks in the future |
months | A number of months in the future |
https://klikfx.com/a/h/change-charge-date?
token=clickfix_token&id=[Contact ID]&type=nextmonth&offset=1
Will move an open order next charge date to the first of the next month from today.
https://klikfx.com/a/h/change-charge-date?
token=clickfix_token&id=[Contact ID]&type=days&offset=30&from=order
Add 30days to the next charge date in the order, giving de facto 30days free.
https://klikfx.com/a/h/change-charge-date?
token=clickfix_token&id=[Contact ID]&type=nextmonth&offset=1
followed by
https://klikfx.com/a/h/change-charge-date?
token=clickfix_token&id=[Contact ID]&type=nextday&offset=1&from=order
would push the next charge date to the 1st Monday of the next month.
This magic hook serves to log or charge a transaction into your account.
To use this Magic Hook, get your %clickfix_token%
and then send a GET or POST payload to this address:
https://klikfx.com/a/h/log-transaction
Required parameters
Parameter | Type | Required | DESCRIPTION |
---|---|---|---|
token |
Key | yes | Your %clickfix_token% (click to get it). |
products |
Array | yes | The array of products you wish to include into a transaction. Array Keys represent the identifiers of products (either names or ID's), and values are configurations. See Product configuration) |
email |
yes unless contact_id is provided |
An email to identify your contact. If contact with this email does not exist, a new one will be created. | |
contact_id |
int | yes unless email is provided |
An ID of existing contact. |
Transaction Parameters:
Enhanced transaction data. All parameters are optional except gateway
(which is required under certain conditions).
Parameter | Type | DESCRIPTION |
---|---|---|
type |
string | Can be either a log or charge . In case of charge , Ontraport will actually try to charge money from your customer, otherwise transaction will just get into a purchase log. Default value is log . Note that log will only work for one off transactions, you can't log a payment plan or a subscription you can only charge it. |
time |
integer | Transaction date represented in seconds since the Unix Epoch (i.e. Timestamp). If not set, current time will be taken. |
timezone |
string | Transaction timezone. Default value is "UTC". This parameter only affects trial_end product parameter. |
order_id |
integer | External order ID of transaction. Useful for integration with other APIs. |
invoice |
integer | Invoice template one's willing to use. If not set, -1 will be used, which means to suppress invoice sending. Click here to view your Ontraport Invoices. |
gateway |
integer | A payment gateway ID. Please note that you have to pass a true gateway ID (which starts from one), not the external gateway ID (which usually consists of six digits). This means, unless you have 100k+ gateways created in your OAP, the true gateway ID is going to be one or two digits. Click here to view your gateways. Required if type is charge . |
cc_id |
integer | Customer credit card ID. If not provided, Ontraport will try to charge default customer card. |
tax |
integer | Identifier of transaction tax (see https://app.ontraport.com/#!/taxes/listAll in your Ontraport account). With this parameter provided, products that have taxable=1 will be taxed. |
custom_data |
array | To provide additional parameters to transaction, pass them to the custom_data as following: &custom_data[FIELDNAME]=[FIELDVALUE] . This data will be merged with previously built transaction data, with the priority of custom data. |
Contact Parameters
You can pass some contact data together with transaction data. All parameters are optional. Note that those parameters will replace the data you already have.
Parameter | Type | DESCRIPTION |
---|---|---|
firstname |
string | First name of the contact. |
lastname |
string | Last name of the contact. |
country |
string | An ISO Alpha-2 code of country (i.e. US, BR, FR etc). |
city |
string | Contacts city. |
address |
string | Contacts address. |
address2 |
string | Second line of contacts address. |
zip |
string | Zip code. |
Product configuration comes in standard HTTP query array. The keys of this array are product identifiers (either ID or name), and values may depend of desired purchase type.
The simpliest configuration you can provide is products[10]=25
, which means it's one-time purchase of product with ID=10, for $25. To adjust your sale in a little bit more sophisticated way, you must provide options in following format:
products[ID or Name][Option Name]=Option Value
Available options are:
Option name | Type | Comment |
---|---|---|
type | string | Purchase type. Can be either subscription (creates an open order), one_time (one-time purchase), or payment_plan (3 easy payments of $9.99). |
quantity | int | Amount of product you want to sell. |
price | numeric/money | If not provided, price will be taken from Ontraport product. Also supports money format, i.e. $16,000.00 . Please note that, if you provide zero price, it will still be considered a valid price and won't be replaced by default price. |
taxable | int | Indicates whether or not this product should be taxed. Please note that, for this parameter to take effect, transaction tax parameter should be provided as well. |
The following options are available if type
is subscription
or payment_plan
.
Option name | Type | Comment |
---|---|---|
subscription_count | int | The number of subscriptions. Default is 1. For payment plans, the number of payments. Note that the price should be the charged price every transaction, not the total cost of the product over the payment plan's lifetime. |
subscription_unit | string | Indicates how often a subscription product or payment plan is charged. Options can be: day , week , month , quarter , year . Default is month . |
subscription_fee | numeric/money | The cost of any additional fee for a subscription product. |
trial_period_count | int | Indicates the length of the trial period. Must be used in conjunction with trial_period_unit . |
trial_period_unit | string | A measurement for trial_period count . Options can be: day , week , month , quarter , year . |
trial_end | int | A date un UNIX timestamp format. Indicates the end of the trial period. This parameter overrides the trial_period_count and trial_period_unit parameters. If provided, it is considered that a product will be on trial until this date. |
trial_price | numeric/money | The price of the product during the trial period. |
setup_fee | numeric/money | The cost of of any one-time set-up fee, if applicable. |
setup_fee_when | string | Indicates when the setup fee should be applied. Values can be: immediately , after_trial , on_date . |
setup_fee_date | int | If the value for setup_fee_when is on_date , the date of when the setup fee should be applied in seconds elapsed since the Unix Epoch. |
owner | integer | The ID of the user controlling the product. |
delay_start | integer | The number of days to delay the start of a subscription. |
None of product options are required; though one has to provide at least one to get the product into a transaction. Product options can be multiple and provided as joined by ampersand (&
).
Example:
Let's say we want to sell a treadmill for $1200 and a subscription to a great newsletter about physical exercises for $10 per month.
We want to include two products: one with ID = 2 and one named Treadmill. First product is subscription, which costs $10 per month. Second one is one-time purchase. Thus, we're sending products this way:
products[2][price]=$10.00&products[2][type]=subscription&products[Treadmill]=1200
https://klikfx.com/a/h/log-transaction?token=[YOUR TOKEN]&email=customer@example.com&products[Stairmaster]=1200&products[9]=10&gateway=4&order_id=333&firstname=Victoria
To use this Magic Hook, get your %clickfix_token% and then POST this WebHook from your Ontraport Campaign :
https://klikfx.com/a/h/recurring-invoice?
Parameter | Type | DESCRIPTION |
---|---|---|
token= |
Key | Your %clickfix_token% (click to get it). Required. |
&id= |
ID | The ID of the contact : [Contact ID]. Required. |
&product= |
Product ID | The ID of the Product you want to look up in the Contact's Open Orders (if no Product ID is provided, we will change all the open orders for that contact). |
&toggle= |
yes or no |
Will change the "Send an invoice for every recurring payment" setting to either yes (Default.) or no . |
https://klikfx.com/a/h/recurring-invoice?token=%clickfix_token%&id=1234&product=1&toggle=yes
Will look up an Open Order containing the Product with ID 1 for the contact with ID 1234, and will set it to send an Invoice every time the Open Order is charged.
To use this Magic Hook, get your %clickfix_token%, add the permission for this Magic Hook and then POST this WebHook from your Ontraport Campaign :
https://klikfx.com/a/h/update-order?
Parameter | Type | DESCRIPTION |
---|---|---|
token= |
Key | Your %clickfix_token% (click to get it). Required. |
&id= |
ID | The ID of the contact : [Contact ID]. Required. |
&product_id= |
ID | The ID of the product that must be contained in the open order we wish to change the amount for. Required. |
&amount= |
Numeric | The new "Next Charge Amount" for that Open Order. |
Note that if two open orders are found containing the same product we will only change the last created.
This magic hook serves to update a transaction in your account.
To use this Magic Hook, get your %clickfix_token%
and then send a GET payload to this address:
https://klikfx.com/a/h/update-transaction-status
Required parameters
Parameter | Type | Required | DESCRIPTION |
---|---|---|---|
token |
Key | yes | Your %clickfix_token% (click to get it). |
status |
string | yes | The desired status of transaction. Can be one of the following: void ,write-off ,declined ,paid ,refunded . Be extra careful with refunded status: it will actually withdraw funds from your account to return it back to customer. |
Transaction Query:
Those parameters are to find your transaction in OAP.
NB: Only ONE parameter of the following should present in your request.
Parameter | Type | DESCRIPTION |
---|---|---|
id |
integer | Transaction ID. |
order_id |
integer | External order ID of transaction. |
contact_id |
integer | Contact ID. Last transaction of this contact will be taken. |
This Magic Hook provides a possibility to retrieve a short report of objects and optionally put them into a destination object record.
To use this Magic Hook, get your %clickfix_token%
and then send a GET payload to this address:
https://klikfx.com/a/h/report?token=[Your Magic Hooks Token]
Parameters
Name | Type | Default | Description |
---|---|---|---|
object | integer | 0 | Identifier of object you're willing to get a report for. By default, it's Contacts object (ID 0). |
conditions | array | [] | Criteria of report. Must be given in standard query array, key represents a field and value represents condition. Example: conditions[f1234]=38 |
totals | array | [] | Report totals. Must be given in standard query array, values must represent total columns. Note that total columns must be defined in Ontraport Object settings. To get a number of objects, include "qty" in your list. Example: totals[]=f1233&totals[]=qty , totals[]=qty . Also supports total[dest]=source format (see Using multiple destination fields). |
destObject | integer | 0 | Destination object ID. Example: destObject=10002 . |
destObjectField | string | Destination object field. Since destination object ID has default value, providing a field parameter will cause creation or updating of object record in Ontraport. Example: destObjectField=f1233 . To fill several fields, one must declare destination fields for each total (see Using multiple destination fields) |
|
destObjectId | integer | Destination object record ID. If destObjectField is provided, empty value of this parameter will cause new object record to appear. Otherwise, magic hook will try to update object record with given ID. Example: destObjectId=68 . |
|
groupId | integer | If you are looking for the SUM of fields accross objects then Ontraport requires you to do a few things. First the field must be set to "Show total at the top". Second you must create a Group of Objects using the same user you have set for your ClickFix API Keys in Ontraport. Third you must add the field as a column. Fourth you must go here and do sort:id and sortdir:desc. That'll let you find the ID of your Group, which you can then use in this parameter. If no groupId is provided then we will default to the All group. |
You can define several conditions for your report. They come in a standard query array format:
conditions[firstname]=Anna&conditions[country]=US
Also, there are several special formats for conditions.
Condition Preset: report engine supports several presets for conditions. To use a preset, just pass its name like a regular condition value: conditions[fieldname]=PresetName
. For example, conditions[date]=LastMonth
. Supported presets are:
Date condition: you can define a date condition by setting up a base date and an optional interval to add to it or substract from it.
now
or in dd-mm-yyyy
format. Please note that this format is compatible with Ontraport European Dash date format.01-01-0000
will be interpreted as January 1st of the current year.<+/-><offset><unit:day,week,month,year>
. This way, now-2week
defines a day 2 weeks ago, and 01-01-2019+1year1day
is for Jan 02, 2020.Single date condition always means 1 day, from 00:00:00 to 23:59:59. To set up a date range wider than 1 day, see Range below.
Range: to define a range, you have to set up begin and end of range in this fashion:
conditions[f1234][begin]=10&conditions[f1234][end]=50
. This will return all records where f1234 is between 10 and 50.
You can also set only one value for the range: conditions[f1234][end]=50
. This will return all records where f1234 is below 50.
Date Range
Each border of range can be a date. To set it up, see Date condition.
If you set up a date range, please note that both first and last days are included in a range.
For example, conditions[f1234][begin]=01-01-0000&conditions[f1234][end]=31-03-0000
defines a first quarter of current year.
List:
To define a generic list, simply pass all the list values separated by comma. This way, conditions[f1234]=0,50
will return records with f1234=0 or f1234=50.
Empty values:
There are several empty values supported by report engine:
Name | Declaration | Comment |
---|---|---|
NULL | &conditions[f1234]=NULL |
A NULL value. |
Empty string | &conditions[f1234]= |
An empty string. Please note that empty string does not require any value following the = character. For instance, condition of two fields, one of which should be empty string, will look like this: conditions[f1234]=&conditions[f1235]=1 . |
0 | &conditions[f1234]=0 |
An empty value for numerics. |
Please note that it's necessary to pick a correct empty value for a certain field type. Text fields, when not containing any value, can be either NULL or empty string.
Lists also support NULL and empty values. Thus, the safest way to check if a text field is empty is &conditions[f1234]=,NULL
(note the comma). This means that f1234
will be checked against empty string or NULL value.
All other values which do not fit the formats above, will be considered as ordinary values. I.e., conditions[firstname]=Anna
will return records where "firstname" field is Anna.
Passing empty conditions or not passing them at all will get all objects in count.
All total fields except quantity (qty
) must also be defined in Ontraport object administration as totals. When you define custom object numeric field in Field Editor, you can see that Ontraport allows you to pick one of the options:
Picking "Show total at the top" or "Show average at the top" will result in defining field as total. Thus, this magic hook will be available to return the totals of this field.
Besides that, you can always get a number of objects which meet your criteria. To do that, pass a keyword qty
as field name: totals[]=qty&totals[]=f1234
.
It could happen that one needs to update several fields with totals by several columns in one request. Instead of repeating the webhook to fill all destination fields, one can use special syntax for declaring desired totals: totals[Destination Field 1 ID]=qty&totals[Destination Field 2 ID]
Example:
Let's say destination object has fields like (f1234) "Quantity" and (f1235) "Total sum". We want to fill them respectively with source object amount and total by column f1236. Thus, totals must be set in this fashion:
totals[f1234]=qty&totals[f1235]=f1236
Using totals without setting destination fields, like totals[]=qty&totals[]=f1234
, will lead to {qty:1,f1234:1200}
value in destObjectField
field.
Using multiple destination fields together with destObjectField
is deprecated.
This magic hook also supports putting report results into mutable Ontraport object (usually it's Contacts and custom objects). Format of resulting field value depends on totals
parameter. For example, we have 20 objects that meet the condition, and sum of f1234
field values of these objects is 2500. If there's only one defined total, destination object will contain only its value, i.e. totals[]=f1234
will cause destination object field contain 2500.
If you pass several totals like totals[]=qty&totals[]=f1234
, destination object field will contain standard JSON-encoded object: {"f1234":2500,"qty":20}
.
GET https://klikfx.com/a/h/report?token=[Your Magic Hooks Token]&object=10004&conditions[firstname]=Anna&totals[]=qty
{"qty":20}
This Magic Hook calculates a number of objects having a specific tag.
To use this Magic Hook, get your %clickfix_token%
and then send a GET payload to this address:
https://klikfx.com/a/h/tag-count?token=[Your Magic Hooks Token]
Parameters
Name | Type | Default | Description |
---|---|---|---|
object | integer | 0 | Identifier of object you're willing to get a report for. By default, it's Contacts object (ID 0). |
tag_id | integer | Identifier of tag. | |
tag_name | integer | Name of tag. NB: Either tag_id or tag_name is required. If both are provided, tag_id will be prioritized. |
|
destObject | integer | 0 | Destination object ID. Example: destObject=10002 . By default it's Contacts (0). |
destObjectField | string | Destination object field. Since destination object ID has default value, providing a field parameter will cause creation or updating of object record in Ontraport. Example: destObjectField=f1233 . |
|
destObjectId | integer | Destination object record ID. If destObjectField is provided, empty value of this parameter will cause new object record to appear. Otherwise, magic hook will try to update object record with given ID. Example: destObjectId=68 . |
GET https://klikfx.com/a/h/tag-count?token=[Your Magic Hooks Token]&object=10004&tag_name=MyTag&destObjectField=fxxx&destObjectId=1
To learn more about how to use ProfitWell, which provides free subscription metrics to help identify opportunities, reduce churn, optimize pricing, and grow your subscription business, visit their website at https://www.profitwell.com/
Our integration will synchronize your past open orders and payment plans, up to the current date, to give you an accurate churn rate and Monthly Recurring Revenue (MRR).
For more information on setting up this feature, check out this tutorial : https://youtu.be/UfKCQsrN6w8
This integration will :
To start the synchronization :
Step 1 : Add your Ontraport API keys here if not done yet : link
Step 2 : Grab your Shopify Token
2.a Hit Settings (bottom left) => Apps and sales channels => Develop app => Allow => Allow
2.b Create an app => Enter any name => Configure admin api scope => Search for “read_orders” and check it => Hit save
2.c API Credential => Install app => Instal => Reveal Token Once => Copy your token
Then go to http://app.clickfix.io/shopify
and Past it into a new clickfix module
Select your ontraport key, and that’s it! You are now synchronized
This document outlines the steps required to integrate ChatGPT with OpenAI API to enable users to send queries and receive responses in a specific objectid/id combo.
New magic hook route :
https://klikfx.com/a/h/chatgpt?
PARAMETER | TYPE | DESCRIPTION |
---|---|---|
token= |
Key | Your ClickFix Token (click to get it). Required. |
&key= |
Key | Your OpenAI API Key, available here. Required. |
&object_id= |
Object ID | The Object ID of the Object onto which you want to Populate the Response.0 for Contacts (Default). |
&id= |
ID | The ID of the Contact or Object. Required. |
&field= |
Field ID | The ID of the Field you want to Populate (must be a Long Text Type Field). Required. |
&prompt= |
String | Your Prompt. Required. |
&model= |
string | The OpenAI Model to use. (Defaults to text-davinci-003 ). |
&best_of= |
numeric | Will generate multiple completions and return the best one. Will consume tokens very quickly. (Defaults to 1.). |
&max_tokens= |
numeric | The maximum number of tokens to generate in the completion. The token count of your prompt plus max_tokens cannot exceed the model's context length. Most models have a context length of 2048 tokens (except for the newest models, which support 4096). (Defaults to 16.). |
&temperature= |
numeric | What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or top_p but not both. (Defaults to 1.). |
&top_p= |
numeric | An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both. (Defaults to 1.). |
NB: If there is an error with the ChatGPT response it will fill your &field=
with chatgpt_returned_error, so you can use this on automation!
Completion Models we support listed by strength. Those models only require a simple prompt as query:
Model Name | Description | Family |
---|---|---|
text-davinci-003 | Can do any language task with better quality, longer output, and consistent instruction-following than the curie, babbage, or ada models. Also supports inserting completions within text. | GPT-3.5 |
text-davinci-002 | Similar capabilities to text-davinci-003 but trained with supervised fine-tuning instead of reinforcement learning | GPT-3.5 |
text-curie-001 | Very capable, faster and lower cost than Davinci. | GPT-3 |
text-babbage-001 | Capable of straightforward tasks, very fast, and lower cost. | GPT-3 |
text-ada-001 | Capable of very simple tasks, usually the fastest model in the GPT-3 series, and lowest cost. | GPT-3 |
Chat Models we support listed by strength. Those models require you to build a prompt using this format :
[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
{"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
{"role": "user", "content": "Where was it played?"}
]
Model Name | Description | Family |
---|---|---|
gpt-3.5-turbo | Most capable GPT-3.5 model and optimized for chat at 1/10th the cost of text-davinci-003. Will be updated with our latest model iteration. | GPT-3.5 |
gpt-3.5-turbo-0301 | Snapshot of gpt-3.5-turbo from March 1st 2023. Unlike gpt-3.5-turbo, this model will not receive updates, and will be deprecated 3 months after a new version is released. | GPT-3.5 |
gpt-4 | More capable than any GPT-3.5 model, able to do more complex tasks, and optimized for chat. Will be updated with our latest model iteration. | GPT-4 |
gpt-4-0314 | Snapshot of gpt-4 from March 14th 2023. Unlike gpt-4, this model will not receive updates, and will be deprecated 3 months after a new version is released. | GPT-4 |
gpt-4-32k | Same capabilities as the base gpt-4 mode but with 4x the context length. Will be updated with our latest model iteration. | GPT-4 |
gpt-4-32k-0314 | Snapshot of gpt-4-32 from March 14th 2023. Unlike gpt-4-32k, this model will not receive updates, and will be deprecated 3 months after a new version is released. | GPT-4 |
This integration will allow you to seamlessly synchronize your CrowdRise data with your Ontraport account, giving you access to all of Ontraport's powerful features and functionality.
Setting up the integration can be complex and will require the assistance of a ClickFix agent. Fortunately, this service is provided free of charge.
To learn more and get started, please Contact us.
Here is how it works :
Video Explanation
#1 : Create a new contact owner field in Ontraport's field editor here.
#2 Create a module in ClickFix and select the newly created field as the target field.
#3 Grab the [Merge] shortcode provided in the inventory module.
And voila, you now can :
Using this feature means you will be dealing with bank accounts number.
So you must use the same field on this page and in the actual form you use to collect IBAN number.
This way, we will replace the clear IBAN with a secret code called “Stripe Source”.
This is given to us by Stripe that will allow us to charge your client’s account.
Also, it saves you from having to store IBAN numbers for any length of time.
Log into your Stripe account and click this link : https://dashboard.stripe.com/account/apikeys/create
Set the permissions as follow :
Charges : Read & Write
Customers : Read & Write
Sources : Read & Write
Click "Create Key"
Now that your key is created you can go here :
And click on "reveal live key token" to get your Stripe Secret Key
Make sure you have a created a SEPA Payment Module here to get your Token : https://app.clickfix.io/stripesepa/
https://klikfx.com/a/s/charge-sepa?token=%your token%&&id=[Contact ID]&invoice=[Last Invoice #]&iban=[IBAN_MERGE_FIELD]
This webhook will do a few things :
In order to let Stripe know if your transactions go through you must :
Log into Stripe and go to this link : https://dashboard.stripe.com/account/webhooks
Click “Add endpoint”
Copy this url in the “URL to be called” field :
https://klikfx.com/a/s/capture-charge?token=%your token%
You can simply create a Stripe “Source” by sending a webhook to this url :
https://klikfx.com/a/s//iban-source?token=%your token%&id=[Contact ID]&iban=[IBAN_MERGE_FIELD]
Once the IBAN has been erased and a Stripe Source has been created you can then simply charge a bank account doing this :
https://klikfx.com/a/s/charge-sepa?token=%your token%&id=[Contact ID]&invoice=[Last Invoice #]
Using this feature means you will be dealing with bank accounts number. Please make sure whatever you do is done in accordance with the laws of your place of business.
This feature will allow you to take ACH payments from your customers in place of credit card. It is a four step process for your customers :
Log into your Stripe account and click this link : https://dashboard.stripe.com/account/apikeys/create
Set the permissions as follow :
Charges : Read & Write
Customers : Read & Write
Sources : Read & Write
Click "Create Key"
Now that your key is created you can go here :
And click on "reveal live key token" to get your Stripe Secret Key
Make sure you have a created an ACH Payment Module here to get your Token : https://app.clickfix.io/stripeach/. It is highly recommended to create a separate dummy gateway for each of the instances you start.
In order to let Stripe know if your transactions go through you must :
Log into Stripe and go to this link : https://dashboard.stripe.com/account/webhooks
Click “Add endpoint”
Copy this url in the “URL to be called” field :
https://klikfx.com/a/su/%your token%/capture-charge
https://klikfx.com/a/su/%your token%/capture-verification
Check all the following:
Each time you want to charge a customer via ACH, you have to call a webhook:
https://klikfx.com/a/su/%your token%/entry?contact_id=[Contact ID]&last_invoice_id=[Last Invoice #]&source=[Source String (see below)]
This webhook will do a few things :
After this, Stripe will send two micropayments to your customer's account, and you must invite them verify their account. Collect the verification data (2 integer numbers) and send it to the next webhook:
https://klikfx.com/a/su/%your-token%/verify?cid=[Contact ID]&verification[n1]=[ACH Microdeposit 1]&verification[n2]=[ACH Microdeposit 2]
This webhook will send verification data to the Stripe and verify the customer's bank account.
One can know if contacts source is verified by checking on their verification status (it should say "Verified"). This means that this contact has authorised you to withdraw money from their account.
On their first purchase, contacts bank account will not be verified, and in this case source string should consist of their account number and routing number, separated by a colon:
https://klikfx.com/a/su/%your token%/entry?contact_id=[Contact ID]&last_invoice_id=[Last Invoice #]&source=[account_number]:[routing_number]
Once they verified their bank account, there's no need to keep this data anymore. At this point a contact should have a Stripe Pair in the Payment Source Field (i.e Stripe customer ID and Stripe Source ID, separated by a colon). This information should be sent for next purchases:
https://klikfx.com/a/su/%your token%/entry?contact_id=[Contact ID]&last_invoice_id=[Last Invoice #]&source=[Payment Source Field]
Now, if everything is set up right, your customer will receive an invoice to pay. Once paid or failed, the transaction will convert to a Paid / Declined respectively.
ClickFix Apps allow you to display on a page (Ontraport Page or any page where you can insert JavaScript really) data from any Ontraport Object, along with data from a set of Children Objects.
The advanced feature we offer is known as our "App Builder" and it requires some understanding of Custom Objects in Ontraport.
If you're not familiar with this concept, we recommend checking out our app building guide at https://eg.clickfix.io/appbuilder.
To give you an example of how to use this feature, let's say you want to allow a contact to view their tickets for different events.
Here's a summary of the steps you'll need to take:
The Ontraport part is really quite simple with one required webhook to Generate a ClickFixUID, and most of your time will be spent working on your Ontraport Pages.
The best way to learn how to use this feature is to check out our demos at https://demo.clickfix.io/, find one that matches what you're trying to build and examine the source code to see how it was done and you can simply copy paste that.
And as always, in case of doubt, contact Support!
To use this Magic Hook, get your %clickfix_token%,Then view/edit the object and at the bottom of the page you can find your token and then POST this WebHook from your Ontraport Campaign :
https://klikfx.com/a/u/generate?
Parameter | Type | DESCRIPTION |
---|---|---|
token= |
Key | Your %clickfix_token% (click to get it) Then view/edit the object and at the bottom of the page you can find your token. Required. |
&id= |
ID | The ID of the contact or object. Required. |
&renew= |
ID | This determines how the Magic Hook will react if the contact / object already has a ClickFix UID. renew=0 will prevent replacing the UID while renew=1 will update it. You can force a new UID using renew=99 but do check first within a campaign condition if the UID field is empty or not before using 99 . |
This magic hook will create a new ClickFix UID for the contact/object targeted.
[Merge
%clickfix_unique_id%
%fieldid%
var=%$a_variable_name%
%format%
]
Attribute | Type | Description |
---|---|---|
%clickfix_unique_id% |
TOKEN | The ClickFix Unique ID of the Object you want to display data for Value to look for to store. Can come from three different places (see below). Required. |
URL PARAMETER | Will lookup your url paramater in the URL and grab it as ClickFix Unique ID. Note that the url parameter needs to start with uid (uidcontact=[ClickFixUID] for example). | |
VARIABLE | Merge shortcodes are dynamic, and you can provide the ClickFix Unique ID using a Variable $var. | |
STRING | You can merge the ClickFix Unique ID directly into the page via an Ontraport Merge Field on a Membership Site for example. | |
%$a_variable_name% |
String | A name for the Variable the value will be stored in. |
%format% |
String | In addtion you can add specific format code. (See Below) |
date_format= |
Parameter date field format : long , abb , ss , es , ed , dayname , unix , udayname . You can find them Here |
|
long |
Will display Long date. | |
abb |
Will display Short date. | |
ss |
Will display Standard Slash date. | |
sd |
Will display Standard Dash date. | |
es |
Will display European Slash date. | |
ed |
Will display European Dash date. | |
dayname |
Will display Day of the week date. | |
unix |
Will display Unix Time date. | |
checkbox_format_checked |
For Checkbox field format. | |
checkbox_format_unchecked |
For Checkbox field format. |
By default, we will hide the Merge shortcodes until we have the data to display it. You can add loader=dots to your shortcode to display horizontal dots instead.
[MergeLoop
%clickfix_unique_id%
%Loop_Name%
]
%Loop Something%
[/MergeLoop]
Attribute | Type | Description | |
---|---|---|---|
%clickfix_unique_id% |
Token | See [Merge] documentation above. Required. |
|
%Loop_Name% |
String | The name you chose for your loop in ClickFix. Required. |
|
%Loop Something% |
Shortcodes | The MergeLoop Shortcode will let you pick what data to display. But you need to insert WHERE to display the data, via either LoopBlock, LoopElement, LoopColumn or LoopGrid. See below for more information. Required. |
[MergeLoop #
%dynamic_block_id%
*dynamic]
%Loop Something%
[/MergeLoop]
This Merge will use an Ontraport Dynamic Block to get the data for a Clickfix loop.
You will need merge field in the dynamic block (ex : [Block//Firstname]) to be able to use it and use the same format on the new LoopBlock/Column/Element.
Attribute | Type | Description | |
---|---|---|---|
%dynamic_block_id% |
Value | The ID of the Ontraport Dynamic Block you want to get the data for the clickfix Loop. Required. |
|
%Loop Something% |
Shortcodes | The MergeLoop Shortcode will let you pick what data to display. But you need to insert WHERE to display the data, via either LoopBlock, LoopElement, LoopColumn or LoopGrid. See below for more information. Required. |
[MergeLoop]
[LoopGrid%id_of_column%
in #%block_id%
grid=column_number
name=%Loop_Name%
loader=type
,color1
,color2
]
[/MergeLoop]
Attribute | Type | Description | |
---|---|---|---|
%id_of_column% |
Value | The ID of the column you want to Loop. Required. |
|
%block_id% |
Value | Because Columns can have the same id if they are in different Blocks, you must target a specific Column by adding this to your Shortcode. Required. |
|
column_number |
Numeric | The number of columns in your Grid. All columns must be the same size for this to work properly. Required. |
|
%Loop_Name% |
Value | A Name for your loop, to be used in SortLoop and FilterLoop. Required. |
|
type |
String | We have 7 different loader styles: box, line, circle, circle-2, wave, circle-switch, bouncy-box Required if you use the loader. |
|
color1 |
HEX | The color you want for your loader. Use #000000 for Black for example. Required if you use the loader. |
|
color2 |
HEX | The color you want for your loader's background. Use #000000 for Black for example. Required if you use the loader. |
[MergeLoop]
[LoopBlock #%block_id%
name=%Loop_Name%
loader=type
,color1
,color2
]
[/MergeLoop]
Attribute | Type | Description |
---|---|---|
%block_id% |
Value | The ID of the block you want to Loop. Required. |
%Loop_Name% |
Value | A Name for your loop, to be used in SortLoop and FilterLoop. Required. |
type |
String | We have 7 different loader styles: box, line, circle, circle-2, wave, circle-switch, bouncy-box Required if you use the loader. |
color1 |
HEX | The color you want for your loader. Use #000000 for Black for example. Required if you use the loader. |
color2 |
HEX | The color you want for your loader's background. Use #000000 for Black for example. Required if you use the loader. |
[MergeLoop]
[LoopColumn%id_of_column%
in #%block_id%
name=%Loop_Name%
loader=type
,color1
,color2
]
[/MergeLoop]
Attribute | Type | Description | |
---|---|---|---|
%id_of_column% |
Value | The ID of the column you want to Loop. Required. |
|
%block_id% |
Value | Because Columns can have the same id if they are in different Blocks, you must target a specific Column by adding this to your Shortcode. Required. |
|
%Loop_Name% |
Value | A Name for your loop, to be used in SortLoop and FilterLoop. Required. |
|
type |
String | We have 7 different loader styles: box, line, circle, circle-2, wave, circle-switch, bouncy-box Required if you use the loader. |
|
color1 |
HEX | The color you want for your loader. Use #000000 for Black for example. Required if you use the loader. |
|
color2 |
HEX | The color you want for your loader's background. Use #000000 for Black for example. Required if you use the loader. |
[MergeLoop]
[LoopElement%id_of_element%
in #%block_id%
name=%Loop_Name%
loader=type
,color1
,color2
]
[/MergeLoop]
Attribute | Type | Description | |
---|---|---|---|
%id_of_element% |
ID | The id of the Element you want to Loop. Required. |
|
%block_id% |
Value | Because Elements can have the same id if they are in different Blocks, you must target a specific Element by adding this to your Shortcode. Required. |
|
%Loop_Name% |
Value | A Name for your loop, to be used in SortLoop and FilterLoop. Required. |
|
type |
String | We have 7 different loader styles: box, line, circle, circle-2, wave, circle-switch, bouncy-box Required if you use the loader. |
|
color1 |
HEX | The color you want for your loader. Use #000000 for Black for example. Required if you use the loader. |
|
color2 |
HEX | The color you want for your loader's background. Use #000000 for Black for example. Required if you use the loader. |
This happens after a MergeLoop is loaded, or could be set as a parameter on mergeloop load, basically the shortcode could be triggered by :
Also, your sort parameters can be dynamic based off Variables set in Anchors (to learn more read the [IfAnchor] documentation).
[SortLoop loop=
%Loop_Name%
sort=$direction
:$parameter
,$direction2
:$parameter2
]
Attribute | Type | Description | |
---|---|---|---|
%Loop_Name% |
Value | The Name of the Loop you want to sort. Required. |
|
$direction |
Value | up or down . The direction in which you want to sort your loop.Required. |
|
$parameter |
Value | The field you want to use to sort your loop . Required. |
|
ignorecase= |
Parameter | ignorecase=yes or no .Yes, default, will sort ignoring cases. No, will take case into account. Optional |
You can add multiple direction:parameter by separating them with a comma ','.
That’s how I’ll use this :
[MergeLoop
uidcontact
ChildrenLoop
]
[LoopBlock #xxx
]
[/MergeLoop]
[IfAnchor #sort.
$direction
.$parameter
]
[SortLoop loop=ChildrenLoop
block=#xxx
sort=$direction
:$parameter
,up
:firstname
]
[/IfAnchor]
With 'sort' in this case sorting if we click
#sort.up
.fxxx
Would first sort by fxxx
, ascending
. And second by firstname
ascending
again.
So buttons on page like :
#sort.up
.fxxx
ascend
fxxx
#sort.down
.fyyy
decend
fyyy
[IfAnchor #sort.by.
date
.$direction
]
[SortLoop loop=UpcomingSalesCalls
sort=f1738
:$direction
]
[/IfAnchor]
Will sort the loop UpcomingSalesCalls
by the date
=f1738
and $direction
= up or down
So buttons on page like :
#sort.by.date
.up
#sort.by.date
.down
This happens after a MergeLoop is loaded, or could be set as a parameter on mergeloop load, basically the shortcode could be triggered by :
Also, your filter parameters can be dynamic based off Variables set in Anchors (to learn more read the [IfAnchor] documentation).
It will show only the objetcs that match the filtering criterias. Note that if you display a lot of objects on the page you should use Pagination to speed things up for your users.
[FilterLoop loop=
%Loop_Name%
type=$type
field=$parameter
,fxxx
value=$value
reset=yes
/no
/$param
]
Attribute | Type | Description | |
---|---|---|---|
%Loop_Name% |
Value | The Name of the Loop you want to filter. Required. |
|
$type |
Value | $type :is (default); not ; contains ; more ; moreOrEqual ; less ; lessOrEqual . If you would like to make the search case insensitive, the add i in front of your type. So iis ; inot ; icontains |
|
field= |
Value | The field(s) you want to check to filter your loop . Required. |
|
value= |
String | string or 'a string' or "a string" . Required. |
|
reset= |
Value | The reset parameter. reset=yes (default) <= Will clear all filtering and THEN do its thing; reset=no <= Will leave the current filtering as is (this would be used like in an ecommerce shop for example to filter out products). |
Note that you could do this to RESET a filter
[FilterLoop loop=
%Loop_Name%
reset=yes
]
Sometimes you may want to search accross multiple fields, which you can do three ways :
field=
%field_1%
,%field_2%
value=%value%
]
Will look if any of the fields contains the value.
field=
%field_1%
,%field_2%
value=%value_1%
,%value_2%
]
Will look if field 1 matches value 1 OR if field 2 matches value 2.
field=
%field_1%
,%field_2%
value=%value_1%
,%value_2%
multifield-operator=and]
Will look if field 1 matches value 1 AND if field 2 matches value 2.
So in the case of ecommerce it's like this :
we have a checkbox for red, black color and another for sizes.
I click a size (filter:sizefield contains :M: for example)
[FilterLoop loop=
ecormerceloop
type=contains
field=sizefield
dir=filter
value=:M:
reset=yes
]
So I only see M products (others are filtered out).
Now I click "black" and it filters out everything that's not black. When I click black again, different
[FilterLoop loop=
ecormerceloop
type=contains
field=color
value=black
reset=yes
]
With this we can also basically out of the box do :
add any field
do
[Calc
$search
=fieldid]
[IfAnchor #search.field]
[FilterLoop loop=%Loop_Name%
field=firstname
value=$search
reset=yes
]
[/IfAnchor]
Building a search box for the firstname
[Pagination loop=
%Loop_Name%
show=%item_number%
]
Attribute | Type | Description | |
---|---|---|---|
%Loop_Name% |
String | The name of the Loop you want to be affected by the pagination. This is the name you provided in the Shortcode not the name of your Loop in ClickFix. Required. |
|
%item_number% |
Numeric | The number of element of the loop you want to see on each page. If show=0 or ALL or All or all, then we show all and hide the pagination element. Required. |
You can add this code anywhere after your Loop within the header of your page, and the shortcode will be replaced by the pagination element.
Pagination styling options that you can add within the shortcode :
item-margin
item-padding
item-height
item-text-size
text-color
text-color-active
text-color-disabled
background
background-active
background-disabled
text-color-hover
text-color-hover-active
background-hover
background-hover-active
Backgrounds can be URL or color, example
background="url('https://somepage/somefile.png')" or background=red or background=#FFF or background=rgba(255,255,255,0.5)
Sizes are standard css units: px,em,%,in..., example:
item-margin=5px or item-margin=5em etc.
colors are just colors color=red color=#000000 color=rgb(0,0,0,0.5) etc.
[IfEmptyLoop %loop_name%][/IfEmptyLoop]
Will execute the Shortcodes it contains if a loop loads up without any object.
Use this to display an error message for example, or to hide the blocks that contain the empty loop.
All of the above involves one bottleneck : we need to get the data from Ontraport every time.
The main downside is a relative slowness : Since we need to get your request, get the data from Ontraport and then send it back to you, it will take a few seconds for your data to render on the page, especially if you need to display a lot of objects (more than 50 starts to slow things down a bit, and if you get into the 200-500 range you definitely need caching).
Also, in many cases the Data will not change that much over say a day, but it might be accessed 200 times during that one day, so it doesn't make sense to ask Ontraport for that data every time.
In order to solve this, we have introduced Caching.
The caching feature is a great way to improve the performance of your application by reducing the number of requests to Ontraport. It works by storing a copy of the data in a secure file, which can be accessed quickly and easily.
To use this feature :
You'll first need to check the "Cached" box in the App Builder or Loop that you want to cache. This will enable caching for that specific element.
Next, you'll need to set up a webhook within a campaign that will trigger when the data that you want to display on the page is updated. This webhook will update the cached data for that specific contact and loop.
For example :
If you want to display a contact's tickets and show the Ticket Status and Event Date from the Event Object, you would set up a campaign that triggers when the "Ticket Status" is updated.
The webhook would then update the Ticket Loop for that specific contact using their ClickFix UID and the name of the loop.
From that point forward, when the page is visited, the data will be retrieved from the cache instead of Ontraport, which will significantly increase the speed at which the page loads.
It's important to note that you don't need to change anything on the page itself and if you set Cached as "On" in your App Builder or Loop, you don't need to do anything but visit the page once to generate the first cache. Subsequent re-caching will be handled by your campaign.
This is used to Cache data that will be used in a [Merge %ClickFixUID% %field_id%] Shortcode, so it pertains to an Invididual Object.
Add this link as destination URL :
https://klikfx.com/api/purls/update-cache?
Parameter | Type | DESCRIPTION |
---|---|---|
token= |
Key | Your %clickfix_token% (click to get it) Then view/edit the object and at the bottom of the page you can find your token. Required. |
&id= |
ID | The ID of the contact or object. Required. |
This is used to Cache data that will be used in a [MergeLoop %ClickFixUID% %loop_name%] that was created as a Relational Loop, meaning a Loop where the Parent Object is connected to its Children Objects.
Add this link as destination URL :
https://klikfx.com/api/purls/update-cache?
Parameters:
Parameter | Type | DESCRIPTION |
---|---|---|
token= |
Key | Your %clickfix_token% (click to get it) Then view/edit the object and at the bottom of the page you can find your token. Required. |
&id= |
ID | The ID of the parent contact or object. Required. |
&name= |
string |
The name of your Loop, as set in user interface. Required. |
&child_id= |
integer |
The ID of the particular object you wish to update. If not provided, a whole list of relation objects will be updated. Providing it will make the Cache generation much, much faster. |