We’ve been working on digital process automation work for both ourselves as well as our clients. I’ll be sharing some of this in a 3-part series I hope you’ll enjoy. This is the first post.
If there’s one thing I hate, it’s inefficiency. I’m always looking for ways to automate manual processes and be as hands-off as possible. I am also a bit of a geek when time allows it.
Todd Sharp recently asked in his DevSimple video: Why spend 5 minutes on a manual task when you can spend 5 hours automating it? Todd and I are kindred spirits.
Here at Insum, you might expect that we use Oracle APEX a LOT. Not just when we deliver awesome solutions for our clients, but our entire back office pretty much runs on APEX. Let’s just say we walk the walk 🙂
Recently, our own Oracle ACE Angel Flores created a tool we all love. Although simple in design, it’s extremely useful for the entire team as it serves as our central repository for ‘useful links’ in an easily taggable and searchable repository.
We keep everything there, from our catalog of YouTube videos including Instant Tips, Feuertips, and Insiders, to our PL/SQL coding standards, as well as a collection of links and descriptions to various documents on Sharepoint.
Basically, if it’s a resource that’s likely to be useful to one of our consultants, we’ll drop a link to the original file in InLinks.
Looking for information about REST Synchronizations? InLinks will pop up a link to our Instant Tip video on the subject, as well as a link to a recently recorded internal presentation. Valuable resources at our team members’ fingertips.
But as with any system such as this one, it’s only as good as the information people put in it. So I started looking for ways to automate my own tasks related to InLinks, namely keeping our YouTube library updated.
REST Data Source Synchronization to the Rescue
REST Data Sources allow you to connect to REST enabled endpoints and use the data they return as you would any other table or view in your local schema. Powerful stuff!
So a logical option, in this case, would be to leverage the YouTube Data API in order to look for new videos added to my playlists and automagically add them to InLinks.
Let’s look at what that looks like.
1. Get an API key for the YouTube Data API
- Go to Credentials – APIs & Services – Google Cloud Platform. If you haven’t created a project yet, do that first.
- Click on CREATE CREDENTIALS
- Click on API key
You’ll also want to enable this Key for use with the YouTube Data API:
Now that you’ve got your API Key, you can set up your Data Source in the Shared Components section of your APEX app.
2. Set up the YouTube List of Videos as a Data Source in Shared Components
Visit the documentation for the YouTube Data API for more information about parameters and response body, but in a nutshell, we want to leverage the following HTTP request in order to return a list of videos in a specific playlist.
Go to Shared Components – REST Data Sources and follow the steps below
Leverage the REST Data Source synchronization feature to create a local copy of the data
Notice in this example, when I set up the synchronization, I am creating a NEW local table for the synchronization, and adding 2 steps so that I synchronize 2 distinct playlists.
And you’re set!
You’ve now got a local table with the data from your REST endpoint, that gets synchronized regularly.
Now all I need to do is check for new records in this table and insert them into my InLinks table.
I can set up an APEX Automation that regularly merges data to my destination table on a schedule, I can also add a trigger to the synchronized local table that inserts/updates my InLinks destination table any time a record gets added or inserted.
So now that I’ve automated pushing my YouTube content to InLinks, I can go automate pushing through my Sharepoint documents, WordPress blog posts, Gitlab repos, and more. And if you think that sounds like too much work, I might have to agree with you.
Stay tuned for the second post in this series that helps speed this up, and is oodles of fun in the process!