A Recipe for Webinar Registration

Using HubSpot to Register Leads for Citrix Online’s GoToWebinar

Disclaimer: Are you a HubSpot customer? Are you a super geek? Then this post is for you. Everyone else: Check out more entertaining content, like the other posts on this site.

If you are planning a webinar, you face some confusing decisions about how to communicate with your leads and store information about them. Both Citrix and HubSpot offer lead intelligence and automated follow-up communication with your registrants. However, neither system does everything that you might want to do, and there is some overlap. This article is intended to help you combine the best features of both systems to make sure you can take advantage of Citrix’s automatic reminder tools without losing any of the benefits of having your lead data in the HubSpot database. For those who are comfortable tinkering with HTML — okay, let’s face it: you have to be ultra-comfortable tinkering with HTML — there are some notes about how to jerry-rig a form so it feeds data into both Hubspot and Citrix.

If you use GoToWebinar’s email marketing tools and landing page to register people for the website, you are missing an opportunity to store the registration data in your Hubspot database. But you do need to use GoToWebinar’s automated follow-up tools to provide your participants the registration link. To avoid having to manually enter data from one system into another, here’s the recipe I used for registration the last time I produced a webinar.

The Recipe


  • Your own website or web server, capable of hosting PHP scripts
  • Your Hubspot website and database
  • Your Citrix GoToWebinar account
  • A few cups of patience

In Brief

  1. Create a HubSpot-hosted landing page for your webinar and populate it with any persuasive content and images you would like to use
  2. Set up the webinar on Citrix GoToWebinar
  3. Create a form on your non-Hubspot hosted website to capture webinar registration. Set it up so that it spools data to Citrix’s webinar registration database.
  4. Add the form to your Hubspot-hosted landing page.
  5. Test the form to make sure it properly registers you for the webinar.
  6. Use all of Hubspot’s tools (lead nurturing campaigns, email campaigns, calls to action, and links from relevant content sections of your website) to drive traffic to the landing page.

Creating the Form

  1. Make sure your webinar is already set up GoToWebinar. When you come to the Registration tab, set up the form with the fields you want to capture.
  2. In GoToWebinar, click the “Registration Web Page” link and leave it open in your browser. You’ll have to reference the source code for the next few steps.
  3. Read the excellent articleon the HubSpot Wiki about how to use the PHP script that integrates GoToWebinar and Hubspot. Copy and configure the PHP code there and post it to your web server as gtw-process.php. You will need to change the code in three lines:
    • Line 4: You should add the URL that you’re going to re-direct your newly converted leads/registrants to once they submit the form. This should likely be a thank you page of some sort.
    • Line 14: Line 14 references the URL of the GoToMeeting registration process. On the GoToWebinar registration page that you left open in the browser, look at the first part of your GoToWebinar URL (e.g. www3.gotomeeting.com) and change the URL in line 14 to agree with that. This will direct the registration data to the right server in the GoToWebinar system.
    • Line 34: You’re going to need to input your HubSpot Lead Tracking API URL on this line in the place of the “<YOUR HUBSPOT POST URL HERE>”. This can be attained from your HubSpot portal under ‘Settings -> Integrations -> HubSpot Lead API” and then clicking on the ‘Create New Form’ button. If there are questions around this, please contact HubSpot support. They’re great.
  4. Create an HTML page on your own, non-HubSpot hosted website. This page will only contain the form. Here is a sample form with comments on how you may need to adjust the HTML. You can simply copy-paste the following text into the body of your new HTML page:
    <form method=”get” action =”http://<path-to-file>/gtw-process.php”&gt;Comment: Make sure you reference the path to your PHP file correctly.First Name: <input name=”firstName” size=”40″ type=”text” />

    Last Name: <input name=”lastName” size=”40″ type=”text” />

    Email: <input name=”email” size=”40″ type=”text” />

    Comment: The PHP code maps the Hubspot-friendly field names such as firstName and lastName to the field names that GoToWebinar uses, such as Name_First and Name_Last. If you want to add more registration data, create more fields in the GoToWebinar registration form, and view the source of that page to see how GoToWebinar names the fields. You can then add lines to the PHP script to map more form fields to the GoToWebinar system.

    <input name=”WebinarKey” type=”hidden” value=”‘<ENTER WEBINAR KEY HERE>’ />

    Comment: The way this field is named can be a stumbling block. In the land of Citrix tech support, the webinar key is a proprietary, hidden number that you can only get by calling your corporate account representative and acting like a smarty-pants. In this context, webinar key actually refers to the webinar ID. It is the string of numbers that appears at the end of the webinar registration URL you left open in step 3.

    <input name=”Form” type=”hidden” value=”webinarRegistrationForm”>

    <input name=”template” type=”hidden” value=”https://www1.gotomeeting.com/en_US/island/webinar/registration.tmpl“>

    Comment: This references the URL of the GoToMeeting registration process. On the GoToWebinar registration page that you left open in the browser, look at the first part of your GoToWebinar URL and change the URL in line 14 to agree with that. This will direct the registration data to the right server in the GoToWebinar system.

    <input type=”submit” value=”Submit”>


    Comment: If you like, change your Submit button to read “Register” by changing the value to “Register.”

  5. Post the HTML page to your website and test it to make sure it registers you for the webinar.

Add the Form to your HubSpot-Hosted Landing Page

  1. View/Edit your HubSpot-hosted landing page.
  2. Click “Add Module” and choose HTML/Javascript.
  3. In the HTML/Javascript window, enter HTML code for an inline frame and set the source to the webinar form you’ve published on your website. For best results, use the width, height, and scrolling parameters in the following example: http://www.your-domain.com/your-webinar-form.html
  4. Save your landing page and test it.

Kicking Off the Campaign

We used a lead nurturing campaign to repeatedly invite the leads in our database that we knew would be interested in the webinar. Because you have set up the form to spool data to Hubspot and to GoToWebinar, when they convert on the form, they automatically are removed from the lead nurturing campaign and are entered into GoToWebinar’s email reminder system.

Now you can use all HubSpot’s other great tools to drive traffic to your landing page and convert it into leads — and still get all the benefits of the GoToWebinar automatic reminders.


Microsoft Excel Charts in 300 dpi

Today our VP Sales sent me a chart that had been created in Microsoft Excel. He was using wind data that I’m all too familiar with working with — as screen grabs in 72 dpi — which looks horrible when you try to use them in print.

Imagine my amazement when I opened the file up and it was a 300 dpi TIFF image!

I’ve also known that you can copy-paste charts into Illustrator and they come out as vectors.

So, without getting into the nitty-gritty of how you accomplish all these wonderful things, please know that they can be done . . . 

And for a special bonus, guess which Bette Midler song I quoted to our VP Sales in my return email.

How to Export a QuickTime Movie from Flash CS3, And Yea, Even CS4

Disclaimer: Although this blog post does contain a few witty comments, it’s not worth reading unless you’re a Flash developer. If you’re anyone else, the local classified ads deliver more bang for the reading buck.

I’ve been creating some animated graphics for my company, Second Wind’s trade show booth and wind blog. This year, we (speaking broadly — a more accurate description is ‘a few folks from my company, not including me) are exhibiting at the American Wind Energy Association’s WINDPOWER 2012 tradeshow, an enormous industry extravaganza featuring Karl Rove as this year’s keynote speaker (please don’t get me started). The animations were created in Flash (she blogs! she cooks! she develops Flash applications!) and I exported them as Shockwave files to play over the monitors in the booth.

The problem arises when our fearless leadership also wants to be able to play the videos on their iPads. Imagine how flattered I am that the stuff I put together as “moving wallpaper” is deemed content-worthy enough to gaze at instead of using iPads for their original purpose (watching people dive from third-story windows wrapped in bubble-wrap, looking up drink recipes, and attracting favorable attention from other nerds). Imagine my distress when I found that the dialog in Flash CS3 called: “Publish settings . . . QuickTime movie with Flash track” generates an error message saying:

“QuickTime does not support Adobe Flash track beyond Flash version 5. You can however, export a QuickTime move with Flash rendered as video by selecting File > Export > Export Movie.”

OK, so I can change the Publish settings to Flash version 5 or lower . . . (Version 5? Wasn’t that like twenty pounds, two relationships, and eighty-six haircuts ago?) Oops, a whole bunch of cool things I did using features from Flash 5+whatever aren’t supported. Who knew I was that cool? Back to Google Search, where I find that if I can’t export a QuickTime movie using Publish, I can go under the File menu and “Export movie.” I select “When last frame is reached” and sit back, confidently, to wait for . . . hell to freeze over.

My friends on the Internet (is this like people consulting their fillings for messages from outer space?) pass along two key pieces of information:

  1. If you have a “stop” on your timeline before the last frame is reached, of course, the last frame won’t be reached and you’ll freeze.
  2. The “when last frame is reached” doesn’t work (but wait . . . more on this below), so you can get around it by choosing “After time elapsed.” (Thanks to R. Jon Macdonald, who explains this most cogently.)

Okay, so I make sure there are no “stop” actions on my timeline, and I take the total number of frames, divide it by the number of frames per second, and then divide it by sixty and do a bunch of other math involving remainders . . . to figure out how many hours, minutes, and seconds a 2160-frame Flash video has at 24 frames per second. Are you still with me? If so, I’m impressed . . . I should send you a Starbucks card or something.

I had two problems with this method. First, it didn’t work. Second, I had no idea why. Once, I did get it to work, but the movie was truncated even though I was pretty sure I’d calculated the time correctly. Another time, it just froze again. I rejected one forum commenter’s advice to let the process run overnight — I figured this was giving the bastards too much of my time.

I took a detour through trying to export the files as .swf and then run a bewildering variety of video converters on them (AVS4You, Movea, etc.) but none of them worked and all of them were documented by someone who was not a native English speaker. (This would not have been a problem, except they were trying to write in English and it didn’t make sense to me). One irritating phenomenon is that if you’re trying to export an .swf file that has an imported video embedded in its timeline, a converter like AVS4You will export . . . the original video that you embedded, while ignoring all the other stuff you put into your .swf. Makes you wonder why you bothered in the first place.

I finally located an article that solved my problem. This is the one I was trying to locate so I could publicly thank the author, but I was unable to find it today. The answer, my friends, is to make sure that all the layers on your timeline contain exactly the same number of frames. That’s right, use your trusty F5 key and Shift-F5 to add and delete extra frames from your layers so that all your layers end at the same time. I suppose this eliminates any confusion about what “the last frame” is and allows your movie to export properly.

Here are two other pointers:

  1. As noted above, make sure there are no “stop” actions anywhere on your timeline.
  2. The export will certainly take a while. Not overnight, but for me, a 2000-frame animation took an entire lunch break to export.

Finally, there was a good note by Danny Chang about what codec and pixel dimensions to use if you’re exporting video for an iPad — 1280 x 720 pixels, and use the H.264 codec.

One other random problem I encountered when publishing content to .swf format . . . one of my files became corrupted so that when I tried to select .swf as an output option under Publish Settings, the program would crash. I got around this by using Control:Test Movie, which saved an .swf file to my desktop.

Please comment and let me know other weird Flash bugs and workarounds you’ve encountered. I’ve had such mixed results when searching on the Internet for solutions to tech problems — some of them work, some don’t, and some go part of the way. Thanks for making it this far!