Pushing Podio

Fun Experiments pushing Citrix Podio to the limit so you can get more done.
... with a little help from GlobiFlow, ProcFu, and other friends ...

Private Labelling GlobiFlow External Link Flows

- Posted in Uncategorized by

External Link Flows are a very powerful feature of GlobiFlow. They allow you to trigger flows from links and can show results to the user who clicked the link.

These pages are pretty bland though, are hosted on the globiflow.com domain, and show "Collecting data..." while executing:

In this post we're going to private-label these pages. What we're going to achieve is:

  • have links to ourdomain.com instead of globiflow.com
  • show a page that is branded like our website
  • provide a different message while loading, other than "Collecting data..."

Requirements

In order to make this work, you need a website on a server that supports PHP and CURL.

You're also going to need FTP access to your server, as well as good understanding of HTML basics.

The Setup

The first thing we need to do is to create a new directory in your website root web folder called gf.

In this folder, create 2 new files. One called index.php and one called page.html.

You should be able to access the page via http://www.yourdomain.com/gf/page.html

Next, grab the source code of one of the simpler pages of your website and dump this into page.html. Then strip out all essentials leaving the header and footer parts.

Where the content goes, you can add the following:

<!-- gfcontent mods in this area -->
<div id="gfcontent" style="min-height:40vh;">
    <p>One moment while we reticulate splines ...</p>
    <p><img src="https://cdnjs.cloudflare.com/ajax/libs/timelinejs/2.36.0/css/loading.gif"></p>
</div>

This is the page that will show while waiting to get the content from GF. You can change the message to anything you like.

The really important part is that there's a div in the content area with the id of gfcontent.

On our site, the results look something like this:

The Code

Now that we have the loading template page, we can put in the guts with the required logic.

Grab the the source code here and paste this into your index.php file.

You can see a pretty version of the code here.

I tried to comment the code as well as possible, but it's main job is:

  • serve the content of page.html appending a small javascript function to load itself with an ajax flag set
  • if the ajax flag is set, grab the external.php page from GlobiFlow and serve it

Note that this script expects to be called the same way that GlobiFlow's external link flows are called.

Instead of http://www.globiflow.com/external.php?l=xxxxxx you should now be giving out http://www.yourdomain.com/gf/?l=xxxxxx instead. The value of l does not change.

Putting it Together

In order to make this work seemlessly, you need to adjust your flows a little. Any flow sending out a link needs to change the link as per the aforementioned rules.

This is easily done via a custom variable step:

The variable consists of: str_replace("www.globiflow.com/external.php", "globi.ca/gf/", [Link (External) to external]) where [Link (External) to external] is the token for your external link flow.

Now, instead of using the token for the external link, use the token of the variable you just created.

The Result

Instead of people receiving links to globiflow.com they now receive links to our own domain.

And instead of the bland regular GF page:

They now see a well-branded page on our own website:

Comments