DYI: Repost Automation
For a while, we used Zappier to automate post announcements on social networks. However, service and application providers interpret "always" differently than we, mere consumers, do. Drifting service terms, plans, and APIs led me to say, "Now, it's DIY time."
Any project, big or small, starts with planning and preparation. But even before that, you should have your goal set or, in Agile terms, have a clear "Definition of done." In this case, it is not a long one:
With that definition, I extensively researched the major automation and integration services to find the right balance between cost, complexity, and preconfigured adaptors. The finalist in this research is WebMethods.io Integration, provided by Sofware AG. The main reasons are:
- The service offers a "Free forever" plan with a limited number of "transactions" per month. I will monitor consumption for a while, but we should be good even with the post/day rate.
- WebMethods.io Integration offers a wide range of preconfigured technology and application connectors.
- What is more important, it offers standard RESTful, SOAP, and other technology connectors.
- It supports most of the authentication and authorization protocols.
- It offers an extensive library of message transformations.
- If your integration requires some complex processing, it offers customer-code operations based on Node.JS for deep customization.
The screenshot below depicts the current state of the integration workflow.
- When a new post is published on this site, the Ghost blog engine sends a message to the integration using the integration service endpoint with the mutual API key validations.
- The message goes through a transformer, which converts the list of tags into a comma-separated hashtag string.
- TinyURL adapter shortens the post URL.
- Social network connectors publish announcements and use my API credentials and OAuth-based authentications. LinkedIn comes out of the box. WebMethods offers a Twitter connector but does not work well with X.
- On success, the last step logs adapter responses and terminates execution.
- The Global Error Handler logs errors to the dashboard for further examination and notifications.
I'm compiling a few additional posts about Webmethods.io Integration and how to create simple yet useful workflows.