☀️ Purpose
This document is designed to teach prospective learners an approach to automate customized email notifications to different Sales teams using Gmail and Salesforce. Conservatively, this saves sales managers, marketing managers, product managers, and/or program managers 2–3 hours of manual data collection and note-taking every week. On some teams, this solution entirely replaces the need for a dedicated resource and significantly reduces the length of large staff meetings.
⭐ User Stories
- Sales Manager/Marketing Lead: I want to see the status of my Campaigns and Pipeline this week, without having to ask each Sales Rep for an update 1:1, so that we can quickly identify owners of blocking tasks and resolve them quickly after the standup. Stand-ups and note-taking are often toil work that we sometimes fail to do consistently.
- Product Director/Group Program Manager: I want to see the status of my group’s marketing funnel and sales growth every week, without a costly meeting, so that I can quickly identify blocking tasks and resolve them. Sales Reviews are instead replaced by “Kanban/Scrum” style standups based on data.
🐌 Status Quo
Salesforce Reporting is available in native Salesforce functionality; however, it’s often that as a company grows, management, visibility, and communications move to Slack, Slides, or Email and people spend less time looking at Salesforce Reporting. By moving status reporting to common messaging tools, enriched with high-fidelity business context & newsletter presentations, this facilitates more transparency, conversations, timely escalations, and time savings that can be realized by program stakeholders.
⭐ Approach
In order to meet the user stories’ requirement, for automating sales manager and marketing toil work, we identified 3 distinct workstreams that get repeated by humans every week, month, or quarter:
1 Data Collection: We needed to connect Salesforce Lead and Pipeline data from multiple places and store them in a single place. We also need to obtain the list of Email Addresses for our teams and Lead Owners, so that we can put their emails in the Gmail To: field, thereby bypassing Gmail filters.
2Value Creation: Once the data was gathered, we then transform and write business logic on how our tool will use the data.
Protip: 🌟 🌟🌟 If you use a design agency to create Branded Newsletter templates, or 3P vendors like Marketo/Mailchimp, you can replicate your HTML emails in-code, passing variables into the template similar to common templating frameworks like Django.
3 Implementation: Once the business logic and code is written, we can set it to run on a schedule, iterating on our business logic as we learn more about the process when workflow gets stale, or if the team’s needs change.
🧠 Architecture Diagram
Below is a diagram of Phase 1, 2, and 3. We built this using a serverless “no code” solution. “No code” software is meant to be fast and iterative. For example, the entire workflow below can be created in less than 1 week, which allowed us to deliver customer value quickly and get user feedback immediately.
⚙️Details & Docs
In the original version of this, I had included a lot more documentation, but it doesn’t look good in Medium :) If anyone is trying to dig into the weeds on this, I’ve moved it to This Google Doc:
What did you think?
Hope this was helpful or educational! Sales Reporting is just one of the many program manager processes you can automate with data. Let me know if you know of other use-cases that this can be applied to, as I’m always thinking of new & interesting use-cases :)
Dan Pham is a Staff Technical Program Manager at Slack, San Francisco, California, USA. Are you a Technical Program Manager and want to learn more about program management automation? We’re hiring in San Francisco! ❤️ Come join us :)