A Click in Time Saves Nine

Tom Mclean
ITV Technology
Published in
6 min readFeb 17, 2022

How we’ve automated the freelancer identity set up to just one click — saving time, effort, and avoiding errors.

At ITV, we’ve built our own product (called FreeCon) from the ground up that makes issuing a contract for a freelancer a much simpler process. When it went live in October 2021, feedback was really positive, but like with most products, although our users really liked it, they also had suggestions about how we could take it from good to amazing.

Working through that feedback and prioritising what features to develop, test and work on next is always a challenging process. Do you go with quick wins that will delight your users and show quickly that you are listening to feedback? Do you take the time to repay technical debt that may have built up through development? Or do you tackle the more complex feature requests that take time to work on but deliver huge value?

The answer is normally a bit of all 3! We did continue small updates and releases to our product, and we continued working on repaying our technical debt, but we also had one particularly complex problem we needed to solve which became a focus for our 2021 Roadmap.

This is the story of that challenge — could we automate setting up an identity (email, ITV account, systems access) for a freelancer at the same time as their contract was raised? This was a challenge that would involve leveraging existing services and Amazon Web Services (AWS) serverless technologies, managing legacy systems, event-based architecture, cross-cloud communication, and cross-collaboration between many teams.

If we got it right, this automation would have huge value to our users — saving time, effort and improving accuracy. But most importantly, it would lay the foundation for future automations by creating an event stream that would work for other HR events too. Get it right, and this work had the potential to create automations in 9, or even 99 other systems throughout ITV.

What problem did we set out to solve?

Every year, ITV employs hundreds of freelancers to work on shows — from camera crew to graphic designers, makeup artists to script writers. Each role is varied and requires its own individual contract.

Our FreeCon system made getting contracts issued much simpler, but a contract wasn’t the only part of starting a role in ITV. You also have to have an email account created, you need access to buildings, you need certain applications, and access to shared drives — all of these additional things taken together make up what we term an ‘ITV identity.’

And each part of that ITV identity involved different systems, and different processes and inputting similar information multiple times. This was not only time consuming for users but also increased the potential for data errors arising from human error.

Building more features in FreeCon to do each part was not an option and would have been MAJOR scope creep! (ie, FreeCon was never going to replace our payroll system), so we decided to focus on how we could improve the user experience from this manual process to automating and pushing the relevant information to the relevant other systems.

Exploring what was possible

Before embarking, or promising to our users that we would improve things, we had to explore what was possible. Working with our partners BJSS, we undertook a period of discovery where we identified that we could utilise FreeCon’s existing HR extract process in order to drive an automated process that could manage identities from data extracted from FreeCon into our iBusiness system. iBusiness is an old system used in Finance and HR to manage all things employees and freelancers.

We quickly realised the art of the possible, we just had to go about delivering it…

How we did it (here’s the techy bit)

We had already built a data pipeline to send freelancer data from FreeCon to iBusiness. What we had to do for this solution to work was to create a system that could incrementally pull freelancer data from iBusiness and send that to the identity systems.

In order to achieve this, we decided to create a small system (Hepworth, built using the Kotlin programming language) that could act as a facade in front of iBusiness. This service would be told when to pull data and will only pull new information that has been added to iBusiness since the last time an extract has been run.

It would then format the data into a readable format and send the freelancer data to AWS SNS (Simple Notification Service). SNS would be responsible for sending the freelancer data to any system that is subscribed to the SNS topic. At the moment, this is only identity service, but the potential here is huge. Although this particular example is of the identity service — the mechanism could allow HR events to be propagated to other systems in ITV, allowing real-time updates to flow, so systems can operate on real time accurate data. An example of how this could be used in future would be automating the requesting of devices for the onboarding of new employees and freelancers.

In order to send the data to the identity service, we utilise an AWS Lambda function that sits between the SNS topic and the identity service. A Lambda function is in essence, a small piece of code that sits in AWS that performs a simple task and can be executed quickly and cheaply. In this case, its responsibility is to authenticate with Okta (our single sign on provider) and then send the freelancer data through to the identity service. This is required as we are sending data between 2 cloud providers as FreeCon and Hepworth sit in AWS and identity systems sits on Google Cloud Platform (GCP).

The identity systems then reuse much of its existing logic for managing user accounts so not much change was required to process freelancer data in order to create accounts for them.

Could we do it? Did we do it?

Managing the project across multiple different teams was definitely challenging as there were at least 4 different teams all managing different systems in the data pipeline from FreeCon, iBusiness, Hepworth and the identity services along with some others.

Also managing cross-cloud communication between AWS and GCP and ensuring that the communication happens securely and safely as the data is entirely PII (Personally Identifiable Information). Having previously had to deal with this situation working on a solution for reporting on FreeCon, we had an idea of how we might go about this and were quickly able to come up with an appropriate solution utilising Okta for authentication between services on the 2 cloud platforms.

What has been the impact of this automation?

By creating the automation between our FreeCon product, and other products in the ITV estate, we have been able to create freelancer identities in just one click.

This has resulted in the management of freelancer’s ITV identities being far less involved. The only human interaction required for managing a freelancer’s identity is a simple button click on the contract creation.

It has also improved data accuracy, and our data security as well — identities are now managed automatically via their contracts start and end dates (info from FreeCon) which means that identities will be shut down when a freelancer has their contract expiring. Previously a manager would have to remember to manually close down identities after a freelancer left — now that is automatically triggered by the information stored in FreeCon.

More than TV

Becoming a more digital business is a key part of our strategy, and transforming our own internal systems and processes is a key part of that.

We’ve built a modern event-based architecture on top of a legacy system, meaning we can now surface and use this data in ways we couldn’t do previously.

By building in this one click automation, we have not only saved time and errors, but we’ve built the foundation for further automations across our ITV systems.

--

--