Greetings, CRM practitioners! As you know, Customer Relationship Management (CRM) tools do a great job helping you identify new customers (leads), win their business (opportunities), and then keep them happy (activity tracking). The CRM is the brain of the business and often times, the key hub of the entire SaaS tech stack, with other tools, such as email marketing, selected specifically to work with the CRM.
If you have spent time with a CRM, then you know that while they are great at collecting data and storing data, working with data within a CRM can be darn near impossible. Yes, dashboards are great for management, but what if you want to dive into the details?
Inevitably you find yourself exporting huge files for CRM data analysis, performing CRM data enrichment, and ultimately loading the data back into the CRM. With all of this data movement and exploration, would it be alright if I called you "CRM archaeologists"? This title seems to better describe our work!
In this blog, my aim is to help make your CRM data work easy, showcasing Gigasheet and Apollo for working with data outside of your CRM. These tools form an exceptional symphony of CRM solutions, delivering an unparalleled CRM experience. All you have to do is grab that CRM integration magic wand and say, "Abracadabra, unify-o!"
Today we will be using Freshsales as our CRM. If you aren't familiar, Freshworks offers a suite of CRM products (e.g., Freshsales) facilitating customer engagement, sales, and support processes for businesses. However, Gigasheet and Apollo will work on data from any CRM.
When you export data from your CRM, you often times wind up with millions of rows, especially when exporting something like contract line items, or just a long history of a frequently used object. This can immediately cause problems because of the sheer size of the data.
Your first instinct is likely to try to open it in Microsoft Excel or Google sheets, but you can quickly run up against data limits. No worries, Gigasheet can open up to a billion rows of data, so go ahead and load the biggest files for CRM Data Analysis!
In the context of CRM, Gigasheet functions as a powerful tool that lets you easily explore and manipulate your CRM data outside of the system. Gigasheet empowers businesses of all sizes to effectively manage and analyze extensive amounts of customer data, extracting valuable insights, keeping track of customer interactions, and making well-informed decisions by leveraging the wealth of data at their disposal. Guess what? Gigasheet won't cost you a dime, it's 100% free!
Gigasheet has the power of a database, but the ease of use of a spreadsheet. Unlike Excel or Sheets, you can instantly filter and pivot the data without any setup, which I always forget how to do. You can also quickly join files using the intuitive VLOOKUP function, rather than looking for examples online re-learning how to write the formula in Excel or Sheets.
Apollo is a sales engagement platform streamlining contact management, lead generation, and sales analytics for improved sales team productivity. Apollo helps you find and target your ideal buyers with the world's largest, most accurate B2B database. Apollo’s CSV enrichment tools are great, but what do you do when you need to enrich more than 10,000 contacts?
With Gigasheet’s Apollo Enrichment, you can use the Apollo API without writing any code to enrich thousands, or even millions of contacts. In this example, we load CRM data into Gigasheet for analysis, and then call the Apollo API directly from Gigasheet, which is convenient when working on CRM Data Analysis outside the CRM itself. Once we finish, we are ready to load it back to the CRM from Gigasheet.
Here is a Freshsales Contacts page, a CRM solution developed and maintained by Freshsales.
The easiest way to get contact data out of the Freshsales CRM is to create a report in Analytics for Total contacts.
Use the Show underlying data, select the columns that you want to export. Once you have what you need, hit Download > CSV of Tabular data. This file can be loaded into Gigasheet for quick analysis.
Of course, you can create a report of all contacts and do the export when you need it, but what if you want if you want to schedule it to automatically extract the data?
The following Python script uses the requests module to make HTTP requests and json module to handle JSON data. You can easily replicate in your own environment! The 'bundle_alias' and 'view_id' are required to define the Freshsales CRM API endpoint for fetching contacts. Certainly, the request necessitates an API token for authentication.
It's worth mentioning here that Freshsales API responses are paginated, and by default, the number of objects returned per page is 25. Here, 'per_page=100&page=1' is included to retrieve the maximum number of contacts (which is 100) per page. The code uses a loop to extract the email address and Freshworks ID for each contact.
import requestsimport jsonbundle_alias = 'https://gigasheet.freshworks.com/crm/sales'view_id = '17004175387'url = f"{bundle_alias}/api/contacts/view/{view_id}?per_page=100&page=1"payload = {}headers = { 'Content-Type': 'application/json', 'Authorization': 'Token token=REDACTED'}response1 = requests.request("GET", url, headers=headers, data=payload)outcome1 = response1.json()for i in range(0,len(outcome1['contacts'])): email_address=outcome1['contacts'][i]['email'] freshworks_id=outcome1['contacts'][i]['id']
So far, we only possess customers' email addresses and Freshworks IDs. Our plan is to utilize Apollo to enrich the customer data. In this workflow, we are interacting with multiple platforms. How about we bring all the data from various sources into one centralized Gigasheet spreadsheet and use Gigasheet's "Append to a Sheet" API to easily transfer the data to our Gigasheet platform, keeping everything organized and efficient. Couldn't be easier!
Using the Python code displayed on the right side of the API call, we can append contact details from Freshworks' CRM into our Gigasheet spreadsheet:
sheet_handle ='REDACTED' url = f"https://api.gigasheet.com/dataset/{sheet_handle}/append" payload = { "records": [ { "B": email_address, "C": freshworks_id } ]} headers = { "accept": "application/json", "content-type": "application/json", "X-GIGASHEET-TOKEN": "REDACTED" } response = requests.post(url, json=payload, headers=headers) print(response.text)
Let's now engage with Apollo to enrich customer data from the CRM. Apollo's capabilities will enable us to collect extra information, gain valuable insights, and obtain context regarding the customer. This, in turn, has the potential to reveal crucial details that can significantly enhance our understanding of their preferences, behavior, and needs.
Great news! Gigasheet's No-Code Enrichment with Apollo feature is now available, enabling us to access enriched data effortlessly, without the requirement for intricate coding. This smooth integration unlocks a realm of possibilities, empowering us to make data-driven decisions quickly and accurately.
Simply paste in your Apollo key and select columns for data that you want to pass into Apollo. The returned data will be added to your spreadsheet in columns. Then you enriched sheet will be ready to load back into your CRM.
If you desire to automate CRM Data Enrichment, you can use Python for the continuation of the workflow. Below, a small code script is used to retrieve enriched data from Apollo.
The url variable is assigned to the "people/match" API endpoint of Apollo, where person data is matched based on the provided email address. Data dictionary includes a parameter reveal_personal_emails set to True, indicating that Apollo should attempt to reveal personal emails associated with the person. The code proceeds to extract particular details from the JSON response stored in outcome2, populating variables such as apollo_id, apollo_first, apollo_last, apollo_linkedin, and apollo_title.
url = "https://api.apollo.io/v1/people/match" headers = { "Content-Type": "application/json", "Cache-Control": "no-cache", } data = { "api_key": "REDACTED", "email": email_address, "reveal_personal_emails": True } response2 = requests.post(url, headers=headers, json=data) outcome2 = response2.json() apollo_id=outcome2['person']['id'] apollo_first=outcome2['person']['first_name'] apollo_last=outcome2['person']['last_name'] apollo_linkedin=outcome2['person']['linkedin_url'] apollo_title=outcome2['person']['title']
You can now re-use Gigasheet's "Append to a Sheet" API to copy enriched data into your Gigasheet spreadsheet. Voilà, you now have access not only to the email address but also to the customer's full name, LinkedIn URL, and title. This is truly amazing, we leveraged Apollo to develop a more comprehensive and detailed customer profile. This enables us to deliver a personalized and tailored experience that perfectly aligns with each individual's specific requirements.
Now that your CRM data enrichment is complete, download the file from Gigasheet and import it back into Freshsales.
In Gigasheet, hit Download > Comma Separated Values (.csv).
In Freshsales, navigate to the Contacts tab and hit the Import button in the upper right of your screen. Then select CSV/Excel.
On the next screen, select Update only existing contacts (with overwrite).
Once complete, you will have loaded enriched data into your CRM!
As the landscape of customer relationship management continues to evolve, the seamless integration of CRM solutions will remain a driving force in shaping businesses' success. In this blog, we went all-in with Gigasheet, Freshworks, and Apollo and leveraged their unique capabilities into a seamless CRM workflow that not only enhances efficiency but also saves valuable time and precious resources. Using this smooth implementation process, a personalized and tailored experience can be effortlessly applied to thousands of customers with diverse backgrounds and varying preferences.