Inspiration

When I learned that n8n had released a public API and that I could finally build Packs in Coda, I knew the time was right for me to build the bridge between these two awesome tools.

I’ve built hundreds of automations in n8n for many different use cases, but I’ve always been frustrated with the dashboard. Imagine having hundreds of different workflows in there...it’s all but impossible to find anything.

A particularly difficult but essential task: finding a specific execution based on when it ran or how long it ran for, so that I can dig into the details and debug what went wrong.

Here’s another one: turning off all active workflows in an emergency situation. This would have saved me a ton of pain at my last company. 😅

I also wanted the ability to get a high level overview of my entire instance. How frequently are workflows running? How long are they running for? Are things operating normally or are there weird things going on?

These were all important features that the n8n dashboard couldn’t and doesn't provide out of the box.

So I created this Pack and this Doc to meet my needs. After all, that’s the magic of APIs and no-code tools, isn’t it? ✨ Now, I can control, access, and monitor my n8n workflows better than ever before, and so can everyone else :)

What it does

There are 4 key functionalities that this Pack and Doc enable.

  1. Control Panel

    • Activate, deactivate, and delete your workflows from a single place
    • Easily and quickly find the exact workflow you’re looking to control
    • Emergency button 🚨 to turn off all of them at once
  2. Workflows Explorer

    • Find workflows easily:
    • Filter by active / inactive
    • Filter by webhook
    • Filter by date created / date updated
    • Search by name
    • See which workflows are using which nodes
    • Find webhook IDs directly from here
    • Open any workflow in n8n with one click
  3. Executions Summary

    • Get a high level health check of your latest executions to quickly identify issues and trends
    • See how many times each workflow is executing per day, over a given period of time
    • See the distribution of execution run-time for each of your workflows
    • See the split of executions across your workflows for a given time period
  4. Run History

    • Find executions easily:
    • Filter by run-time
    • Filter by mode (trigger, retry, or manual)
    • Filter by finished / not finished
    • Filter by date
    • Filter by workflow
    • Isolate only executions with a run time longer than a selected duration
    • Open any execution in n8n with one click

How we built it

I am not a developer by training (I'm a mechanical engineer), but I've picked up some skills in the past year and a half as I've dove deep into the no-code space and built projects that required a bit of coding knowledge (think Bubble, n8n workflows, Airtable automations).

I've also worked with a ton of APIs before (in the context of building n8n workflows), though, so no stranger to interfacing with APIs.

I basically just checked out the n8n API documentation, took a look at some of the full Pack code examples provided by Coda, then went for it step by step, starting with auth! I had already built a simple Pack to get myself acquainted with the basics, so I built on what I had learned there and didn't have to start from scratch here.

I built fully in the Coda online code interface - not advanced or knowledgeable enough yet to do the whole CLI local machine thing.

Challenges we ran into

The toughest part of this challenge was figuring out how to link objects, and also how to create sync table parameters with options that come from the API. I wanted to link each execution to a workflow, and I wanted a user to be able to choose a specific workflow to sync executions from.

Another challenging part was authentication. Because each user's instance & thus API domain is different, I had to figure out how to do that. Struggled to find the right way to do this - luckily I was able to get a bit of help from Eric!

Accomplishments that we're proud of

Mostly I'm just proud of making something that actually works and responds to a painpoint that I personally have experienced. Hopefully I can find other people who also share this pain :)

Pretty proud of the Doc I put together too, I think it showcases perfectly how this Pack should be used.

What we learned

My biggest takeaway: next time, I should really start with the Doc and the user's needs before writing any lines of code. That'll help me not get carried away with too many features or too large of a scope.

In this case, I am the end user so I pretty much knew in my head what features and functionality I wanted, but I never actually wrote it down on paper even...so next time, I'll start with the user's pain points / needs first, clearly lay those out, and then use that to inform what features I should build first and prioritize.

What's next for n8n for Coda

On the product side, I'm looking forward to building out some additional features that will be enabled by some updates from n8n. Particularly, the ability to bring in up to 10,000 executions will be huge! Right now it's limited to 250, which is only useful if a user doesn't have that many executions happening or if they're executing at relatively low frequency. Waiting on some bugs to be fixed on the n8n side to enable that.

Another feature coming soon is the ability to pull in data from individual nodes inside each workflow. For example, I'd like to pull in the error message for any workflows that error out. This is possible already, but just need to add the code.

Also planning to monetize this and start marketing this and spreading the word to get more people using it! I think it's a big step up compared to what exists right now, and so I want to help:

  1. More n8n users to know about this dashboar, and bring them over to the wonders of Coda!
  2. More Coda users to try out n8n, and discover how awesome it is! I think it's the best automation tool out there but still relatively undiscovered compared to Make or Zapier.

Built With

Share this project:

Updates