Every week, teams wait for that one sales report that tells them whether the last seven days were a win or a warning. Now this creates pressure for the employee unable to handle or interpret the metrics and statistics.
This scenario can now be eliminated with the automation of reports. You can set up a workflow that gathers the sales data, builds summaries, and pushes them straight into Slack automatically. This guide will walk you through practical methods to automate weekly sales reports, from simple Google Sheets features to advanced scripting and no-code automation with Boltic.
Importance Of Weekly Sales Report
A sales report is a document offering a summary of a company’s sales activity over a specific time period. It provides insights into outcome, process, and performance metrics. The metrics provided in the sales report include revenue, sold units, closed deals, sales cycle length, sales by region, representative or product, sales comparison with previous periods or targets, and more.
Weekly automation of sales reports helps in early problem detection, adjusting the strategy to refine sales tactics, build more accurate revenue forecasts, improve communication among teams, and offer better support.
Reasons to Automate Weekly Sales Reporting
Automation of sales reports helps companies in numerous aspects. Here are those:
- Eliminates manual workload: Cuts down hours spent collecting, cleaning, and formatting data.
- Ensures high accuracy: Removes human errors in data entry and calculations, giving reliable numbers every time.
- Gives real-time performance visibility: Offers instant insights in visually understandable format instead of delayed reports.
- Enables faster and smarter decisions: Lets managers act proactively with up-to-date data instead of relying on outdated information.
- Boosts team productivity: Frees sales representatives from repetitive reporting tasks so they can focus on selling.
- Supports business scalability: Handles growing lead volumes and complex sales cycles without needing more manpower.
- Improves sales forecasting: Uses predictive analytics to deliver more accurate revenue predictions.
- Reduces costs: Cuts labor expenses and optimizes resource use to deliver high returns.
Methods To Automate Weekly Sales Reports With Slack Notifications

There are three methods to automate weekly sales report with Slack notifications. Let’s check each of them:
Use Built-in Features of Google Sheets
The steps below are a guide on using Google Sheets’ Explore features for automating the sales reporting process.
Step 1: Access the Sales Data
Load the sales data in Google Sheets and click the Explore button at the bottom-right corner. The panel will give you quick access to automatic summaries, charts, and insights based on the sheet you are viewing.
Step 2: Create Charts Automatically
The Explore/Analysis panel will show ready-made charts, stats, and summaries specific to your data. The visuals also include small explanations like what range they use or how much a value has changed over time.
You can expand the chart options, preview them in full size, and add any graph to your sheet simply by clicking Insert or dragging it in. After placing the chart, click on any part of it to open the Chart Editor. It will let you adjust style, labels, or data ranges as per the need. It eliminates the need to build reports manually and speeds up your weekly reporting process.
Step 3: Understand the Data in Detail
Use the Answers section to query your sales data. It works like a simple built-in assistant that responds with instant insights. Type questions about totals, trends, or comparisons, and you will get the answer, formula, and sometimes suggested visualization.
Step 4: Deliver These Reports to Slack Weekly
Once your sheet is set up with charts and insights, here is what to do:
- Copy the link of the Google Sheet where you updated the charts live.
- Go to Slack and create a weekly scheduled reminder in the channel where you want the update shared.
- Add a message stating ‘weekly sales report is ready’, or anything else.
- Paste the sheet link in the notification.
Slack will now send this message every week at your chosen time, ensuring your team gets the updated sales report without manual sharing.
Use Auto-Capture Formula and Google Apps Script
Here is how to proceed with automation in Google Sheets using a different approach:
Step 1: Create the Auto-Capture Report Sheet
In your sales spreadsheet, create a new sheet named ‘Weekly Report’. Use a formula that auto-filters the last 7 days. Put this in ‘Weekly report A1’:
1=QUERY(
2 'RawData'!A:E,
3 "select A, sum(E)
4 where A >= date '" & TEXT(TODAY()-7, "yyyy-MM-dd") & "'
5 group by A
6 order by A asc",
7 1
8)
Here, RawData is your raw data sheet with a date column A and a value column E (adjust to match your columns).
Step 2: Add Apps Script (code required)
- In Google Sheets, go to Extensions and then Apps Script.
- Delete any placeholder code and paste the script below.
- Replace the Slack incoming webhook URL.
- If you want a PDF link posted as well, leave that part enabled. Else, comment out the PDF block.
1function sendWeeklyReportToSlack() {
2
3 var SLACK_WEBHOOK_URL = "<YOUR_SLACK_WEBHOOK_URL>";
4 var SHEET_NAME = "WeeklyReport";
5 var MAX_ROWS_TO_SHOW = 20;
6 var INCLUDE_PDF_LINK = true;
7 var PDF_FOLDER_NAME = "WeeklyReportsPDFs";
8
9
10 var ss = SpreadsheetApp.getActiveSpreadsheet();
11 var sheet = ss.getSheetByName(SHEET_NAME);
12 if (!sheet) {
13 Logger.log("Sheet not found: " + SHEET_NAME);
14 return;
15 }
16
17
18 var dataRange = sheet.getDataRange();
19 var values = dataRange.getValues();
20 if (values.length <= 1) {
21 postSlackMessage(SLACK_WEBHOOK_URL, ":warning: Weekly report is empty or has no data.");
22 return;
23 }
24
25
26
27 var header = values[0];
28 var rows = values.slice(1, 1 + MAX_ROWS_TO_SHOW);
29 var msgLines = [];
30 msgLines.push("*Weekly Sales Report*");
31 msgLines.push("_Generated: " + Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MMM dd, yyyy HH:mm") + "_");
32 msgLines.push("");
33 msgLines.push("```");
34
35 msgLines.push(header.join(" | "));
36 msgLines.push("-".repeat(Math.max(20, header.join(" | ").length)));
37 rows.forEach(function(r) {
38 msgLines.push(r.map(function(c){ return String(c); }).join(" | "));
39 });
40 if (values.length - 1 > MAX_ROWS_TO_SHOW) {
41 msgLines.push("... (" + (values.length - 1 - MAX_ROWS_TO_SHOW) + " more rows)");
42 }
43 msgLines.push("```");
44
45
46 var summaryText = msgLines.join("\n");
47 postSlackMessage(SLACK_WEBHOOK_URL, summaryText);
48
49
50 if (INCLUDE_PDF_LINK) {
51 try {
52 var folder = getOrCreateFolder(PDF_FOLDER_NAME);
53 var pdfBlob = DriveApp.getFileById(ss.getId()).getAs('application/pdf');
54 var dateStamp = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyyMMdd");
55 var pdfFile = folder.createFile(pdfBlob).setName(ss.getName() + "_WeeklyReport_" + dateStamp + ".pdf");
56
57 pdfFile.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
58 var pdfUrl = pdfFile.getUrl();
59 postSlackMessage(SLACK_WEBHOOK_URL, "Full report (PDF): " + pdfUrl);
60
61 } catch (e) {
62 Logger.log("PDF creation failed: " + e);
63 postSlackMessage(SLACK_WEBHOOK_URL, ":warning: Could not create PDF: " + e.message);
64 }
65 }
66}
67
68
69function postSlackMessage(webhookUrl, messageText) {
70 var payload = {
71 "text": messageText
72 };
73 var options = {
74 "method": "post",
75 "contentType": "application/json",
76 "payload": JSON.stringify(payload),
77 "muteHttpExceptions": true
78 };
79 var resp = UrlFetchApp.fetch(webhookUrl, options);
80 Logger.log("Slack response: " + resp.getResponseCode());
81}
82
83
84function getOrCreateFolder(folderName) {
85 var folders = DriveApp.getFoldersByName(folderName);
86 if (folders.hasNext()) {
87 return folders.next();
88 } else {
89 return DriveApp.createFolder(folderName);
90 }
91}
92
93
94function cleanupOldFiles(folder, keepCount) {
95 var files = [];
96 var iter = folder.getFiles();
97 while (iter.hasNext()) {
98 var f = iter.next();
99 files.push({file: f, date: f.getDateCreated()});
100 }
101 files.sort(function(a,b){ return b.date - a.date; });
102 for (var i = keepCount; i < files.length; i++) {
103 try { files[i].file.setTrashed(true); } catch(e) {}
104 }
105}
106
Step 3: Create a Slack Incoming Webhook
- In Slack, go to Apps, then search ‘incoming webhook’ and then ‘Add’ (or create a Slack App and enable incoming Webhook).
- Choose the channel where the message should be posted.
- Copy the webhook URL and paste it into the script ‘SLACK_WEBHOOK_URL’ config.
Step 4: Test the Script
- In the Apps Script editor, choose the function sendWeeklyReportToSlack and click Run.
- Authorize required permissions (Drive, Spreadsheet, UrlFetch)
- Check Slack for the posted summary message. If INCLUDE_PDF_LINK is true, you should also see the PDF link.
Step 5: Schedule to Run Weekly
- In the Apps Script editor, go to Triggers and click on ‘Add trigger.’
- Choose function: sendweeklyReportToSlack
- Click on the event source and then choose time-driven, followed by Week Timer. Now pick the day & hour. Save it.
Now it will run every week automatically.
Points to Remember:
- Keep the report sheet names and ranges consistent. The script expects a sheet named SHEET_NAME.
- For more compact Slack posts, shorten the number of rows by lowering MAX_ROWS_TO_SHOW.
Use Boltic to Automate Weekly Sales Report
Here is how to achieve it all effortlessly with Boltic and without code. Simply follow the steps below to streamline reporting and push weekly insights to your Slack channel automatically.
Step 1: Define Your Requirements
It means you must know what to automate. Here are a few suggestions that you may consider:
- Which sales KPIs should appear in the weekly Slack report?
- How often should it be sent (weekly)?
- Which data sources will feed into this report?
Step 2: Integrate Data Sources
Supporting over 100 pre-built integrations, the Boltic can easily integrate with the data source. Connect them to get accurate and updated information. To integrate the data sources, here is what steps to follow:
- Select the data sources to be displayed in the reports.
- Use the Boltic’s Workflow to set up and configure the integration
- Evaluate the integration to ensure correct data is showcased in the reports
Step 3: Design the Reports
You can design the reports using numerous customization options available in Boltic’s Workflow. You can incorporate graphs, charts, and explore other visual options to make the report readable as per your preference.
Step 4: Automate Report Generation
This step, too, is easy. Set up the automation using Boltic’s Workflow by defining the report generation and distribution schedule. Choose any frequency, distribution method, and receivers to eliminate manual intervention completely. Ensure to monitor the automation process to verify the desired results. Optimize the process as per the necessity.
Conclusion
The process to automate weekly sales reports need not and should not be manual and time-consuming. Be it Google Sheets, Apps Scripts, or fully automated with Boltic, the process can be simple and reliable. You can use them easily to automate and send insights to Slack in a scheduled manner with this guide. The process is certain to boost team alignment, improve accuracy, and ensure everyone gets timely performance visibility. Choose the method that matches your workflow and let automation handle the rest.
drives valuable insights
Organize your big data operations with a free forever plan
An agentic platform revolutionizing workflow management and automation through AI-driven solutions. It enables seamless tool integration, real-time decision-making, and enhanced productivity
Here’s what we do in the meeting:
- Experience Boltic's features firsthand.
- Learn how to automate your data workflows.
- Get answers to your specific questions.




