DEV Community

Cover image for Moar Automation in DevRel - Build a Slack bot that notifies you about relevant Dev.to articles
Jan Schenk (he/him) for Postman

Posted on • Updated on

Moar Automation in DevRel - Build a Slack bot that notifies you about relevant Dev.to articles

Update: The zap order and filters got updated to minimise the chance for articles getting missed. I ended up rewriting this article instead of updating and commenting single steps.

Cover image credits partially go to Justin Yoo and his article. Justin's a highly appreciated former colleague of mine, and he's hopefully ok with a cameo on this article.

Hey there,
I'm Jan, a Program Manager in Developer Relations at Postman, and my mission is to help Developer Relations scale their efforts and developer advocates to do their job with the highest possible impact. I create processes, community and developer programs, and automate stuff. I collect and process data to prioritise fields of activity, e.g. events or platforms. I generally work on strategic stuff to help make decisions where the ship should be going.

That's why I'm on dev.to, too: because you all are developers potentially interested in Postman topics, you are the ones that we at Developer Relations want to succeed in what you do. And before we can do that, we need to know what you all are talking about and what challenges you face, and which of these issues we have the capability to help solve.
To know what's going on in terms of APIs and Postman-in-the-wild, I created I bot that deploys a message a channel on our company Slack whenever a new article that features the tag API or mentions Postman in the title or the article body is being published.

Creating a Slack App. Or rather not.

Slack doesn't have an app for dev.to, so I went the nowadays rather usual route through Zapier.

Screenshot of three zaps in Zapier's dashboard, all names starting with "Slack notify on new Dev.To" and then either go "API tagged article", "Postman mention" or "Postman tagged article"

There's an RSS feed publicly available for all articles that get published on dev.to: https://dev.to/feed/. When I started I wanted to monitor new posts that gets published with the API tag only. Dev.to's algorithm is heavily focused on tags. My assumption was that most people know that and we would have quite a good filter for everything API related when monitoring this platform tag. So I was searching for a feed that only updated with new publications to this tag. I eventually found it at https://dev.to/feed/tag/api.

Triggering zap no.1 by tag

Screenshot of the zap's trigger section

And here's what I did for the API-tagged articles for notifications:

Screenshot of the zap's Slack action

Also finding mentions of "Postman"

As my thoughts developed, and I realised I wanted to monitor for keywords as well, I added two intermediary steps in this zap, to find out if Postman was mentioned in the body, using Formatter:

Screenshot of the Formatter action step in the zap, that finds "Postman" in the body

The Formatter would string.find Postman and then return a positive integer or -1 in case "Postman" isn't found.

The next action would create a string depending on the previous output integer through number.spreadsheet_formula. This string will already be what goes into the Slack message ("Postman was also mentioned in the article"). That way I wouldn't need to create an extra condition in composing the message.

Screenshot of the second Formatter action using an IF statement to create a string

Next step

Triggering a second zap for news on the general feed

Then I added another zap:

Screenshot of a zap in Zapier's dashboard, called "Slack notify on new Dev.To Postman mention"

That would take the general feed from https://dev.to/feed and filter for title or body to contain a mention of Postman.

Screenshot of the trigger section of the second zap

Filter by "mentioning Postman"

The title or the body of the article needs to mention the keyword "Postman" for this zap to continue. But It wouldn't let through any articles that are already covered by the first zap (and the third, to be honest). I filtered for the "api" and "postman" tag as well, called Category in the feed, to not being listed. Only continue if none of these tags are used. Otherwise this zap would be executed although the article was already covered by the first (or the third) zap.

Screenshot of the filter section of the second zap, filtering title and body for a mention of Postman, and tags for not mentioning api or postman

And this is the action that is being taken, sending a message to a specified channel on Slack, providing the link and also the fact that Postman has been explicitly mentioned.

Screenshot of the action section of the second zap, defining what should go into the Slack message

Screenshot like the one in the cover image, showing a unfurled link to an article on dev.to and mentioning in text, that this article mentioned Postman

A third zap

There's another tag on dev.to that we would want to monitor: postman. It has 182 posts at the time of writing, and this volume could be increasing. Why not directly monitor it as well.

I duplicated zap no.1 and deleted the Formatter steps. No need to find out if the mention Postman. If you consciously use the postman tag, we'll definitely want to read it anyway. =)

Screenshot of the overview trigger and action for the zap

What it's good for

Now all of my colleagues interested in API or Postman related activity on dev.to could join this channel and get notified if they chose to - through Slack.

I hope we'll soon see more Postmanauts - that's what Postman employees call themselves, referring to the company's mascot of an astronaut - actively engaging in discussions on dev.to.

Reach out if you want to know more about Program Management in DevRel.
Stay safe. <3

Update: There's a high chance that dev.to's main feed is updating with multiple new entries, so your article might get swallowed and not show up for the automation. I'll try swapping filter logic between the two zaps and see if that helps avoid the situation.

Discussion (6)

Collapse
andypiper profile image
Andy Piper

I like the conditional filtering here! I plugged the RSS feed from the twitter tag into a Slack channel internally as well - pretty straightforward and useful to keep folks interested in what is being written externally.

Collapse
jansche profile image
Jan Schenk (he/him) Author

We do have that for Twitter, GitHub, Discourse. I didn't build these though, so I was starting from scratch. I assumed most of the larger platforms have a Slack app, that could do these things?

Collapse
michaeltharrington profile image
Michael Tharrington

This is so awesome! 🙌

Really appreciate you sharing this one.

Collapse
jansche profile image
Jan Schenk (he/him) Author

Thank you, @michaeltharrington!

Collapse
jeremyf profile image
Jeremy Friesen

@jansche definitely interested in hearing more about any "nice to haves" you've encountered in building this out; can't promise we'll get around to it, but we're definitely interested.

Collapse
jansche profile image
Jan Schenk (he/him) Author

Where to start ^^
I think the biggest shortcoming is currently that not every article triggers the zap, as the RSS feeds get updated unconditionally and might contain more than one new article per update. I ended up prioritising the lower-volume tag-specific feed over the general one, as I saw updates getting missed.
For the Zapier part, I wish I could do conditional steps and forking in the zaps, but I ended up with 2 zaps when my programmer's heart had wished for integrating these two into one single zap.
And well, I'd love to see some social analytics for dev.to. How often does Postman get mentioned, what's the trends in API articles, which articles perform well in terms of social interactions, which trend and should get priority attention from our team. But that's not to be accomplished by a zap, I guess. =)