Account Spark Guide for Admins

By Viroopaksha Vardhineni

Apr 15, 2019

Our trifurcated architecture combines human judgement with machine learning to produce powerful predictions that are specific to your business. A lot of thought went into our architecture and we believe the end result is elegant and robust, allowing your business to grow sustainably over the coming years.


Account Spark is built 100% natively on the Salesforce ecosystem, leveraging multiple Salesforce clouds to produce a powerful and secure, insight-driven platform for our users. This means that your data never leaves the Salesforce Cloud, and along the way your data is handled within the highest guideles of Salesforce’s Trust policies. Setup is also a breeze with no need for costly implementation partners.


The engagement layer is comprised of beautiful Lightning components that sit on top of your Sales cloud instance.  For classic users, no need to worry; our visual user interface will work for you too. 


There are many Lightning components including the Matrix page where you can see all of a user’s accounts plotted against two metrics, Potential and Probability. The Matrix page allows you to zoom into any of the four quadrants, multi-select accounts of interest, toggle to list view, and group action these accounts including logging a data quality ticket, exporting to a spreadsheet, and producing an email distribution in Salesforce Pardot.


Another important Lightning component is the Account Summary page where you can see detailed insights about any particular account. You can see a product level breakdown of potential and probability, lookalike customers who may be able to help in reference selling to the target account, and an opportunity breakdown both historically over the last several years and forward looking over the next several quarters. This engagement layer acts to keep all of your users from sales reps to executives truly engaged with Account Spark.


Next there is the CRM Infrastructure layer where we have a managed package of custom code that helps you get the most out of your Salesforce instance. We have created multiple new objects with hundreds of fields, custom report types, and Apex triggers to ensure that your insights are always fresh and up to date with the latest and greatest information.


This CRM infrastructure layer is invisible to most users, except for system admins, so that users are not focused on the “so what” rather than the “how” of account scoring.


Included in this layer is an integration to the Salesforce Marketing Cloud, specifically Salesforce Pardot for mass email communications. Imagine you are a marketeer looking to invite prospective clients to a large event in an international top city. With Account Spark, you can instantly identify all accounts located within a 50-mile radius of this top city, hand select the ones with compelling potentials and probabilities, and then migrate your work to Pardot where you can produce an email distribution list filtered for those who have opted out. What used to take weeks now takes seconds thanks to the Account Spark CRM Infrastructure layer.


The final piece in the Account Spark technical architecture is the Data Science layer which touches Heroku and Einstein Platform Services. The Data Science layer is where all of our complex calculations happen including supervised machine learning on historical performance data. The client’s data (primarily what’s contained within the Account object, the Opportunity object, and the Task object) is transferred securely via Heroku Connect into a customer-unique Postgres database where we filter the data based off of the custom settings, discover trends, predict behavior, and push back actionable insights to the underlying CRM Infrastructure Layer.

See the following illustration of our technical architecture:

One of the keystones of Account Spark is our robust data architecture with our custom objects and fields. Our key design principle was to ensure that our chosen architecture meets three criteria: 1) it must be simple–no complex relationships or joins between various objects, and reporting needs to be a breeze; 2) it must solve the problem at hand and unleash powerful metrics; and finally 3) it must “scale” to all of our users, some of whom may have millions of accounts in their Salesforce instance without introducing additional financial cost or technical debt to our clients.


After careful deliberation, we chose to create our own Account Spark objects that were distinct from any of the native Salesforce objects so that we can “simplify”, “solve”, and then “scale” our product to you.

Below is an explanation of these important objects:

  1. Account Summary Object – This is the most integral object in Account Spark, and it is where we have pivoted all metrics around the account. Key fields include account level formulations of potential, probability, and ranking (amongst a single account owner’s list of accounts), as well as opportunity performance metrics like closed-won amounts and open pipeline amounts. The custom report type of “Accounts with Account Summaries” allows users to capture valuable insights about all of their accounts by leveraging this Account Summary object.

  2. Product Summary Object – Whereas the Account Summary object pivots around accounts, the Product Summary object pivots around the various products your company sells. The starting point in our formulation for Account Spark is technically the product level, after which account summaries are created by summing all of the products up to the account level. The key fields on the Product Summary object include product level formulations of potential, probability, and opportunity performance metrics like closed-won amounts and open pipeline amounts. Here custom report types with “product summaries” in the title will allow users to filter their key metrics for a particular product of interest.

  3. Cohort Analysis Object – Finally, the Cohort Analysis object is where Account Spark stores all of the key metrics defining our cohorts, or groupings of region, industry, and market segment. Cohort metrics consist of various types of descriptive statistics like average, sample size, and standard deviation that are matrixed against measures like addressable licenses sold, discounted price, highest paying evangelist customers, potential, and probability. Custom report types including “cohorts” in their title will allow users to see expected purchasing behavior of the various groupings in the system.

The Account Spark data architecture is simple, powerful, and scalable to help you optimize your time and resources around the right accounts.

One of the biggest challenges for sales operations involves how to handle account families. There are thousands of large conglomerates globally, each with countless subsidiaries. And to make matters more confusing, sometimes these subsidiaries have subsidiaries of their own. Account Spark handles complex account families and hierarchies elegantly to solve for multiple challenges including:

  1. Reporting – With a limit on the number of joins allowed in a single Salesforce report a simple question like “is Walt Disney a customer?” requires the user to create multiple reports and suddenly turns into a project for a data scientist. The good news is Account Spark takes care of this out of the box. By simply toggling “Accts” and “Acct Families”, users can see a view of their account world pivoted between both lenses. For example: if ESPN has purchased from the user’s company, then toggling to the family would reveal that the parent family of Walt Disney is in fact a customer.
  2. Account Ownership – If you spend any time with sales operations professionals they will certainly recount to you the numerous disputes between sales reps that arose because of account families. Should the subsidiaries follow the ownership of the parent account? What about international families, do they maintain one global account owner or are there regional owners instead? The truth is that this is a question best answered by your sales operations team and their published sales guidelines. Account Spark defaults to follow the structure chosen in your instance of Salesforce. If, for example, Sony of America is broken off as a separate family from the Sony headquarters in Japan, then account ownership will follow this exact structure and there will be two account owners. When toggling between the account level and the account family level views, Account Spark will showcase your existing data in Salesforce honestly, for better or worse. If something looks wrong, then Account Spark makes it easy to flag data quality issues with our cases functionality (see below for more information).


Account Spark’s computational engine does a recursive lookup for account families and stamps the top-most parent (similar to the ultimate parent concept for Duns and Bradstreet) on our custom field. In this way, in an account family tree of hundreds of subsidiaries, each of the subsidiaries and subsidiaries of subsidiaries would have the exact same parent account tagged. Reporting becomes simple with our “Accounts with Account Summaries” custom report type where users can leverage the account family field as well as many key performance indicators, like potential, probability, and past purchasing behavior, to better understand the addressable opportunity ahead for their accounts and account families.

At a high level, users value the ability to identifying accounts residing near major metropolitan areas. Beyond the sales team, marketing specialists and support teams often rely on geographic data to create distribution lists for major accounts (both customers and prospects) headquartered near an event location.


Our solution for Account Spark simplifies, solves, and scales this process in three easy steps. At first, we define Top Cities in a reasonable and consistent manner across the world. Metropolitan cities are defined as the grouping of all accounts that reside within a 50 mile radius of a predefined top city. This way, San Francisco Bay Area, would be clearly defined as a geographical circle centered in the city center of San Francisco with a radius of 50 miles. Note that 50 miles was chosen as a reasonable drive time for customers and prospects as they look to attend an event. These predefined Top Cities were carefully chosen to avoid any overlap between two large cities that are in close proximity to each other (e.g. San Francisco, San Mateo, San Jose were combined into San Francisco Bay Area).


Next we must geocode each account address into latitude and longitude. Salesforce by default has native shipping and billing addresses that are comprised of a street, city, state, and country fields. Here Account Spark geocodes these addresses and transform them into a simple latitude and longitude. ArcGIS by ESRI has an API that can do this transformation and so the approach here has been to integrate this API into our application while upholding our security standards and exceeding the requirements of the Salesforce AppExchange.


Lastly, we added a “Top Cities” custom field and tagged each account with the name of the top city that is within a 50 mile radius. If there is a predefined top city within a 50 mile radius then the custom field value becomes the name of the Top City (e.g. San Francisco Bay Area). If there is no predefined top city within a 50 mile radius then the custom field value becomes “All Other Locations”.  And voila! That’s how any Account Spark user can easily identify which accounts are close to their upcoming event and invite contacts to attend.


The following list of Top Cities and their city centers are default in the Account Spark system. They were carefully chosen to cover the top metropolitans globally across a variety of metrics including population and Gross Domestic Product (GDP) while avoiding intersection.


Top City Region Latitude Longitude

Atlanta (US)




Baltimore (US)




Boston (US)




Chicago (US)




Cleveland (US)




Dallas (US)




Denver (US)




Detroit (US)




Houston (US)




Los Angeles (US)




Miami (US)




Minneapolis (US)




New York (US)




Philadelphia (US)




Phoenix (US)




Pittsburgh (US)




Portland (US)




San Diego (US)




San Francisco (US)




Seattle (US)




St. Louis (US)




Tampa (US)




Washington D.C. (US)




Montreal (CA)




Toronto (CA)




Vancouver (CA)




Birmingham (GB)




London (GB)




Manchester (GB)




Dublin (IE)




Paris (FR)




Berlin (DE)




Frankfurt (DE)




Munich (DE)




Vienna (AT)




Copenhagen (DK)




Stockholm (SE)




Barcelona (ES)




Madrid (ES)




Lisbon (PT)




Milan (IT)




Rome (IT)




Amsterdam (NL)




Tel Aviv-Yafo (IL)




Dubai (AE)




Cairo (EG)




Jeddah (SA)




Istanbul (TR)




Moscow (RU)




St. Petersburg (RU)




Cape Town (ZA)




Johannesburg (ZA)




Osaka (JP)




Tokyo (JP)




Melbourne (AU)




Sydney (AU)




Bangalore (IN)




Hyderabad (IN)




Mumbai (IN)




New Delhi (IN)




Seoul (KR)




Jakarta (ID)




Manila (PH)




Singapore (SG)




Bangkok (TH)




Beijing (CN)




Guangzhou (CN)




Hong Kong (CN)




Shanghai (CN)




Taipei (TW)




Rio de Janeiro (BR)




São Paulo (BR)




Mexico City (MX)




Bogotá (CO)




Buenos Aires (AR)





Picture this scenario: you are a US-based marketer responsible for planning an exclusive C-suite event in Mumbai, India.  You want to include top priority accounts and their leadership teams. How do you determine the guest list? Traditionally, the process would involve reaching out to all sales reps covering the region and asking for nominations of top accounts. This could take weeks as each rep works through their competing priorities and different time zones. You would then go through a vetting process to refine the list to an addressable number of accounts and cross reference available contacts to produce the email distribution list. All in all, that’s a lot of time.


Account Spark provides an elegant solution in seconds. With our Top Cities functionality (discussed above), you, the marketer, can navigate to the Account Spark Strategy Grid, select the top city entitled “Mumbai (IN)”, and instantaneously Salesforce will display all of the accounts within a 50 mile radius of Mumbai, India plotted against account potential and probability.  Next select the accounts you want. Perhaps you navigate to list view, sort the list of accounts in Mumbai in order of “Spark Ranking”, and then select the top X (say X equals 50 for example) number of accounts.  Now, you’ll notice that a button appears “Export to Pardot”, and clicking on it will automatically cross reference your selection of accounts with your Salesforce Pardot instance and generate a distribution list of email addresses (even with “Do Not Message” addresses already removed from you). That’s more like it!


At Account Spark, we are excited to include this integration into Pardot complimentary with our product. Our goal is to allow users to seamlessly navigate between the various Salesforce clouds while tackling today’s most challenging problems. With Account Spark, users are using Sales Cloud, Service Cloud (the native Cases functionality), App Cloud (Heroku Connect and the custom code on the platform), Analytics Cloud (elements of Einstein’s Platform Services), and Marketing Cloud (specifically the Pardot product offering if they have subscribed to this service from Salesforce).  All of this comes out of the box without having to authenticate into different offerings. Talk about using all of the tools at your disposal!

Our number one value at Account Spark is trust because we think it is absolutely essential to earn the business and loyalty of our customers.  From a technical perspective, this means we take calculated measures to ensure data security. Your Salesforce data never leaves the Salesforce ecosystem where it is securely stored, giving you piece of mind when using Account Spark.


The challenge arises when we perform machine learning on your data. Ideally, the computations would be done from within your Salesforce instance but unfortunately given the data volumes and the data architecture in Sales Cloud, performance is very limited and our advanced analyses would take days to run (if they didn’t time out first).  Instead we are leveraging Heroku Connect for a bi-directional synchronization between our Heroku Postgres database and your Salesforce instance. Heroku Postgres (which is build off of Amazon Web Services) is the diamond standard in database management, with incredible computational horsepower that allows Account Spark to handle millions of records and billions of transformations in a matter of single-digit minutes.


It is important to note that Heroku Connect does not allow data filtration but rather it syncs the specified objects entirely. Any filtration required (which can be customized in our admin settings) is handled from within Heroku. Finally, once all of the computations are performed, the insights gleaned from the data are pushed back to Salesforce via Heroku Connect and the Postgres database is purged entirely. Heroku is used purely as a rapid computational engine and Heroku Connect is the bridge connecting this engine with your CRM data.  To learn more about Heroku Connect, take a look at their website:

Whenever teams are discussing the efficacy of their Salesforce instance, one of the elephants in the room is data quality. Every instance of Salesforce surely suffers from some level of poor data quality with the woes being amplified internationally with non-English speaking countries.  This well-known, age-old problem was taken into deep consideration in the design of Account Spark.


At Account Spark, we believe that garbage data in means garbage data out. Our vision to combine human judgement with artificial intelligence to create actionable insights for transformative sales, requires us to tackle data quality. We focused on the following paths to remedy data quality woes:


  1. Crowd-Sourcing – Oftentimes the most knowledgeable person associated with an account is the account owner. Sales reps usually know if the number of employees at a target account is reasonable, if the headquarters office is the right address, and whether the family structure is sensible or not. So at Account Spark we’ve empowered the masses to help clean up the data stored in your Salesforce instance!

That doesn’t mean we should allow reps to freely change account records based on their judgement because after all there is an inherent bias to modify to their advantagement. With Account Spark, all users can easily *alert* sales operations professionals of accounts with suspect data quality.


With a click of a few buttons, a case is quickly created in Salesforce with the accounts in question and their respective suspect fields. In this manner, sales operations can hone in specific cases logged in the system rather than attempting to tackle the millions of records in the system. Account Spark gives users the ability to focus their team’s data quality efforts on the accounts that matter the most.

  1. Automatic Clean Up – Additionally, we leverage the best in class artificial intelligence technology to automatically log data quality cases when information is missing or when there appear to be outliers in the data. If for example, a customer has purchased 1,000 licenses for one of your company’s products while Salesforce shows that this account only has 35 employees, then Account Spark will trigger a case for a sales operations professional to review this account because seemingly there are at least as many employees as licenses sold. Our approach borrows heavily from fraud detection techniques utilized in the financial services industry where deviations from observed behavioural patterns spark a further investigation. We’re pretty excited for Account Spark to automatically help you maintain the highest data quality in your Salesforce instance.

The road to clean data is a long and arduous one, but with Account Spark you are not alone: peers can help you crowdsource the solution and artificial intelligence can supplement the teaming efforts.

As mentioned earlier, Account Spark does not require implementation partners.  Instead setup is a breeze thanks to our Setup Wizard that guides administrators on how to install and localize Account Spark to their organization. Here are the dialogue boxes in the setup wizard:


  1. Organizational Settings – Here Account Spark allows you to customize our product for your organization. Let’s say you want to activate Account Spark for only one region of your business, no problem. System administrators can write custom Salesforce Object Query Language (SOQL) strings to filter their organization’s Salesforce data for specific information. The inputted string gets then passed on to our Heroku engine for rapid processing. Additionally the dialogue for “Organizational Settings” allows users to input their credentials for Pardot for the integration to function. See more in the Pardot integration description above.

  2. Mapping Settings – Account Spark will by default map our understanding of your Salesforce instance to the native fields provided by Salesforce. However, there are several areas of ambiguity that we need your help to define. For example, should Account Spark map to the billing or shipping information of an account? The answer is dependent on your organization’s sales guidelines and territory mapping, and whichever type of address is utilized to assign account ownership is thereby the type of address that should be mapped by our product. Similarly, information to create cohorts (so region, industry, and market segment) is mapped back to your instance to ensure that we are speaking the same language prior to switching on the computational engine.

  3. Product Settings – Here you initialize the products groupings sold by your company, limited to a maximum of 10. Moreover, we confirm the fields in your Salesforce instance used to quantify the number of product licenses sold for opportunities and the actual sale price. With this past performance information, Account Spark can help extrapolate future trends and thus formulate an account score by product.

  4. Data Science Settings – The final section of the Setup Wizard relates to the organization’s data science analysis preferences. While system defaults are often sufficient, it is always good to check with your organization’s data science experts to validate settings like desired statistical significance level for accepting regression results and the confidence interval level for the range of cohort metrics provided.

This section also allows administrators to turn certain features like Top Cities geo-mapping and data quality checking functionality on and off.  An important input is the regression refresh frequency which can be toggled between quarterly, weekly, and semi-annually. For the most part, historical performance trends do not change that frequently, especially for large companies that have multiple years of data. However, events like the fiscal year end, the introduction of a new product, or a merger-acquisition all justify refreshing the underlying machine learning analysis.


Note that Account Spark summary computations like potential and probability are always live and refreshed instantaneously.  Here the refresh frequency only refers to the underlying corrections for upsell and cross-sell across the various products which do not need to be revised constantly.

  1. API Triggers – Upon hitting the save button, several API triggers are immediately fired off to start the update process. These Setup Wizard custom settings are sent securely to Heroku via Heroku Connect, the Account Spark managed package is activated in your sandbox instance of Salesforce (if it wasn’t done already), and a prioritized job to refresh the machine learning engine is added in the queue.

    Once the refresh is completed, typically ranging from 1 min to 1 hour depending on how many records are being synced, the appropriate insights are pushed back via Heroku Connect and you are ready to start (or continue) using Account Spark. That’s it.

It is important to note that administrators can always change settings even after completing the setup wizard by simply navigating to the “Account Spark Admin Settings” page.  So don’t worry. Take a deep breath and give our product a try. You can always revise inputs or fine tune settings to your exact taste.

This feature is a foray into prescriptive analytics, intended to provide recommendations to users. The logic is deliberately simple, with the recommendations being pre-programmed from a matrix of the possible results. 


The following table describes the various flavors of recommendations and the triggers that activate them:




Data Quality

The data quality here is suspect, investigate carefully and exercise caution in formulating conclusions. This recommendation is a result of either a user-created case or the Account Spark engine noticing an anomaly in the data. See the case under “related objects” for more information.

Strategy Matrix

Focus: Spend your time directly here, because this is where you are likely to get the biggest bang for your buck.

Teaming: The strategy here is about scale, speed, and coverage. These accounts are high touch and could yield near term revenue. Leverage team selling to grow and provide a learning opportunity to all.

Stretch: Explore and investigate these accounts to unveil the diamonds in the rough. Balance your time spent here with time spent on the Focus and Teaming quadrants.

Support: These accounts have relatively lower fit with our go-to-market. Scale your efforts with strategic partners and resellers: we can still get some sales here.

Purchasing History

New Business: These accounts and account families have not purchased from us before and so they will generally be harder to sell into.  Leverage your network as much as possible and connect with power if possible.

Add-on/ Upgrade: These accounts have bought from us the same product before and so look at their product usage and cater your increased offering to their needs.

Cross Sell: Because this customer has bought another product, they are more likely to buy other products.  Look to engage with the owners of the prior closed-won opportunities at your organization and leverage customer evangelists to close the deal.

No Change

No recommended changes.  Stay the course.



Additional Support

Still have questions? Need extra support with technical instance-specific questions not covered in this guide? Drop the Account Spark support team a line at [email protected]; we’re here to help.

Published: 15/04/2019