About three months ago, I was hired by ArgonDigital as a Technical Specialist. At the time, I was about one year out of a software engineering bootcamp where I had spent 12 weeks learning mostly MERN stack web development skills. I had basically zero idea what the term “Enterprise Content Management” actually meant, but I knew that I was hired to join the Operations team and was going to be working mostly in the ECM space, specifically with M-Files. This is the story of what happened in my first three months “drinking from the firehose,” as we like to say here.
M-Files Partner Training
The first thing I started on was the M-Files partner training material, which is basically a bunch of videos organized into a loose curriculum and interspersed with quizzes and tests along the way. I didn’t get the opportunity to touch the actual M-Files software until I was most of the way through the recommended basic/intermediate level courses. Thankfully, the training videos were really well done and even had some interactive sections so I could get a feel for what the software would be like in real life. By the time I got my hands on my first M-Files sandbox vault, I didn’t feel like I was in completely foreign territory. The training videos definitely had a smoothing effect on my learning curve. M-Files is relatively intuitive to work with, but the training videos did a great job of putting the need-to-know stuff front and center, which really helped get my M-Files journey started a lot faster than it would have been otherwise.
On-the-job Coaching Really Helps!
On-the-job Coaching Really Helps!
Once I was through the training, I almost immediately started ramping up to join a sizable ECM project that ArgonDigital had been working on with a customer for about a year. I started out on the project mostly shadowing another one of our more senior Tech Specialists, and she did a wonderful job coaching me. Every day I was getting more and more comfortable in the space, and she was slowly giving me more technical tasks to work on. Then I learned that she had recently decided to take a leave of absence for personal reasons, and that I had a little less than one month to get up to speed; at least to the point that I could (attempt) to start filling her shoes.
I’d be lying if I didn’t say there was probably a solid day of me just totally losing my mind and panicking about how I could possibly handle all this responsibility. But eventually I calmed down and I just kept moving forward. I’m so unbelievably grateful that I had that Senior Tech to show me the ropes with this client, because at that point in the project, there were so many specific decisions made, and configurations set up, that it would have been a real challenge for a newbie like me to get up to speed just by poking around their M-Files vault with my limited knowledge. I’m not saying it would have been impossible, I’m just really glad I didn’t have to take that route.
Setting up a Workflow
One of the first big tasks I worked on was a relatively complicated workflow. It involved setting up an email source that regularly pulled emails from an inbox that had been configured to filter emails by certain keywords. Those emails are turned into M-Files documents and assigned some default metadata based on which Outlook mailbox they came from. Then users claim an email to work on and produce a new PDF Portfolio document based on information contained in the email. This new PDF Portfolio document then goes through a series of review states, before eventually getting faxed, and then moving to a complete state where another team is notified of its completion.
I was happy to discover that M-Files has some really powerful tools for putting something like this together—I made use of almost all of the workflow features, including actions to send custom notification emails when needed, conditions to require users to set certain metadata fields before moving to the next workflow state, and triggers to automatically move to various workflow states based on a review assignment being approved or rejected, for example. The final version of the workflow ended up being a web of states and triggers, but thanks to the M-Files workflow UI it was all clear and organized and relatively easy to understand.
Migrating Documents into M-Files
After the workflow, the next big task I worked on was migrating thousands of documents from a shared windows drive into M-Files. The process our team came up with was to create a rules engine written in Python that walked the client’s file system and parsed the file paths for metadata based on the various rules we had set up. For a really basic example, if a file was located in a folder named “Invoices” we could set up a rule that assigns a Document Type of “Invoice” to all the files in that folder.
Our Python script would generate a CSV document that we could then feed into an M-Files importer tool (a specific tool for M-Files Partners to utilize) that would automatically add all the documents to whichever vault we specified along with all the metadata that we had gathered and organized in the CSV. We clocked the importer at a rate of about 1 document every 3 seconds, which is significantly faster than we could do manually.
Once we finished migrating a particular batch of files, the next thing we did was set up logical views in M-Files. I’ve definitely come to learn the power of views in M-Files—there are so many different ways you can combine filters and grouping levels to get files to show up exactly how you want them. If one user wants to see all their documents organized into virtual folders by Fiscal Year and then by Fiscal Month, that’s no problem. If another user doesn’t want them subcategorized by Fiscal Month—no problem either! Just make a new view for that. The flexibility that M-Files provides for users to organize their files is absolutely unparalleled.
One of the challenges I’ve encountered with Views in M-Files is getting users to understand how they function, because most people are so accustomed to how traditional folders work. When you put a file into a traditional folder, the file just stays in that exact same folder until it’s either moved or deleted. But views in M-Files are dynamically generated based on metadata—so if you set up one view to show all Finance class documents, and group them by Fiscal Year, you’ll get a virtual folder structure that looks something like: “Finance > 2009 > Invoice2.docx”. But then you could have a totally different view that’s set up to show all Finance documents by Document Type, and the structure might look like: “Finance > Invoices > Invoice2.docx”.
So, there are two totally different ways to get to the same document, which can be confusing if you’re still thinking in terms of traditional folders where documents don’t move between folders.
There are also a bunch of really powerful features that fall into a more “advanced” kind of category that I want to mention briefly—things like the Configuration Accelerator add-ons: Object Creator, Managed Properties, and User Synchronization. These are all tools that M-Files provides to add even deeper levels of customization/configuration for a specific project. I’ve only begun to scratch the surface with some of those tools, but I’m looking forward to learning more about them as I continue on my ECM journey.
We’re still working on this particular migration, and there’s still a ton of work to be done, but with the foundation I’ve gained from those first 90 days, I feel reasonably confident that I’ll be able to tackle any new issues as they arise. I’d highly recommend checking out M-Files to anyone who’s curious about exploring modern ECM solutions. The strategies they’re using to categorize documents are really powerful when harnessed correctly, and the learning curve is really not that bad once you just dive in—Take it from me!