Introduction

    Welcome to the brand new documentation for all things ClickFix!

    ClickFix's features are divided in multiple categories :

    • on-page Shortcodes, that will allow you to customize your Ontraport Pages and transform your fields into powerful inputs
    • the Magic Hooks, that will help you to un-Zap your life and do in one webhook what would otherwise take a complex setup (we try to maintain a 72h turnover for adding your requests in, you can drop a request here)
    • our Ontra-App Toolkit, that will let you use data from your Custom Objects on the front end, and build internal systems via internal Ontra-Apps for your teams and powerful external Ontra-Apps to service your clients
    • our deep Integrations with external applications
    • our Payments solutions, for businesses who need more payment methods, more currencies or simply more flexibility to built the Cart System your business really needs
    • and finally a few Other Features & our different Plugins

    This documentation contains detailed information about each of those features and general information about best practices.

    To the right (grey) side you will find Examples, Demos, Case Studies and Downloadable Templates pertaining to each of those features.

    The 🆓/➰/💡/♾️ symbols indicate what type of ClickFix account is required to use a specific feature.

    🆓 : Our Free Account Features

    ➰: Our Essential Account Features

    💡 : Our Marketer Account Features

    ♾️: Our Pro Account Features

    You can upgrade your account anytime by clicking here.

    This documentation is a work in progress, so please join the Facebook Group and let us know how to improve it!

    Enjoy,

    Getting Started

    How to use this documentation

    What you see What you need to do
    %keyword% Remove the two % and replace keyword with the proper value, the source of which will be explained to you within the documentation.
    %grab_your_token% This will be a clickable link which will direct you to the ClickFix app so you can get your secure token or generate one if necessary. 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 using its ID by using the prefix # like this : #%field_id%.

    You can also use the field name %field_name%

    A #%field_id% is unique, wheras if you have multiple email fields on a page, they will have the same %field_name%.

    But they will have different #%field_id%, and so you should use the #%field_id% if you want to hide only one of those email fields.

    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 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.
    %[do_something]% Replace this with the Shortcode you want to execute.

    Unless stated specifically, you can also add a %keyword% in place (or along) of a %[do_something]%, which will display when the action is triggered.

    or button 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 a Conditional System to display different Page Elements based off a Dropdown's Value, %[do_something]% is what happens when the Condition is True.
    Required. If a parameter is not indicated as Required., then it will likely have a (Default) value.

    In any case, a non-Required. parameter can be considered Optional.

    Training

    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 :

    Examples

    This box will contain Example uses of our Features.
    

    Followed by an explanation of what is happening.

    Live Demos

    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).

    Register your Domain Names

    If you intend to use any of our Shortcode on your pages, you must first register your domain name with us.

    To do so, click here once you're logged into ClickFix : https://app.clickfix.io/settings/domains/

    Note that each ClickFix Plan has its own limit regarding how many domains you are allowed to register with us. You can increase that number by going into your account settings and upgrading your account.

    Enter Your Ontraport Keys

    (If you are on a Free Account you may skip this part)

    If you intend to use any of our Shortcode on your pages, you must first register your Ontraport API keys with us.

    To do so, click here once you're logged into ClickFix : https://app.clickfix.io/settings/api-keys/

    Note that on the Basic Plan, you can only work with one Ontraport Account, which we monitor by only allowing you to use one set of Ontraport API Keys at a time.

    You can increase that number by going into your account settings and upgrading your account.

    Get Help

    If you cannot find an answer from your question or you notice a bug or a mistake in this documentation, please log into https://app.clickfix.io and connect to the Help Center.

    Shortcodes 🆓/➰/💡/♾️

    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), but you can also just add them almost anywhere on your page (links, titles, text...).

    To use Shortcodes on your Ontraport Pages, you must first add this import Script to the Header of your Ontraport Page :

    <script src="https://klikfx.com/js/1"></script>

    After making sure the domain you want to use the Shortcodes on has been entered here :

    https://app.clickfix.io/settings/domains/

    Note that even though the Shortcodes have been built for Ontraport Pages, they should work pretty much anywhere you can insert the <script src="https://klikfx.com/js/1"></script> import script.

    Pro Tip :
    You can use an invisible <div> to avoid your Visitors from ever seeing our Shortcodes :

    <script src="https://klikfx.com/js/1"></script>
    <div style="display:none;">
    %Add Your Shortcodes Here%
    </div>

    Conditions 🆓/➰/💡/♾️

    Conditions Shortcodes are similar to Campaign Triggers in the sense that they allow you to execute actions upon a thing Happening or something becoming True / a Condition being Validated.

    Conditions Shortcodes will always have an Opening [If] and a closing [/If] Shortcode.

    [IfAnchor]

    Simple :

    [IfAnchor #%trigger.anchor%]
    %[do_something]%
    %keyword%
    [/IfAnchor]

    Advanced :

    [IfAnchor #%trigger.$variable%]
    %[do_something]%
    $%variable%
    [/IfAnchor]


    This shortcode will Trigger one or more Actions - %[do_something]% - and/or display a String - %keyword%- based off a #%trigger.anchor% being 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 :

    Please note that :

    • This Shortcode requires an Opening Shortcode, [IfAnchor], and a Closing Shortcode, [/IfAnchor]
    • This Shortcode doesn't require line-breaks. You can do

      [IfAnchor][do_something][/IfAnchor]

      as well as

      [IfAnchor]
      [do_something]
      [/IfAnchor]

    • If you send a user to a page and your link contains an Anchor, it will get Triggered upon the page being loaded and it will execute
    • It is generally better not to use [IfAnchor] with a #%block_id% as your #%trigger.anchor% since the page may scroll before %[do_something]% has been fully executed, which can lead to odd page behaviour if the Block was initially hidden. In this case, we would use a [Redirect #%block_id%] right before our closing [/IfAnchor]

    Attribute Type Description
    #%trigger.anchor% or #%trigger.$variable% #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.
    %[do_something]% Shortcode Will Execute your %[do_something]% Shortcode.
    %keyword% String (Word or Sentence) Will display the %keyword% upon your [IfAnchor] being Triggered.
    $%variable% String Will display the $%variable%'s Value upon your [IfAnchor] being Triggered.

    Examples

    [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]

    [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 off your %bump_id% being checked or not.

    Please note that :

    • This Shortcode is "Always-On", meaning if you decide to Show a Block upon a Bump being Checked, then the Block will stay hidden until the Bump is actually Checked
    • This Shortcode requires an Opening Shortcode, [IfBump, and a Closing Shortcode, [/IfBump]
    • This Shortcode doesn't require line-breaks. You can do

      [IfBump][do_something][/IfBump]

      as well as

      [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 save yourself some time by using our Free Chrome Plugin to find your Bump's ID.

    Required.
    %is/not% is or not Pick if you want to Trigger you Action when the Bump is Active (is checked) or when it is Inactive (not checked).

    Required.
    %[do_something]% Shortcode Will Execute your %[do_something]% Shortcode.
    %keyword% String (Word or Sentence) Will display the %keyword% upon your [IfBump] being Checked or Not.

    Examples

    [IfFBump 33 is checked]
    [ShowElement 55]
    [/IfFBump]
    

    Will display the Element with ID 55 uppon the Bump being checked.

    [IfFBump 33 not checked][HideElement 55][/IfFBump]
    

    Will do the exact same thing as the first example.

    [IfField]

    [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 off your %target_field% and your %target_value% being Compared via your %operator%.

    This Shortcode can be used for very simple or very complex Comparisons. See our Examples to understand how to use it.


    Also please note that :

    • This Shortcode is "Always-On", meaning if you decide to Show a Block upon a Field having the Value, then the Block will stay hidden until the Field actually has the Value
    • This Shortcode requires an Opening Shortcode, [IfField], and a Closing Shortcode, [/IfField]
    • This Shortcode doesn't require line-breaks. You can do

      [IfField][do_something][/IfField]

      as well as

      [IfField]
      [do_something]
      [/IfField]


    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, only the first Field will be Monitored.

    You can save yourself some time by using our Free Chrome Plugin to find your Field's id or name.
    %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 want for only one of them to have to be Validated.
    AND Use AND to separate multiple combinations of %target_field% %operator% %target_value% if you want for all 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]% Shortcode upon your [IfField] being Validated.
    %keyword% String (Word or Sentence) Will display the %keyword% upon your [IfField] being Validated.

    Examples

    [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.

    Graphic Helpers 🆓

    [ProgressBar]

    [ProgressBar x=%value_x% y=%value_y%]


    This shortcode will allow you to display a progress bar anywhere you want based on data collected either :

    • from a regular Ontraport [Merge] field
    • from a url parameter
    • from a [Calc] variable on your page

    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. Can be red or #FFF for example.
    background= Option A color. Can be red or #FFF for example.
    border-size= Option A Border Size in pixels.
    border-style= Option solid, dashed or dotted
    padding= Option A Padding in pixels.

    Page Manipulation 🆓

    Page Manipulation Shortcodes can be used to hide (and then display again) parts of your Ontraport Pages :

    • Blocks
    • Columns
    • Elements
    • Fields

    Covering everything but Rows, which we cannot identify individually.

    (There is a Feature Request with Ontraport here).

    Page Manipulation Shortcodes can :

    • Be used in combination with our Conditions Shortcodes.
    • Be combined together (for better or worst. For example if you hide a Column that contains an Element and then you try to show that Element, the surrounding Column being hidden, your Element will not display).

    Live Demos

    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][ShowBlock]

    [HideBlock #%id_of_target_block_01%,#%id_of_target_block_02%]


    This shortcode will 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.

    Examples

    [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.

    [HideColumn][ShowColumn]

    [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 will show or hide a column or a series of column, within a specific block, on an Ontraport Page.

    NOTE: We recommend using the [ShowElement]/[HideElement] Shortcodes whenever possible as HideColumn has a tendency to break page formatting unless used 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 Because columns can have the same ID if they are in different Blocks, you may target a specific column by adding this to your Shortcode.

    Examples

    [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][ShowElement]

    [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 will 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 Because Elements can have the same id if they are in different Blocks, you may target a specific Element by adding this to your Shortcode.

    Examples

    [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][ShowField]

    [HideField %target_field_01%,%target_field_02%]
    [ShowField %target_field_01%,%target_field_02%]


    This Shortcode will show or hide a Field or a series of Fields on an Ontraport Page on an Ontraport Form.


    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.

    Examples

    [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]

    [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.

    This Shortcode will hide all the Blocks that make up the Tabs by default, so if you want to start with a specific Block displayed on page load, you can do so by adding a [HideBlock #%id_of_target_block%] that immediately follows your [Tabs] Shortcode.

    You can target as many Tabs as you want in your [Tabs] 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.

    Examples @Adam : you can copy the #Shortcode #PageManipulation template and turn each function in the into a tab (note : easy way to do this is to clone the whole block 4 times then delete what you don't need. Keep in mind field IDs will change)

    [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].

    Data Manipulation 🆓/➰/💡/♾️

    [Calc]

    Parameters

    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% display]


    This shortcode allows you to build anything from very basic calculations (increment or decrement 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 contain the underscore '_' symbol.
    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 :

    • you can use Text, Long Text and Dropdowns fields with this functionnality. Obviously, if you do so, calculus won't work for those Fields and Variables.
    • Variables must always start with the special character $ The only special character allowed in the Variable Name is an Underscore ( _ )
    • every Field and Variable that does not have a value will be considered Zero

    Examples

    [Calc $myvar1=5]
    [Calc f1234,$myvar2=f5678+$myvar1]
    

    Will Fill the f1234 Field with 5 + the value of the field f5678.

    [EncryptBeforeSubmit]

    [EncryptBeforeSubmit fields=%target_field_01%,%target_field_02% form=#%id_of_target_block% key=%public_key%]


    This shortcode will Encrypt a Field before it is sent to you.

    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 :

    • Encrypted content can take a lot of space compared to an Unencrypted String, so we advise you to use Long Fields
    • Your RSA Keys will look similar to this :
    -----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).

    • To Decrypt the content, you can use the same tool you used to generate your keys. Simply replace the Private Key with yours.
    • We can automate this process for you if you tell us how you want it. Just Contact Us and let us know.

    Examples

    [EncryptBeforeSubmit fields=firstname,lastname key=MFswDQYJKoZIhvcNAQEBBQADSgAwRwJAcEzl7YR3bK7A8r8JlgH3SnDhpSU532RlxkPPLzpUpAlq2t6r3aYqX7DKQoKPGA/yvL25efvGQj3APrhWkZZCQwIDAQAB]
    

    Will Encrypt First Name and Last Name before the form is submitted.

    Live Demo

    @ComingSoon

    Encrypt a message before it's sent to you.

    Right Click -> View Source to see the Shortcodes and how we used them.

    [SyncFields]

    [SyncFields %target_field_01%,%target_field_02%]


    This shortcode will Synchronize the Value of Fields with the same Field Name on a page.

    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 doing this might noticeably slow down your page if you have too many Fields / 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.

    Examples

    [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...).

    Live Demos

    @ComingSoon

    Two Synchronized Forms

    Right Click -> View Source to see the Shortcodes and how we used them.

    Better Fields ➰/💡/♾️

    [GetAddress]

    [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 Code

    en (Default)
    Choose a language you wish to use for the search box.
    %google_key% Key Please follow the instructions below.

    Required.
    How to get your Google Map Key

    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”).

    getaddress_01.png

    Step 3

    Click on "New Project". You'll be required to enter a name.

    getaddress_02.png

    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”.

    getaddress_03.png

    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.

    getaddress_04.png

    Step 8

    Click on "To view all credentials or create new credentials visit Credentials in APIs & Services".

    getaddress_05.png

    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

    Live Demos

    Simple Address Search Field

    Right Click -> View Source to see the Shortcodes and how we used them.

    [QrScan]

    [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 through their webcam or their phone's camera.

    Upon succesful scanning, the visitor will then be automatically redirect to %redirect_url%, in which you can use {QR} to insert the QR code's data.

    You can have as many different [QrScan] Shortcodes as you want on a page, allowing you to have multiple buttons => multiple redirection urls => multiple 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. 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.
    %redirect_url%
    {QR} Use as-is Add {QR} anywhere in your %redirect_url% to use the scanned data.

    Note that you can, if you want, use only a %redirect_url% or the {QR} reference, but at least one of them is Required.

    Examples

    [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.

    Live Demos

    Three Buttons, Three QR Scanners, Three Functionnalities

    Right Click -> View Source to see the Shortcodes and how we used them.

    [Signature]

    [Signature %target_field%]


    This shortcode will transform the target field into a drawing box, allowing your users to sign, either with their mouse or with their finger if they are on a touchscreen.

    The signature image will be encoded and stored as a "data://" String that can be used as image src attribute or any place where image url goes. (@Adam : test if it's indeed usable as an image url now when creating the simple demo, also test email)

    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.

    Live Demos

    Simple Signature field

    Contract Signature Portal

    Right Click -> View Source to see the Shortcodes and how we used them.

    [Scheduling]

    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]

    [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.

    [ScheduleTimer]

    [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 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) : Will do nothing.

    No : Will hide the Timer elements that have already reached Zero (0).

    Log an event into your calendar

    This Webhook will add an event to your calendar.

    To use this Magic Hook, get your %private_scheduling_token% and simply POST this 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 Insert the Merge Field leading to 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 Insert the Merge Field of the Ontraport Field you used on your Appointment Booking Page. Must be UNIX Timestamp formatted. Required.
    &description= String A description for your event.
    &location= String A location for your event.

    Campaign webhook example:

    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

    [UploadBox]

    Coming soon, for now you may access the documentation and our Upload Box Feature by clicking here.

    Others 🆓/➰/💡/♾️

    [FillField]

    [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.

    Examples

    [FillField email with url email,Email or “Enter Your Email To Continue”]
    

    Will Fill the email Field with :

    1. The Value found in the url parameter "email", and if not found with...
    2. The Value found in the url parameter "Email", and if not found with...
    3. Enter Your Email To Continue
    [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.

    [FillCoupon]

    [FillCoupon %url_parameter%]


    Will Fill and Submit the Coupon Field with the value of your %url_parameter%.


    [FillCoupon "%coupon%"]


    Will Fill and Submit the Coupon Field with %coupon%.

    [FillFrame]

    [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.

    Examples

    [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]

    [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.

    Examples

    [FromURL email,Email or “Enter Your Email To Continue”]
    

    Will display :

    1. The Value found in the url parameter "email", and if not found with...
    2. The Value found in the url parameter "Email", and if not found with...
    3. Enter Your Email To Continue

    [MultiStep]

    Simple :

    [MultiStep #%id_of_target_block% #%trigger.anchor%]


    This shortcode will :

    • Stop the automatic Ontraport Redirection upon Visitor Submission of the Form contained in the Block with ID #%id_of_target_block%
    • Post the data of the Form contained in the Block with ID #%id_of_target_block%
    • Trigger your #%trigger.anchor% upon the Form contained in the Block with ID #%id_of_target_block% being Submitted.

    You can have as many [MultiStep] as you want on an Ontraport Page, allowing you to create seamless multi-step experiences for your Visitors while still saving all the Data to Ontraport (in case they don't get to the last step).

    Note that in general, and unless you have a Unique Identifier on the page (such as an 'Email' coming from the URL) that allows you to identify the Contact in your different Forms, you'll need to use our [SyncFields] Shortcode.


    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.

    Advanced :

    [MultiStep #%id_of_target_block% #%trigger.$variable%]

    You can use your Variable $variable defined through your [Calc] shortcodes Trigger an Anchor.

    Examples

    [HideBlock #o76aaaa4513]
    
    [MultiStep #o7dff3cad25e6 #step.2]
    
    [IfAnchor #step.2]
    [HideBlock #o7dff3cad25e6]
    [ShowBlock #o76aaaa4513]
    [Redirect #o76aaaa4513]
    [/IfAnchor]
    

    Will :

    • [HideBlock #o76aaaa4513] : Hide the Block with ID #o76aaaa4513
    • [MultiStep #o7dff3cad25e6 #step.2] :
      • Send to Ontraport the Data from the Form contained in the Block with ID #o7dff3cad25e6 when Submit is clicked
      • Trigger the #step.2 Anchor when Submit is clicked
    • [IfAnchor #step.2] [HideBlock #o7dff3cad25e6] [ShowBlock #o76aaaa4513] [Redirect #o76aaaa4513] [/IfAnchor] : Now, we use our [IfAnchor] to do what we want to do upon Form Submission. In this case, we Hide the previous Form and Display the next Form (plus we use [Redirect]) to center the new Form
    [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.

    Live Demos

    Multi Step Form

    Right Click -> View Source to see the Shortcodes and how we used them.

    [Redirect]

    [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.


    Examples

    [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.

    [Submit]

    [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 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.

    Examples

    [IfAnchor #submit.form]
    [Submit #o76aaaa4513]
    [/IfAnchor]
    

    Will Submit the Form in the Block with ID #o76aaaa4513 once the #submit.form Anchor is triggered.

    [ShowAfter]

    [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 :

    • This Shortcode requires an Opening Shortcode, [ShowAfter], and a Closing Shortcode, [/ShowAfter]
    • This Shortcode doesn't require line-breaks. You can do

      [ShowAfter][do_something][/ShowAfter]

      as well as

      [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%.

    Examples

    [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.

    Live Demos

    @ComingSoon

    Timed Sequence Of Events

    Right Click -> View Source to see the Shortcodes and how we used them.

    [TheYear]

    [TheYear]


    Will display the current year.


    [Timer]

    Step 1

    [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 or a Long Text Field (it does not work with Date Fields).


    Attribute Type Description
    %timer_type% Type Required.
    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
    Feel free to contact us if you need other options.
    %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 be Filled.

    You can save yourself some time by using our Free Chrome Plugin to find your Field's ID or Name.

    Required.
    display=yes/no Boolean Yes (Default) : Will do nothing.

    No : Will hide the Timer elements that have already reached Zero (0).

    Step 2

    [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.


    Examples

    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 :

    • you are asking for an email on Step 1
    • the Redirect URL of your Form is set to https://step2.com?email=[Email]&timer=[Timer Field]
    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 :

    • you are asking for an email on Step 1
    • the Redirect URL of your Form is set to https://step2.com?email=[Email]&timer=[Timer Field]
    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).

    Live Demos

    @ComingSoon

    Optin -> Wait Page -> Video

    Right Click -> View Source to see the Shortcodes and how we used them.

    [Validate]

    [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 is the only valid parameter of our [Validate] Shortcode. Feel free to contact us if you need other options.

    Required.
    "%validation_message%" String Your validation message, inside brackets - ".

    Examples

    [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.

    Live Demos

    @ComingSoon

    IBAN Validation Test

    This is a valid test IBAN you can check : FR1420041010050500013M02606

    Right Click -> View Source to see the Shortcodes and how we used them.

    Magic Hooks ➰/💡/♾️

    Magic Hooks are a set of endpoints that will allow you to un-Zap your life and do in one webhook what would otherwise take a complex setup

    Need a Magic Hook that's not on the list yet? Just let us know on the ClickFix Facebook Group and we will add it in!

    Helpers

    Get any Object's Data into fields

    To use this Magic Hook, get your %clickfix_token% and simply 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.

    Examples

    (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.

    String -> QR Code

    To use this Magic Hook, get your %clickfix_token% and simply 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.Required.

    3rd Party Integrations

    ClickFunnels -> Ontraport : Log Transactions

    To use this Magic Hook, get your %clickfix_token% and simply 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 :

    • Using the exact same product name (make sure product names are identical in ClickFunnels and in Ontraport)
    • Without consideration for currency (so if your Ontraport account is in USD but you sell a 50€ product on ClickFunnels, we’ll log a $50 transaction in Ontraport)

    The Webhook Screen should look like this in ClickFunnels :

    clickfunnels_newpurchase_webhook_exemple.jpg

    Twilio : Send a SMS

    To use this Magic Hook, get your %clickfix_token% and simply 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.

    Orders

    Update Next Charge Amount On An Open Order

    To use this Magic Hook, get your %clickfix_token% and simply 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 Date" for that Open Order.

    Note that if two open orders are found containing the same product we will only change the last created.

    Update transaction status

    This magic hook serves to update a transaction in your account.

    To use this Magic Hook, get your %clickfix_token% and simply 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.

    Log Transaction

    This magic hook serves to log a transaction into your account.

    To use this Magic Hook, get your %clickfix_token% and simply 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 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.
    time integer Transaction date represented in seconds since the Unix Epoch (i.e. Timestamp). If not set, current time will be taken.
    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.
    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. Required if type is charge.
    cc_id integer Customer credit card ID. If not provided, Ontraport will try to charge default customer card.

    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

    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 product[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:

    product[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.

    The following options are available if type is subscription.

    Option name Type Comment
    subscription_count int The number of subscriptions. Default is 1.
    subscription_unit string Indicates how often a subscription product is delivered. 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_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
    

    Send Recurring Invoices (or not)

    To use this Magic Hook, get your %clickfix_token% and simply 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.

    Training

    Examples

    (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.

    Change next charge date on an open order

    To use this Magic Hook, get your %clickfix_token% and simply 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

    Training

    Examples

    (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.

    Reporting ♾️

    Report

    This endpoint provides a possibility to retrieve a short report of objects and optionally put them into a destination object record.

    Endpoint

    GET 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.
    Report Conditions

    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.

    • 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.

      • Base date can be set up as now or in dd-mm-yyyy format. Please note that this format is compatible with Ontraport European Dash date format.
        Each part of base date (either day, month, or year part) can be replaced with zeroes. Zeroes mean current day/month/year, i.e. 01-01-0000 will be interpreted as January 1st of the current year.
      • Interval (which we add to or substract from base date) can be set up as one or several amount-unit pairs in this fashion: <+/-><offset><unit:day,week,month,year>. This way, now-2week will return records between 2 weeks ago and now, and 01-01-2019+1year1day will return records 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.
      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.

    • 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.

    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.

    Report Totals

    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:

    • Show total at the top
    • Show average at the top
    • Show nothing.

    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.

    Using multiple destination fields

    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.

    Report Destination object

    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}.

    Request

    GET https://klikfx.com/a/h/report?token=[Your Magic Hooks Token]&object=10004&conditions[firstname]=Anna&totals[]=qty

    Response
    {"qty":20}
    

    Integrations ➰/💡/♾️

    Ontraport -> ProfitWell ➰/💡/♾️

    You can learn more about ProfitWell, which provides free subscription metrics to help you identify opportunities and then tools to help you reduce churn, optimize pricing, and grow your subscription business end-to-end, on their website : https://www.profitwell.com/

    CrowdRise -> Ontraport ♾️

    Our CrowdRise integration will synchronize your CrowdRise Objects with your Ontraport Objects, allowing you use all of Ontraport functionnalities.

    Our CrowdRise integration is relatively complex and must be setup by a ClickFix agent.
    Which is good, since it’s a free service!

    Contact us to know more.

    Payments ♾️

    Coming soon, for now you may access the documentation and our SEPA Payment feature by clicking here.

    ClickFix Apps ♾️

    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.

    For now you may access the main documentation and our Ontra-App Toolkit by clicking here.

    Other Features ➰/💡/♾️

    SMS Interface ♾️

    Step 1

    Add this campaign into your Ontraport account : Add the SMS Campaign.

    You do not need to import assets with your campaign, but this feature requires that you first :

    1. Create a long text custom field in your Contacts (to store the SMS)
    2. A SMS in the campaign containing only that custom field

    Step 2

    In the campaign you just added you will find a webhook that you need to edit, but first you need to get your token.

    Go here : https://app.clickfix.io/leadenginemessenger/

    Create or select an existing SMS module to get your token and then replace the campaign webhook with this :

    https://klikfx.com/sms/%your sms token%/inbound

    The “Add the Post data to send:” box should look like this:

    contact_id=[Contact ID]&text=[Last Inbound SMS]&firstname=[First Name]&lastname=[Last Name]

    Step 3

    You should now be able to navigate to your chat interface through this url :

    https://klikfx.com/sms/%your sms token%

    Consultant Toolkit ♾️

    Our Consultant Toolkit is a special section on app.clickfix.io website to help you easily perform some unusual Ontraport manipulations.

    Create Fields from a csv file

    In our Consultant Toolkit, under Create Fields from a csv file you will find a form.

    Step 1 : Pick the Ontraport Account / Key you want to use

    Step 2 : Pick the object for which you want to add the fields

    Step 3 : Upload your file

    Helper: Import fields form

    The "Import CSV File" box allows you to upload a CSV file with your fields configuration.

    Each line of this file describes a single field.

    Note that a column name is required for that CSV file.

    Your importable file may contain following columns:

    Column Type / Values Comment
    alias string A name of a field. Required.
    type check, country, fulldate, list, longtext, numeric, price, phone, state, drop, text, email, sms, address A type of a field. Default is text.
    required 0,1 Whether a field is required field. Default is 0 (not required).
    unique 0,1 Whether a field is unique field. Default is 0 (not unique).
    section_name string A name of section this field belongs to. If section does not exist, a new one will be created. Default value is Imported Fields.
    column 0,1,2 An index of column this field belongs to, starting from 0 (i.e. 0 is first column, 2 is third column).
    options string Options are only valid for drop and list field types. For those fields, options are semicolon-separated list of string values. Example: Red;Blue;Green or Dog;Cat;Parakeet;Fish

    After you submit the form, you will be offered to download a report file in CSV format. Said report contains 3 columns:

    Column Description
    name Name of the field (i.e. Alias)
    field_id Identifier of newly created field (only if creation was successful).
    comment Error description (only if creation wasn't successful).

    Please note that import process does not stop after first error. Your whole list will be processed.

    Export Fields to a csv file

    In our Consultant Toolkit, under Export Fields to a csv file you will find a form.

    Step 1 : Pick the Ontraport Account / Key you want to use

    Step 2 : Pick the object for which you want to export the fields

    Helper: Export fields form

    After submitting the form, you'll be offered to download an export CSV file. It will contain your object field data, each row represents one field. A file is organized into following columns:

    Column Type / Values Comment
    section_name string A name of section this field belongs to.
    column 0,1,2 An index of column this field belongs to, starting from 0 (i.e. 0 is first column, 2 is third column).
    alias string A name of a field.
    type check, country, fulldate, list, longtext, numeric, price, phone, state, drop, text, email, sms, address or related_data A type of a field. Please note that related_data represents custom merge fields and is not an importable type of field.
    required 0,1 Whether a field is required field.
    unique 0,1 Whether a field is unique field.
    options string Options are only valid for drop and list field types. For those fields, options are semicolon-separated list of string values.

    Plugins 🆓/➰/💡/♾️

    Chrome Plugin 🆓/➰/💡/♾️

    Our Chrome Plugin will let you :

    • Display and Highlight information about your Ontraport Pages for use in our Shortcodes :
      • Field Names
      • Field IDs
      • Element IDs
      • Column IDs
      • Block IDs
      • Bumps IDs
    • Use Shortcuts within Ontraport (note that you can pick your own key combinations) :
      • Save (Default : CTRL+S)
      • Get cursor to search box (Default : CTRL+SHIFT+F)
      • Back (Default : CTRL+BACKSPACE)
      • Open a copy of current tab (Default : CTRL+SHIFT+U)

    You can use this plugin on as many websites as you want as long as you have a Basic ClickFix account.

    Step 1 : Install the Plugin

    You can install the Plugin directly from the Chrome Webstore here.

    Step 2 : Get your token

    You'll need a Token to identify yourself as a ClickFix user, which you can get here.