Advent 2024 - 24 days of automation
Day 24 - Automatically Geolocate Santa
We've reached the last day of the calendar, and it's time for Santa's visit! Santa has been visiting some famous places all month. With the Geocoder module, Leaflet, a Geofield, and an Address field, you can automatically put each address Santa has visited on the map!
You do need to configure a geocoder source. We're using OpenStreetmap, from the geocoder-php/nominatim-provider.
Day 23 - Automatically moderate comments using AI
When you allow the general Internet to post comments, or any other kind of content, you're inviting spam and abuse. We see far more spam comments than anything relevant or useful -- but when there is something relevant or useful, we want to hear it!
With the AI module and the Events, Conditions, and Actions module, you can set up automatic comment moderation.
Like any use of AI, setting an appropriate prompt is crucial to getting a decent result. Here's the one we're trying out:
Day 22 - Automatically set fields on content
One of the easiest things to do with the Events, Conditions, and Actions (ECA) module is to set values on fields. You can populate forms with names and addresses from a user's profile. You can set date values to offsets from the current time. You can perform calculations and store the result in a summary field, which can make using them in views much more straightforward.
Day 21 - Parse out names, addresses, complex fields using AI
We've had several clients working with memberships, who have a single name field with the full name of a person. And then they ask us to build a directory that is sorted by last name. This is a bit hard to do if there's a first name in front of it!
Names don't follow rules very well. Some have apostrophes in them, some have multiple words -- you can't just take the last word of a name and assume that's the last name, because often it just isn't.
Day 20 - Automatically post to BlueSky
Since the 2024 election, the BlueSky social network has exploded in popularity, and appears to be replacing the cesspool that used to be Twitter. I'm not much of a social media person -- I much prefer hanging out in smaller spaces with people with shared interests. If you're like me, I would highly recommend finding a Mastodon server that caters to your interests, where you're sure to find rewarding conversations.
Day 19 - Add conflict detection on registration forms
Our Yacht Club client has three workslips that members can reserve for up to 3 days. Using core taxonomy, content types, views, and the Events, Conditions, and Actions (ECA) module, we built a system to allow members to make reservations, and have the system prevent double-bookings.
Day 18 - Make integrations with other services more resilient using a Queue
One downside of automating things is dealing with outages. Sometimes services go down, and are not available for some period of time. When this happens, how does it impact your automation?
If you don't design your automation carefully, you might lose the data entirely. Or get spammed by hundreds of submissions when it comes back up. Handling this correctly does end up needing some understanding of how the automation works, as well as any quirks of the remote system.
Day 17 - Automatically update a spreadsheet of active products
One of our e-commerce clients has several thousand active products. As a distributor, their clients are retailers, some of which like having an up-to-date product spreadsheet.
Using the Events, Conditions, and Actions (ECA) module along with a Views Data Export view of all products, we created a view of all the relevant fields that exports a spreadsheet of all their products, and saves it in their private media system once per day.
Day 16 - Build a membership application system
Drupal, with the Events, Conditions, and Actions (ECA) module can build up sophisticated applications without a single line of custom code. You can build full applications using a handful of Drupal modules.
Day 15 - Automatically post to Mastodon or other remote APIs
The ECA Helper module provides an action to make an arbitrary HTTP post to any URL. That's all that's necessary to post to Mastodon from Drupal, if you have a Mastodon account. I've been using this functionality to automatically post these advent calendar posts for the past week.
Day 14 - Control access to particular pages, fields with ECA
Drupal has long had a variety of access control modules, to make it so you can easily control who can view or edit particular pages. There are actually several different layers of APIs to control this in Drupal core -- the modules generally provide a user interface to let you control access by content type, by tagging content with particular terms, through their position on a menu, or through a group. The Field Permissions module lets you control access to particular fields on an entity.
Day 13 - Change the display of an event after it happens
Event Calendars seem to be very common on the Drupal sites we build. One of the best ways of improving engagement on a site is to add content about the event after it happens. People who attended an event might come back for a recap, or to see pictures or notes from other participants, while people who did not attend can get a sense of what a future event might be like based on your past events.










