Bulk Update Algo

A week’s social media posts can eat up hours of time — especially since its often necessary, or at preferable, to customize updates for each social network 1. Multiply that by several posts per day for every day of the week, and even a few extra minutes per post can cost (or save) an hour.

"Chained" by VinothChandar on Flickr
“Chained” by VinothChandar on Flickr

Emphasize creativity and interaction. I like to spend most of my energy sifting through sources, evaluating options, making each update, and engaging on social media. That is where my human abilities matter most to the audience. Logistics, on the other hand, are just the kind of thing that a computer should do, and with a little forethought they certainly can.

For publishing, I often use HootSuite’s bulk scheduling feature, but there are other options like SocialOomph. This lets me upload a CSV file containing the time, post text, and a link if any. This is handy because it helps to ensure that content is going out in a timely fashion. This asynchronous dimension matters a lot to me because it frees up mental resources for the serendipitous interactions that occur on social media. It also lends a little extra sanity in a fast-paced environment that often requires multitasking.

Here’s how I do it

HootSuite requires a separate CSV for each property (e.g., each Facebook page even ones owned by the same account). This is how I’ve started to create each of those files.

Spreadsheet Setup. I create the updates once, and I don’t start with CSV. I start with a spreadsheet file that is a little more sophisticated because I employ a formula to count characters. HootSuite shortens links to at most 23 characters, so here’s how I estimate the character count:

=IF(LEN(C1)>23, LEN(B1)+23, LEN(B1)+LEN(C1))

That means that, if there is a link more than 23 characters, add 23 to the character count for the update, otherwise, just add the length of the link to the length of the update.

My spreadsheets also include two extra columns that HootSuite will not use. In the first I record source information like author and publisher names. In the second I note any other people or organizations I want to mention. It’s easiest to do this once, and then look for their accounts on each social network when I am customizing. The alternative is to find the person on one social network, then later backtrack to that network each time in order to get their name and search another network for it. Sounds minor, but it gets tedious.

"On the Chopping Block" by Wendy on Flickr
“On the Chopping Block” by Wendy on Flickr

Write for Twitter first, but leave out handles. Twitter might not be your most important platform, but start with it anyway. Your writing will be better everywhere. Twitter forces concision, and it’s easier to add a word or sentence than it is to first waste time rambling and then take more time to boil it down to 140 characters for Twitter. Very often, the shorter update will be better anyway, but the act of cutting it down makes me very aware of what additional information I’d really like to add. If it seems important enough, I’ll also make it into a second tweet 2.

With all the tweets done, but not yet in final form, it’s time to save a new copy of the CSV for each additional social network. I save with an account and a date indicator of some kind in the name for easy uploading.

"Chalk Stripe" by JamesPetts on Flickr
“Chalk Stripe” by JamesPetts on Flickr

Customize for each network. Now I move to customizing each set of updates. I look up the people I want to mention and mention them as space allows. The character count formula comes in handy here, making sure the update isn’t too long. HootSuite will not take any updates from a file if even one is too long.

In non-Twitter versions, I usually first delete the content I’m not going to publish there. I then replace @usernames with appropriate ones (e.g., +username on G+), and then expand the language anywhere necessary. Often some hashtags are irrelevant (e.g., references to Twitter chats like #getrealchat). Facebook versions of the file do not have @ or + names in them.

In some cases, a CSV cut down for one account is almost exactly what will go on others, and it takes even fewer edits to use that version as the starting point rather than the copy of the Twitter CSV. For instance, a Twitter version cut down for G+ will often be closer to what you want for Facebook.

Save out CSVs. Once each file is properly set up, I save it, then delete columns that HootSuite doesn’t take and save it again as CSV.

Upload to HootSuite. The files are now ready to upload. HootSuite makes this quick and easy. CSV files are compact so upload is usually quick. HootSuite also checks the file for errors and lets you know what you need to change if something is wrong.

Proof. Finally, before logging out of HootSuite, I always check over the scheduled updates. HootSuite lets you look at updates per property and account so it’s easy to tell if everything is going where you want it to and when. Nothing is set in stone; it’s pretty easy to make changes to time and content.

Stand up and stretch, you’ve earned it. No matter what kind of week you have, updates will happen on schedule. If anything comes up, it’s easy enough to go back into HootSuite and make a change.


1. It’s nicer not to have Twitter names (e.g., @twitter) in your Facebook posts, for instance.

2. I’m assuming that, like most, your Twitter followers see more updates and that it’s at least permissible, and maybe desirable, to have more frequent updates there.