Complete Boomi Integration Guide: Sending Salesforce Contacts to Google Sheets

Chintala Srilatha

Software Developer

Sending Salesforce Contacts to Google Sheets

This guide walks you through the end-to-end process of integrating Salesforce contact data into a Google Sheet using Boomi. It is beginner-friendly and includes visual reference points for adding screenshots. By the end, you will be able to automate the export of Salesforce Contact records and load them into a shared Google Sheet for easy access and collaboration.

Use Case 

Many teams need Salesforce contact data in a spreadsheet format for reporting, analytics, or  collaboration. This process fetches contacts from Salesforce and appends them to a Google  Sheet using a Service Account and HTTP API calls.

Prerequisites 

  1. Boomi AtomSphere account 
  2. Salesforce Developer Account with API access
  3. Google Cloud Project 
  4. A Google Sheet with columns: FirstName, LastName, Email, Phone 5. A Google Service Account JSON Key file

Step 1: Set Up Google Cloud Project & Service Account 

  1. Go to Google Cloud Console 
  2. Create a new project
  3. Enable the Google Sheets API under APIs & Services > Library
  4. Navigate to IAM & Admin > Service Accounts 
  5. Create a new Service Account (e.g., BoomiSheetsService)
  6. Grant it the role: Editor or Sheets API Editor
  7. Create a JSON key and download it
  8. Open your Google Sheet and share it with the client_email in your JSON

Step 2: Get Access Token (Outside Boomi) 

Use the following Python script to generate an access token from your service account: import jwt

import time

import requests

# Load values from your JSON key

client_email = ‘[email protected]‘ private_key = ‘—–BEGIN PRIVATE KEY—–\n…\n—–END PRIVATE KEY—–\n’

audience = ‘https://oauth2.googleapis.com/token’;

issued_at = int(time.time())

expiration_time = issued_at + 3600

jwt_payload = {

‘iss’: client_email,

‘scope’: ‘https://www.googleapis.com/auth/spreadsheets’;,  ‘aud’: audience,

‘iat’: issued_at,

‘exp’: expiration_time,

}

signed_jwt = jwt.encode(jwt_payload, private_key, algorithm=’RS256′)

response = requests.post(audience, data={

‘grant_type’: ‘urn:ietf:params:oauth:grant-type:jwt-bearer’,  ‘assertion’: signed_jwt

})

access_token = response.json()[‘access_token’]

print(f”Access Token: {access_token}”)

Step 3: Build the Boomi Process 

Process Name: Send_SF_Contacts_To_GoogleSheets 1. Start Shape 

∙ Type: No Data or Scheduled

  1. Salesforce Connector 

∙ Action: Query

∙ Object: Contact

∙ SOQL: SELECT LastName, FirstName, Phone, Email FROM Contact 

  1. Map Shape 

∙ Source Profile: Salesforce Contact

∙ Target Profile: JSON (Google Sheets format)

∙ Map fields: FirstName -> FirstName, etc.

 

  1. HTTP Client Connector 

∙ Authentication: None (you handle the token manually)

∙ Headers:

o Authorization: Bearer {access_token}

o Content-Type: application/json

∙ Method: POST

∙ URL:

https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{SheetName}!A1:ap pend?valueInputOption=RAW

∙ Payload example:

{

“values”: [

[“FirstName”, “LastName”, “Email”]

]

}

  1. Stop Shape 

∙ Ends the process after HTTP request completes

 

Validation Checklist 

Task Status 

Google Cloud project configured ✅

Sheets API enabled ✅

Service account created ✅

Google Sheet shared with account ✅

Salesforce Connector set up ✅

Map and HTTP steps created ✅

Bonus Tips 

∙ Schedule the process using a Scheduled trigger to run daily/weekly ∙ Add logging or Try/Catch for error handling

∙ Use Process Properties to store dynamic values like Sheet ID

Conclusion 

This integration bridges Salesforce and Google Sheets, making it easier for teams to access  CRM data in a collaborative, spreadsheet-based environment. With just a few shapes and  external token generation, your Boomi process can automate contact exports from  Salesforce to Google Sheets.