Step One – Initial Configuration of APIs
1) Register for a Citrix Online Developer Account
2) Add a new app in the Citrix Developer Center
From the My Apps page, click the button in the top right that says “Add a New App”
- Give your app a name – it doesn’t matter what you call this. No one will ever see it. You can call it Test or Fido or Jumping Bean.
- Put something in the description. Again … doesn’t matter.
- Choose GoToWebinar for Product API
- Expected API Requests Per Month – 2000O (Just making something up … who knows?)
- Expected go live date – today’s date is fine
- Application URL – localhost
- Press the Save App button
Click the link to your new app. On the keys tab, copy the Consumer Key And Consumer Secret.
3) Download the zip file, from GitHub, which contains our GoToWebinar class library, our extended version of the Infusionsoft SDK, and other assorted and sundry files needed for this process.
4) Unzip the file. Use FTP to place it in your scripts folder (lower case) that you created when you set up your iSDK.
Do not worry if your server already has a copy of the Infusionsoft SDK on it elsewhere. This includes our extended SDK and makes configuration easier.)
5) Navigate to and open the /scripts/webinar/lib/citrix/config file with a text editor. Enter your GoToWebinar credentials in the following format:
User ID – this is the e-mail address you used to sign up for GoToWebinar
Password – this is your GoToWebinar password
Consumer Key – this is the consumer key you got when you set up your app in the Citrix developer center
Consumer secret – this is also from your app in the developer center
6) Navigate to the /scripts/webinar/lib/infusionsoft/isdk/ folder and open your conn.cfg.php file with a text editor
Save that file
(Note: if you have the SDK set up elsewhere on your server, you can copy these values from that file. Otherwise, you will need to get the API key from your Infusionsoft app)
7) Test your connections to Infusionsoft and GoToWebinar – Run the conn-test.php file by copying the following URL to your browser window: http://yourdomain.com/scripts/webinar/testConnections.php
Step Two – Configuration for Webinar Registration
1) In your Infusionsoft app, go to Admin -> Settings and create the following custom fields for your Contact records (or repurpose fields you already have – must be the correct field type for this to work):
Webinar Date/Time (date/time)
Pretty Date (text)
Pretty Time (text)
Webinar Title (text)
Webinar Join URL (text)
2) Click on “View the field database names (for the API)” and write down the database name of each field contained in the far right column.
Note: You can use these fields over and over so long as you do not have more than one webinar scheduled at a time.
3) Go back to your server. Navigate to /scripts/webinar/set-custom-fields.php. Open that file with your text editor and configure the names of your custom fields, as follows:
$dbDateTime = '_YourDateTimeFieldName'; $dbDateOnly = '_YourDateOnlyFieldName'; $dbDatePretty = '_YourDatePrettyFieldName'; $dbTimePretty = '_YourTimePrettyFieldName'; $dbTitle = '_YourWebinarTitleFieldName';
Step Three – Configuration for Applying Event Registered Tags (optional)
(This step programmatically creates and applies a tag to each person who registers, with a name formatted as ‘YYYYMMDD Event Name’ in the tag category you choose. I put mine in a category, specifically for this purpose, called Event Registered.)
1) Go to CRM Settings – Tag Categories. Hover over either the Edit or Delete links for the tag category to get the Category ID. You need the category ID where you (will) put the Event Registered tag. Write down that ID.
NOTE: Again, these tags have not been created yet. We create those programmatically when and if someone registers. But you need to know which category you will use when you create them.)
2) Go back to your server. Navigate to /scripts/webinar/event-reg-tags.php. Open that file with your text editor and configure the tag category and text, as follows:
$eventTagCategory = 31; // Put your tag category ID here $tagText = ' API Mastermind'; // Make sure to leave the space before title
Step Four – Configuration for Applying Attendance Tags (Optional)
1) Create a generic, reusable tag for Attend and Did Not Attend that is used to drive the campaign, not store information. (I put all tags of this nature in a Tag Category called Process)
Write down the IDs for each tag
Step Five – Configuring the Campaign in Campaign Builder:
1) Log in to GoToWebinar to get the ID of the webinar you want to set up.
This will be the long number at the end of the registration link, NOT the nine digit number labeled Webinar ID. Write that down.
2) Then set up Campaign Builder something like this:
(Railroad Siding is optional. This is a 15 minute delay timer that holds the confirmation email if the Join URL hasn’t come back from GoToWebinar yet.)
The webinar registration form must have fields that match the fields you selected when you set up the webinar. So, if you required first, last and email, your Infusionsoft form must also have first, last and email.
3) Register and Set tags sequence:
3a) Register GTW Post
For post URL, use http://yourdomain.com/scripts/webinar/registration.php
Leave contact_id as is
Add a field for webinar_id. Use the long webinar ID you wrote down earlier.
3b) Set Custom Fields Post
For post URL, use http://yourdomain.com/scripts/webinar/set-custom-fields.php
Leave contact_id as is
Add the following name value pairs, substituting the information for your webinar in each field:
3c) Apply and remove tags to taste
4) Send Confirmation Sequence
4a) Confirmation email can now go out using all of your various webinar merge fields, like so:
4b) Set Specific Date Tag
5) Check Attendance After Webinar Sequence (optional)
5a) Create a field timer using your Date Only field that fires after the webinar has completed:
5b) Check Attendance and Set Appropriate Tags Post
6) Add a finish goal for the two generic attendance tags and Publish.