...

So lately I've really been getting into using n8n. At first, it kinda reminds me of LabView from the bad ol' days where you're basically writing code/circuits with logic blocks and UI elements. Effectively, that's what you're doing but you still have the option to write code elements etc. Anyways, I've found it pretty fun and I thought I'd share a few of the workflows I've been toying around with.

So, as an example, I help out with my church's AWANA program. This is primarily an organizational role, so there is lots of communicating to do. It's one of the things that I wanted to bring to my role there. In previous years I would send out emails to volunteers the day before AWANA nights to remind them to sign up. Even though these are small things, they start to add up quickly...and I'm not always the best at remembering 😆. So, I thought, "Hey, why not automate this?". One thing that is also pretty important is that I setup a personal Slack account (free) so that I could wire up a bot to send messages to me about the automations.

I had already been using Google sheets to track information and signups for volunteers, and the N8N nodes for Google made it easy to plug those in. Just setup your Oauth creds and you're sailing. Here is a screenshot of the workflow I setup to send out reminders to volunteers:

Set of automations to manage AWANA
Set of automations to manage AWANA

I mean honestly, these are pretty simplistic, but it's more like an excuse to try it out and see it actually up and running quickly. The first two flows are time based triggers, where the first checks the list of volunteers I have and then emails them a pre-formatted reminder. The second then checks the list of volunteers that have signed up and sends me a Slack message with the list of names. The last is connected to the arrival of Gmail messages in my inbox, it does a quick classification to see if it matches some criteria that would indicate it is related to AWANA, then summarizes and posts it in Slack (and of course marks the email as read).

In addition to this, I setup a simple Slack bot agent, named "Gus" after my dog, that can just do some basic productivity tasks (for now...). Primarily, it's necessary to interface with Slack's API to get the bot working, but n8n makes it pretty easy to do this. Here is a screenshot of the workflow:

Gus workflow
Gus workflow

So Gus listens to all traffic and then looks for places where he's directly mentioned. Then he checks that its not from himself (that was interesting 😆), and then runs the agent. I used fabric to generate a prompt and then made some tweaks (specifically around formatting for Slack, since it ain't exactly MD). He can check my emails and search GH, and check the status of this site, etc. It's...okay. Honestly, I think he'd be better if I just wired up Gemini Pro (or ran a nicer Ollama model...but I don't have the hardware for that...yet 😬), but I'm cheap and he's not doing a lot of stuff yet. I find I have to be very specific or make the attached tools very specfic.

markdown
1# Persona: Gus, the Slack Personal Assistant (you're like a faithful labrador) 2 3You are Gus, a world-class personal assistant integrated into Slack. Your primary goal is to help users be more productive and efficient by handling tasks and providing clear, concise information directly within their workspace. 4 5## Core Attributes: 6 7* **Professional & Personable:** Your tone is friendly and approachable, yet always professional. 8* **Efficient & Concise:** You get straight to the point. Your responses are brief and easy to scan. Use short paragraphs, bullet points, and bolding to highlight key information. 9* **Proactive & Action-Oriented:** You don't just answer questions; you anticipate needs and suggest next steps. Your purpose is to move work forward. 10* **Reliable & Accurate:** You provide factual information based on the context given to you. If you cannot fulfill a request, you state it clearly. 11* **Be specific:** Provide quantitative responses (i.e. you have 7 unread emails...etc.) 12* **Try then adjust:** If you're not sure, try it (i.e. if I ask for updates and you have a label called CATEGORY_UPDATES, use that label and respond to the request then ask if that is what I meant) 13 14## Key Capabilities: 15* **GitHub Access:** Pull files, summarize, access repos for Github users 16 **IMPORTANT NOTE!** my github name is "thelamppostdev" so when I refer to "my" repos or files, etc. "thelamppostdev" is the name to use with the GitHub tool 17* **Summarize:** Condense long Slack threads or documents into key points and action items. 18* **Draft:** Compose professional messages, announcements, or replies based on user requests. 19* **Organize:** Help schedule meetings, set reminders, and create to-do lists. 20* **Retrieve Information:** Answer questions based on the context of the current conversation or provided documents. 21* **Email:** You have tool access to emails use them when needed. When I ask about emails, summarize the text. 22 23## Formatting & Style: 24 25* Use Slack-style markdown for clarity (e.g., `*bold*` for emphasis, `•` for bullet points). 26* Avoid ** bold formatting that will not work in Slack messages 27* Use emojis sparingly to add personality. 28 29## Interaction Flow: 30 311. **Listen for Mentions:** You only activate when a user mentions you with `@Gus` in a message. 322. **Acknowledge & Act:** You briefly acknowledge the request and then perform the task. 333. **Deliver Results:** You provide the. information or result in a clear, concise message. 344. **Await Next Command:** You then wait for the next mention. 35 36Chat message from user: {{ $json.text }}

I think thats enough for now. So far it has been pretty nifty, and genuinely helped so I'm not copying draft emails, etc. The biggest thing is that I am self-hosting N8N an old laptop (I'm cheap, remember...) and I forget that I can't just cart it off because, of course, then the server isn't running 🤦‍♂️. I have plans for the Gus bot to do more, but not totally clear on the capabilities yet. Although one of my favorite things is seeing my dog's little synthetic face in my Slack feed.

Synthetic Gus.  He really is that glad to see you.
Synthetic Gus. He really is that glad to see you.