Opening Problem Statement
Meet Sarah, a financial analyst at a mid-sized SaaS company. Every month, she spends hours gathering key financial metrics like active customers, new sign-ups, and recurring revenue from various sources to report to her team on Mattermost. This manual process is time-consuming, prone to errors, and often delayed, leading to missed insights and slower decision-making.
Sarah is overwhelmed juggling her core analysis duties with repetitive reporting tasks, losing roughly 4 hours monthly just on data collection and message drafting. She wishes there was a way to automate this monthly financial snapshot directly into her team’s Mattermost channel.
What This Automation Does
This workflow automates the retrieval and sharing of your monthly financial performance metrics from ProfitWell to Mattermost. Once set up, it runs automatically at the start of each month and produces these key outcomes:
- Retrieves monthly metrics from ProfitWell such as active customers, trialing customers, new customers, growth rate, and recurring revenue.
- Formats a clear summary message embedding all these metrics dynamically for easy readability.
- Posts this summary message directly into a specified Mattermost channel to update your team instantly.
- Runs on a fixed monthly schedule without any manual intervention, ensuring timely updates.
- Reduces manual reporting time by about 4 hours per month and eliminates human errors in data copying.
- Enables quick financial overview access for stakeholders promoting faster decisions.
Prerequisites ⚙️
- n8n account: You’ll need an n8n account to create and run the workflow.
- ProfitWell API credentials 🔑: For accessing your subscription and financial metrics data.
- Mattermost API credentials 📧: To post messages in your Mattermost channels.
- Basic familiarity with n8n interface and credential setup.
Step-by-Step Guide
Step 1: Setting Up the Cron Trigger for Monthly Automation
Navigate to your n8n editor. Click + Add Node → search for and select Cron.
Configure the Cron node by setting the trigger time to 9 AM on the first day of every month. You do this by setting the hour to 9 and choosing everyMonth as the mode.
This node schedules your workflow to execute at this exact time, kicking off the automation every month. After saving, you should see the cron icon marked as active.
Common mistake: Not selecting the correct schedule mode (must be everyMonth), which will prevent the workflow from running monthly as intended.
Step 2: Configuring ProfitWell Node to Fetch Monthly Metrics
Add the ProfitWell node (search by name) and connect it right after the Cron node.
In this node’s parameters, select the monthly type to specify the data range you want. You need to authenticate using your ProfitWell API credentials (set these up under Credentials if you haven’t yet).
This node pulls your subscription and financial metrics like active customers, new customers, growth rate, and recurring revenue for the previous month.
Visual clue: Once executed, you’ll see a JSON output with keys such as active_customers, new_customers, growth_rate, etc.
Common mistake: Forgetting to properly authenticate or selecting the wrong “type” parameter will cause empty or failed data retrieval.
Step 3: Sending the Metrics Message to Mattermost
Add the Mattermost node after the ProfitWell node.
Configure the Mattermost node to send a message to your desired channel using credentials for Mattermost API access.
In the message field, enter the dynamic template that uses data from the ProfitWell node. For example:
=Active Customers: {{$node["ProfitWell"].json["active_customers"]}}
Trailing Customers: {{$node["ProfitWell"].json["active_trialing_customers"]}}
New Customers: {{$node["ProfitWell"].json["new_customers"]}}
Growth Rate: {{$node["ProfitWell"].json["growth_rate"]}}
Recurring Revenue: {{$node["ProfitWell"].json["recurring_revenue"]}}This template automatically fills in current financial figures fetched from ProfitWell.
Specify the channelId that corresponds to the Mattermost channel to post into.
After saving, test the node to verify the message posts successfully.
Common mistake: Not setting the correct Mattermost channelId or invalid API credentials will cause message delivery failures.
Customizations ✏️
- Change Reporting Time: In the Cron node, adjust the hour or switch to weekly if you prefer a different frequency.
- Add More Metrics: Extend the ProfitWell node output fields to include churn rate or MRR details, then update the Mattermost message template accordingly.
- Post to Multiple Channels: Duplicate the Mattermost node and configure each one for different channel IDs to broadcast reports to several teams simultaneously.
Troubleshooting 🔧
Problem: “ProfitWell node returns no data or empty JSON”
Cause: Incorrect API key or wrong type parameter.
Solution: Double-check your ProfitWell API credentials in n8n, and ensure the type is set to “monthly” exactly.
Problem: “Mattermost message not sent”
Cause: Invalid channel ID or API token.
Solution: Verify the Mattermost API credential and confirm the channel ID from Mattermost is correct.
Pre-Production Checklist ✅
- Confirm Cron node is set to trigger every month at the desired hour.
- Test ProfitWell node independently to ensure it fetches accurate data.
- Validate Mattermost node with a manual run to confirm message posting works.
- Verify all credentials are correctly set in n8n’s credential manager.
- Backup workflow JSON before deploying live to revert if needed.
Deployment Guide
Once tested, activate your workflow in n8n by toggling the active state switch.
Your automation will now run monthly without further manual input.
Regularly monitor executed workflow runs in the n8n interface to check for failures or errors and review logs.
FAQs
Q: Can I use Slack or Discord instead of Mattermost?
A: This workflow is tailored for Mattermost’s API node. You can replicate the logic using Slack or Discord nodes in n8n but will require changing the destination node configuration.
Q: Does this workflow consume API credits?
A: It only makes one API call per month to ProfitWell. Typically, this is minimal and unlikely to breach limits.
Q: Is my data secure?
A: n8n stores your API credentials securely. Ensure your n8n instance is well protected and access controlled.
Conclusion
By following this detailed guide, you’ve built an automated financial metrics reporting system that fetches ProfitWell data monthly and posts it to your Mattermost channel. Sarah’s pain of manual report compiling is solved, saving her about 4 hours every month and ensuring timely, error-free data sharing.
Try extending this workflow by adding alerts for key metric thresholds or integrating data into dashboards for richer insights. You’ve just stepped into smarter financial operations with n8n and ProfitWell!