Fun and Games in Start-Up Land: User Needs are Everything
By now, most of you know that I'm working on my latest and, hopefully last, start-up. The fun thing is that is isn't "mine" at all. It came to life on its own during discussions and comments on discussions right here on beBee.
It's the Web-App built by Hives. For now, we call it the Web-App-With-No-Name. I'll get around to naming it eventually.
Fa-la,la,lalalala.
Damn, now that song is stuck in my head again.
It started as a simple way to build Click-To-Tweet links with full-sized images like #beBee #buzzofthemonth ! pic.twitter.com/vYMAIoIr1S&via=PaulCroubalian&url=https://t.co/v12fcXsSLC">this. It morphed into a full-blown Tweet scheduling web-app with hashtag rotation for cross-posting to other platforms.
Then it became a multi-account scheduling system that was still cross-platform capable. Log in to one account and manage them all. You can even schedule supporting tweets from any account for any other that you control.
Pretty soon, we'll add Cooperative Retweeting between unconnected accounts too.
Beta-testing is just about finished on the initial version. There are only a few more things to do before we just need to clean up the look of the mobile web version.
Things like RSS/Atom feeds and Twitter account growth-hacking have been pushed to version 2.0.
There was a problem and I didn't know it
Last week we had some unexpected downtime. The server took an hour-long hike through La-La Land.
That's not the problem. Actually, it ended up being part of the solution.
Isn't it funny how sometimes a kick in the chops is exactly what you need?
There were many tweets that never posted. No kidding, right?... no server, no tweets.
I found the real problem when I went in to clean them up.
I found that failed tweets, the dreaded error 403 and tweets that simply never posted, ran a little under 3%.
Considering we tweeted over 20,000 times so far, that's a lot of missed tweets.
For the uninitiated, error code 403 means "action forbidden." It's basically Twitter telling us to go to Hell.
True, Twitter can get finicky. It gives manual tweets priority. So, yes, some missed tweets are inevitable.
Three percent is waaaay too many, though.
I also found tweets that were scheduled to tweet before they were actually created. You read that right. Tweets were scheduled in the past.
A neat trick if I could pull it off.
I can't.
I dug into the "why" of it
First off, I looked into why some tweets got scheduled in the past. I know they were scheduled that way because the database showed a tweet date/time before their creation date/time.
Turns out it's easy to do.
We use eight possible scheduling methods. A few of them can schedule in the past.
That's weird, but it's also okay.
Let me explain.
Say I want to tweet every day for 30 days starting today. I want to tweet at 6:00, 9:00, 11:00, 14:30, 18:00, and 21:00. (Close enough anyway. The Build a Daily Schedule function actually randomizes the tweet minute within either the first half or second half of the hour.)
Let's also say that I built that schedule at 15:00 today.
Four tweets would be scheduled in the past. They would never tweet. It can be annoying to see them listed as pending tweets on the dashboard.
I thought of running a verification before writing to the database. The multiple time zone issue made that impractical. It's easier to let them write to the database and erase them later.
That's what we did.
Annoyance goes bye-bye. So did about half of the missed tweets.
Then I turned to the ugly 403s.
I dug deeper. That's when I nearly fell off my chair.
My first thought was that there was a coding error somewhere.
I was not a happy camper. Many people think I'm the easy-going sort. I'm not. I have an A-Bomb temper connected to a super-long fuse.
My fuse was nearing its end. I was ready to dine on Braised Haunch of Programmer.
The programmers' haunches are safe. There was no error, at least not in coding.
Tweets are a maximum of 140 characters long.
That's Twitter's rule. That's cut in stone.
Many scheduled tweets blew right by that limit.
The longest was 249 characters long.
We didn't have a 1.5% failure rate, we had a 100% failure rate on some tweets, and a minuscule failure rate on all the others.
Tweets that are too long trigger a 403. Every single 403 error, except for 17, was due to overly long tweets. The other 17 were due to an error in API access for a single user. It was caught and fixed, quickly.
The standard solution is to limit the size of a tweet at the point of creation, the web form. You know the type of thing. Enter text that's too long and you get something that says "Your text is too long. Use a maximum of 140 characters."
We can't do that.
For Twitter, 140 characters isn't 140 characters at all. It can be much longer and still qualify.
For example, Twitter uses a proprietary URL shortener. No matter how long the link to your post really is, it's 23 characters long. Add a space before and after and it becomes 25.
So, https://www.bebee.com/producer/@paul-croubalian/emulsification-racism-and-getting-along uses up all 140 characters by count. It only uses 25.
The same thing goes for image links. No matter the file name size, they use 28 characters.
Also, many users prefer to schedule Share-to-Twitter links or Twitter Cards. That frees up the image's use of 28 characters at the cost of lesser impact.
A Twitter Share/Card's image is smaller and is cropped to its center third, height-wise.
So, no, I can't simply warn users their text is too long.
Worse still, the issue doesn't stop there. We needed to deal with hashtags too.
Hashtag Rotation
When scheduling a tweet, the user adds in a list of 5 or more hashtags. The system adds one to each scheduled tweet in order.
This solves two issues.
- Scheduled Tweets are different enough that we don't bug anyone.
- We can use Zapier or IFTTT recipes to automatically cross-post to other platforms. When the recipe sees a tweet with #in, (e.g.) it knows to post an update to LinkedIn.
It may seem obvious, but hashtags are made up of characters. They count towards the 140. They also need a space and the # symbol. That's two more characters. They count too.
The challenge was to figure out a way to allow the user maximum flexibility with no 403s. But, there's no way for us to know which hashtags the user will want to use.
This may be controversial. Hashtags are vital. We added an auto-hashtag feature.
If a user enters less than 5 hashtags, the system will add hashtag(s) to bring the total up to 5. The hashtags it will add are, in order, tribes, beBee, b2b, tribes, b2c.
If the user lists five hashtags, the system adds nothing.
Since this may prove controversial, I'm open to your feedback.
The Changes We Made
We added two scripts. One counts the number of characters the user enters. The other works out the maximum length of eventual possible hashtags.
We also added the character length of the most popular hashtags. It's the number in parentheses. The other number is how often it's been used.
Hopefully, with this information in hand, we will be able to avoid overly long tweets. Fingers Crossed.
For now, these scripts are only on the Store a Tweet function and the Schedule by Minute Interval method.
Let's see how you guys like them before we roll them out to the other scheduling methods.
Forced ReTweets on Connected Accounts
Before we start on Cooperative ReTweeting between unconnected accounts, we wanted to nail down the Forced ReTweeting for connected/owned accounts.
People who manage or otherwise control multiple accounts often need to schedule ReTweets between them.
That feature is now live on the Schedule by Minute Interval method. It will roll out to all the other methods after we get feedback.
Now that I think of it, if there are any Multi-Account Managers out there who would care to help, please message me. I only have two accounts so I can't put the systems through its paces very strenuously.
We can run simulated tests if you're more comfortable with that.
Above, you can see my measly "list" of one other account.
Hitting the Schedule Tweets buttonschedules tweets on the primary account and schedules retweets for supporting accounts. One click does it all.
We use the Old School method for Supporting ReTweets. They can be used with full tweets, Twitter Cards, or Share-to-Twitter URLs.
A sample Old School ReTweet is above.
Beta-Testers: I'm looking forward to hearing from you
Articles from Paul "Pablo" Croubalian
View blogI think my re-entry · into the dating world would make a good sitcom. Or maybe it would make a bette ...
Consumers can contest charges made against their credit cards. That’s their primary recourse against ...
Someone once told me the most common element on Earth is iron (symbol: Fe). I don’t think so. I thin ...
Related professionals
You may be interested in these jobs
-
Process, Layout
Found in: Talent CA C2 - 4 days ago
SEGULA Technologies Brampton, Canada Full timeCompany Description · Accelerate your career with a fast-growing global engineering group. At SEGULA Technologies, you'll work on exciting projects and help shape the future in a company where innovation is inextricably linked to engineering. · 3D printing, augmented reality, au ...
-
labour relations specialist
Found in: Talent CA 2 C2 - 5 days ago
Canadian Mortgage and Housing Corporation (CMHC) Montreal, CanadaEducation: · Expérience: · Education · Bachelor's degree · Business administration and management, general · Labour and industrial relations · Human resources management and services, other · Work setting · Government administration · Tasks · Establish and implement policies an ...
-
Analyste d'affaires
Found in: Talent CA C2 - 4 days ago
GUAY Inc Québec City, CanadaÀ titre d'Analyste d'affaires chez GUAY, tu seras un acteur clé de la transformation numérique de l'entreprise. Au quotidien, tu travailleras en étroite collaboration avec l'équipe dédiée à l'amélioration continue et ta mission consistera à guider et soutenir activement les conse ...
Comments
Paul "Pablo" Croubalian
7 years ago #9
Nope, one has no bearing to the other. Of course, tweets scheduled show up in the feed and profile section
Paul "Pablo" Croubalian
7 years ago #8
www.paultheghost.com/Scheduler/JoinUs.php Come join the fun, Jena
Paul "Pablo" Croubalian
7 years ago #7
Either way will work now, Lisa. The system adds a # when it writes the tweet. I set it to delete any #, commas, or extra spaces when the tweet is scheduled. If you accidently schedule in the past, they will be deleted every time you access your dashboard. To be specific, any untweeted tweet scheduled for before today (whenever "today" is) gets deleted. No need to even think about it. The bigger issue is in skipping hashtags or going long on a tweet. There are some Twitter changes expected Sept 29. What we do here will still work fine. You will likely have more room. We'll adjust limits as needed.
Lisa Gallagher
7 years ago #6
Even 200 characters would be nice vs. 140!
Lisa Gallagher
7 years ago #5
Paul "Pablo" Croubalian
7 years ago #4
Yes, Donna-Luisa, promotion on Twitter is much like radio advertising. You can't just run one spot. You need to run many. Twitter has a built-in tweet scheduler, but you need to enter each instance one at a time. That takes far too much time. The time-wasting is worse for those who manage multiple accounts. It's much worse Most Twitter applications focus on growth-hacking. I am of the opinion that most do it wrong. V2.0 will do it right. For now, we are sticking to scheduling tweets for maximum promotional impact. Soon, we will move to supporting each other with ReTweets based on subject matter (tribes) and connection (clans). The growth hacking component will also be based on tribes
Paul "Pablo" Croubalian
7 years ago #3
Yes, they've been talking about it for about 3 months now. No one really knows exactly how they'll implement what or on what schedule. We'll cross that bridge when we get to it. That's one of the reasons we did what we did and how. We have more flexibility in implementing the new stuff if and when it shows up. Remember how Twitter said they were going to bump up to 10,000 characters? I'm still waiting
David B. Grinberg
7 years ago #2
Paul "Pablo" Croubalian
7 years ago #1
LOL, you aren't the only one, Aurorasa.