Enter your search

June Hack Day

Making product announcements more visible, new website navigation, lots of AWS experimentation, sales pipeline visualisation, and automated in-app messaging

Hack day at GoSquared

The last couple of weeks have been busy at GoSquared Towers, with the beginning of Q3 heralding another of our Quarterly Days. But never fear, we still managed to fit in a Hack Day at the end of June. Here’s what we got up to.

Making product updates public

Public GoSquared product announcements page

Whenever we ship product updates, we post announcements which our users can see in the announcements section of their accounts. However, we had no public outlet for this information, and we think it’s helpful for anyone to see what we’re shipping, whether they’re signed up or not.

Geoff worked on adding a public announcement page to our site. It lists all the same product announcements as our users see in their accounts, so everyone can view the newest and shiniest updates from GoSquared.

Check out our latest product announcements now!

New navigation on the GoSquared site

New website navigation on the GoSquared site

As is often the case on our hack days, James took the opportunity to make improvements to the GoSquared marketing site.

A key area that has been frustrating us (and visitors) for some time is the global navigation on the site – there are always many destinations that visitors want to find, and it’s very hard to put the right number of links into the navigation without it becoming a chaotic mess.

The original site navigation was a simple list of links – the GoSquared logo linking back to the homepage, followed by links to pages for each core section. One of the issues with this approach was that visitors had to commit to navigating to another page on the site before they could then navigate to the page they really wanted to get to.

On hack day, with some help from JT, James decided to rethink the GoSquared site navigation.

The new navigation looks very similar to the previous navigation from the outset – we still have a series of links following the GoSquared logo.

However, that’s where the similarities stop. Hovering over the key links in the navigation – “Products”, “Resources”, and “Company” now brings up a beautiful menu for each section so you can jump to the relevant page in one click.

The navigation is better on both desktop and mobile. On mobile you can now easily access all key areas of the site in just a few taps without having to scroll down to the footer.

Best thing is to try it out – check out the GoSquared navigation now!

Tinkering with more AWS services

GoSquared at Amazon Web Services AWS Summit London

Hot off the back of this year’s AWS London Summit, JT was drinking the Kool-Aid and itching to try out some of the new AWS features that we learnt about – namely a combination of EC2 Systems Manager, CloudTrail, and CloudWatch Logs.

Building on our instance-provisioning solution, Clarence (a project from a previous hack day), JT set about hooking up our instances with the Systems Manager agent, along with journald-cloudwatch-logs for collecting all the log data from our running apps, as well as the system logs themselves.

The end result is a setup which should mean far less SSH-ing into individual EC2 instances to make small changes or diagnose problems. Systems Manager enables a great deal of the tasks we previously would perform over SSH to be executed through the AWS console and APIs, with much finer-grained security, access control, and logging – so we have a record via CloudTrail of exactly what has been run on which instances, when, and by whom.

While we’ve experimented with centralised logging systems in the past, and many of our services use some form or other, the journald-cloudwatch-logs solution seems to strike a good balance between reliability (it runs in an agent independent of any of the other services, and pipes directly to an AWS-managed service, so we don’t need to worry about maintaining uptime of the central system) and grabbing enough data. By plugging directly into journald’s data, the journald-cloudwatch-logs agent is able to extract more structured metadata than the out-of-the-box CloudWatch Logs agent, which simply watches the files output to disk. It’s also able to sweep up all of the logs system-wide on an instance without any extra configuration, and provide them to CloudWatch Logs in a format that can later be filtered by instance, by service, by log level etc.

Visualising our sales pipeline

Visualising the GoSquared sales pipeline

This hack day Russell aimed to create a visual, live pipeline of potential revenue from our self-service trial users.

One of the great use cases for our Smart Groups, particularly for SaaS business, is to be able to identify segments of your trial users who are most likely to convert. You can quickly build Smart Groups based on how often and to what level trialists use certain features. Once you’ve established these filters, new users who match them will automatically enter or exit the segment when they no longer match.

To take advantage of this Russell wrote a small script that would query our public API endpoint for our Smart Groups, which returns a list of all users in the group. It then associated a revenue value with each of the users within it, based on their predicted usage. By building that into a lightweight Rails API, it was queryable by custom dashboard services such as Klipfolio.

From that, we now have a live, visible pipeline of all our active trial users – so we can be even more accurate in our revenue forecasting.

Automated Live Chat messages

Automated Live Chat messages by GoSquared

This is one of our most requested features – can I use automated messages to onboard new users, increase engagement, reduce churn etc? Brennan decided to use Zapier (an automation platform) and our (not yet public) Live Chat API to prototype these common scenarios.

When to send a message? Smart Groups are ideal for this. They’re filtered lists of users that update in real time. When somebody new matches the filter you can trigger a ‘Zap’ (Zapier’s word for an automation flow).

GoSquared People CRM filter interface

How to send the message? – the ‘Code by Zapier’ action allows you to run arbitrary JavaScript as part of your automation flow. This is ideal for making calls to our Live Chat API.

Building a message template – when you hook up a Smart Group to Zapier, all the user properties in GoSquared are accessible in Zapier. This makes it very simple to use things like {{first.name}} in the message.

Don’t interrupt people – if somebody is currently engaged in a back-and-forth conversation with an agent, you don’t want an automated message to barge in and interrupt. To mitigate the possibility, of this happening Brennan compared the timestamp of the most recent message in a conversation against the time of the automation trigger. If there has been a message within the last 10 minutes, block the automated message. Instead, add a private note to the active conversation so the agent can weave the message into the conversation more naturally.

Put the whole thing together and you end up with the flow below. Step 3 decides whether to leave a note or not. Step 5 stops a message being sent if a note has already been left.

Diagram of using GoSquared with Zapier for automated live chat in app messaging

Written by
JT is a co-founder and the lead front-end engineer at GoSquared. He's responsible for the shiniest of the shiny projects we work on.

You May Also Like

Group 5 Created with Sketch. Group 11 Created with Sketch. CLOSE ICON Created with Sketch. icon-microphone Group 9 Created with Sketch. CLOSE ICON Created with Sketch. SEARCH ICON Created with Sketch. Group 4 Created with Sketch. Path Created with Sketch. Group 5 Created with Sketch.