HubSpot provides the ability to display a pop up form with various triggers (exit intent, after 7 seconds, etc.) But what if you want to show it immediately or when a button is clicked? Below is some javascript to help achieve this functionality.
How to use this script
- Create pop up form
 
- Set targeting to the page you would like the form to appear

 - Set the form pop-up trigger to 600 seconds or 10 minutes. This will essentially hide the pop up until you manually set it to appear using the script below.

 - Now that you have the form created and connected to the page. Add the script to the HubSpot page by editing the page > Settings > Advanced Options > Footer HTML

 
Here is an example page using a button trigger to open a pop up form.
<script> 
window.onload = function() { 
    // add a delay to give time for the pop form to load 
    setTimeout(function() { 
        // trigger the opening of the pop up without delay
        // window.leadflows.dynoFactory.create(window.leadflows.lfConfig.leadFlows[0]).open(); 
        
        /* can also be triggered on button click 
        Change '#main-content .button' query selector below to your button class or ID
        */
        $("#main-content .button").click(function(){ 
            event.preventDefault();
            window.leadflows.dynoFactory.create(window.leadflows.lfConfig.leadFlows[0]).open(); 
        }); 
    }, 200); 
// window load 
};
</script>
What about multiple form pop-ups on the same page?
If you wanted to have buttons to trigger different forms, I would create custom modal functionality and then embed my forms in there.