Tweeting Blogs with Hashtags Automatically with IFTTT Pro

Nov 10, 2020 javascript twitter
This post is more than 18 months old. Since technology changes too rapidly, this content may be out of date (but that's not always the case). Please remember to verify any technical or programming information with the current release.

I’ve been trying to balance automation with interaction with my social media broadcasting. I want to automatically tweet new blog entries, yet I want to target hashtag trends. Luckily IFTTT Pro has launched and can help us do this.

If you’re not familiar with IFTTT Pro, you have to check it out - the regular IFTTT but with more features and scripting. My idea was simple: use the existing applet I have to automatically tweet my blog entries but add hashtags. I could do that with the javascript that is now available with IFTTT Pro.

The Javascript

First, let’s look at the javascript. This is going to be a contrived example, though:

let incoming = 'There were three fish that swam afish in the Pond. The day was better than great. I have pondered';

const hashtags = [
  'fish',
  'pond',
  'pondering',
  'pondered',
  'great',
  'bet',
];

hashtags.forEach(h => {
  const regEx = '\\b(' + h + ')\\b';
  incoming = incoming.replace(new RegExp(regEx, 'gi'), '#$1');
});

console.log(incoming);

The incoming variable holds what my tweet might be - or the incoming blog entry title. Then, I create a variable of hashtag terms that I’d like to target. This would be ones that really resonate with your audience. The next section puts the # in front of any of the words that matter. Finally, we look at the result with console.log - which is:

There were three #fish that swam afish in the #Pond. The day was better than #great. I have #pondered

Why did I pick this phrase and words? Let me explain. First, fish makes sure it matches the word fish but not matches when that word is in the middle of a word, like afish. pond is used to make sure that we match Pond but don’t change it’s case. We also include pondering and pondered to make sure that pondering never is matched, and that that’s ok. pondered makes sure that we match words at the end when there are no more words left. Finally great is used to make sure we match - even when there is punctuation - and bet is used to make sure we don’t expand into a word that isn’t fully that word - like better.

Now, let’s apply this to our blog tweeting applet on IFTTT.

IFTTT Pro

Begin by creating your own applet.

Search RSS to find the RSS posting action.

Choose New feed item.

And fill in your RSS feed url.

After you create create trigger, you’ll have the option to add your action. You have to add your action before you can get the helpful hints on javascript objects to filter your tweet. So, don’t click the + and instead click Then That

Search for Twitter and choose that service.

Then, choose to post a tweet.

You can just leave whatever is in there right now. We’ll be replacing this anyway later.

Create the action. Now you can click the + between the If and Then.

Choose Add filter

Here’s where we can fill in our javascript from above.

But with some edits:

let incoming = Feed.newFeedItem.EntryTitle;

const hashtags = [
  'fish',
  'pond',
  'pondering',
  'pondered',
  'great',
  'bet',
];

hashtags.forEach(h => {
  const regEx = '\\b(' + h + ')\\b';
  incoming = incoming.replace(new RegExp(regEx, 'gi'), '#$1');
});

Twitter.postNewTweet.setTweet(incoming + ' ' + Feed.newFeedItem.EntryUrl);

You’ll notice we can’t replace the Entry Title. We can only set a new tweet. So, we do our replacement and then add back in our incoming which was the modified title. We need to make sure to add the URL back, though, as when we call setTweet we’re starting from a plain blank slate.

Then, you can accept these changes. You’re almost done. It will generate a name for you, but I edited mine to be just a bit easier to read:

End Notes

Now, with this enabled, your blog entries will automatically tweet out a title and URL. But, with your chosen hashtags, you will now add hashtags to your tweets, but not require to have them on your blogs themselves. Awesome!

Go to All Posts