

Most teams already have a Salesforce report graveyard: dozens of filters, countless folders, yet nobody fully trusts the numbers. Joined reports quietly fix a big part of that. They let you pull accounts, opportunities, and cases into one lens, even when those objects do not share a simple report type. Instead of bouncing between three tabs before a renewal call, your rep lands on a single report grouped by account name and instantly sees open deals, open cases, and history.When you push that clarity into Google Sheets, it becomes the language of the whole go-to-market team. RevOps can add targets, marketing can annotate campaigns, leaders can create lightweight scorecards – all fed from the same underlying joined report.Now layer in an AI computer agent and the story changes again. Instead of humans rebuilding filters every quarter or exporting CSVs every Monday, the agent logs into Salesforce, refreshes the joined report, exports or copies it into Google Sheets, re-applies your formulas, and shares links with stakeholders. You keep the strategic conversations; the agent handles the drudgery of clicks, tabs, and copy‑paste at machine speed.
## 1. Manual ways to build Salesforce joined reportsBefore you automate anything, you need to understand how joined reports work in native Salesforce.### 1.1 Create a baseline joined report1. In Salesforce, go to the **Reports** tab.2. Click **New Report**.3. Choose a principal report type, for example **Accounts**. This controls how shared fields are named.4. Click **Continue** to open the Lightning Report Builder.5. In the top-left, open the **Report** dropdown and change the format to **Joined Report**, then click **Apply**.6. Adjust your base filters (for example, show only active customers in your region). This baseline controls which records flow into other blocks.Salesforce’s official guide walks through this pattern with screenshots: https://help.salesforce.com/s/articleView?id=analytics.reports_working_with_joined.htm&type=5 and the Trailhead module here: https://trailhead.salesforce.com/content/learn/modules/joined-reports-quick-look### 1.2 Add additional report blocks (Cases and Opportunities)1. In the report builder, click **Add Block**.2. Choose **Cases** as the report type and click **Add Block**.3. Set filters for this block (for example, status = Open and priority = High) so reps see only risky accounts.4. Repeat **Add Block** and select **Opportunities**.5. Filter opportunities to pipeline that matters (for example, stage not equal to Closed Lost, close date this quarter).Now you have three blocks: Accounts, related Cases, and related Opportunities. They share Accounts as the common key.### 1.3 Group and visualize1. Drag **Account Name** into the **Group Rows** area. This aligns all records from different blocks by account.2. Optionally add more groupings (for example, by Account Owner or Region) to match how your teams are structured.3. Click **Add Chart** to create a visual. A simple bar chart by account with the count of open cases vs open opportunities is a powerful prep view for reps.Refer to the step-by-step examples on Salesforce Ben if you prefer a narrative walkthrough: https://www.salesforceben.com/creating-joined-reports-in-lightning/### 1.4 Get the data into Google Sheets by handYou have a joined report, but most teams still do the last mile manually:1. Click **Run** on the report.2. Use **Export** (Formatted or Details) to download as CSV.3. Open Google Sheets and go to **File → Import**.4. Upload the CSV and choose to insert as a new sheet. Google’s CSV import help is here: https://support.google.com/docs/answer/406085. Rebuild formulas, filters, and charts in Sheets.It works, but you are rebuilding this every week or every meeting.## 2. No-code ways to connect Salesforce joined reports and Google SheetsOnce you understand the basics, you can remove some repetitive exports with no-code tools.### 2.1 Scheduled exports with Google Sheets connectorsSeveral marketplace add-ons and integration tools can pull Salesforce report data into Sheets on a schedule.A common pattern:1. Save your joined report in Salesforce with a clear name, like `Hot Accounts – Joined`.2. Install a Salesforce → Google Sheets connector add-on from the Google Workspace Marketplace.3. In Sheets, configure the add-on to: - Authenticate to Salesforce. - Select your saved report. - Choose a refresh schedule (for example, every morning at 7:00).4. Map the incoming columns into a dedicated tab (for example, `Raw_Salesforce_Joined`).5. Build your team-facing dashboards on top of this tab so they update automatically.Official Google Sheets docs on connected data and functions like IMPORTRANGE are here: https://support.google.com/docs/answer/3093340### 2.2 Use Salesforce subscriptions instead of exportsIf your stakeholders are comfortable in Salesforce, you can skip Sheets entirely for some scenarios:1. Open your joined report.2. Click **Subscribe**.3. Schedule email delivery (daily, weekly, etc.) to specific users or roles.4. Encourage teams to click through to the live report instead of exporting.This keeps teams closer to the source of truth, but it does not help if you need Sheets-based models, ad‑hoc analysis, or campaign-level annotations.### 2.3 Blend with Sheets formulasIf you still export manually but want more resilience:1. Keep one tab named `Export_Staging` where you always import the latest CSV.2. Build a second tab `Model` that uses formulas like `VLOOKUP`, `FILTER`, and `QUERY` to reference `Export_Staging`.3. When you re-import fresh data, your model updates automatically, reducing rework.Google’s `QUERY` documentation is invaluable when modeling Salesforce data at scale: https://support.google.com/docs/answer/3093343## 3. Scaling with AI agents (Simular) for true hands-off automationNo-code tools help, but they still live in their own silos. An AI computer agent like Simular Pro can operate your actual desktop and browser, chaining thousands of steps reliably across Salesforce and Google Sheets.### 3.1 Let an agent build and refresh joined reportsWith Simular Pro, you can:1. Record or describe the workflow: log into Salesforce, open the Reports tab, clone a template joined report, adjust date filters to this quarter, and save.2. Have the agent run the report, click export, and save the CSV to a specific folder.3. In the same run, it can open Google Sheets in the browser, import or paste the data into the right tab, and trigger recalculations.**Pros:**- Mirrors what a human does; no need for APIs.- Works even with complex UI flows, multiple logins, or 2FA.- Every action is transparent and editable, so RevOps can review exactly what the agent clicks.**Cons:**- Initial setup requires you to think clearly about your ideal process.- As your Salesforce UI changes, you may need to tweak the agent’s instructions.Learn more about how Simular Pro automates long, multi-step workflows here: https://www.simular.ai/simular-pro### 3.2 Use AI agents for cross‑workflow orchestrationBeyond a single report, you can delegate an entire weekly revenue ritual:1. Agent runs the Salesforce joined report.2. Updates multiple Google Sheets dashboards (sales, CS, marketing) using different filtered views.3. Generates a short summary in a Google Doc for leadership: top at‑risk hot accounts, biggest opportunities with open high‑priority cases.4. Posts links in Slack or email.**Pros:**- Turns a 90‑minute, multi‑tab ritual into a background task.- Creates a repeatable, auditable workflow that runs identically every week.**Cons:**- You must define clear exception rules (for example, what to do when a report returns no rows).### 3.3 Hybrid approach: humans design, agents executeThe sweet spot for business owners, agencies, sales, and marketers is a hybrid model:- Humans decide which Salesforce objects and filters matter.- They design the joined report once.- Simular’s AI agent handles execution at scale: cloning for new regions, aligning time frames, syncing into Google Sheets, and notifying teams.This is where you stop being the person who runs reports and become the person who designs revenue workflows.
Start by deciding which objects you genuinely need to see side by side. A classic pattern is Accounts, Opportunities, and Cases. In Salesforce, go to the Reports tab and click New Report. Choose Accounts as your principal report type and click Continue. In the report builder, open the Report dropdown and switch the format to Joined Report, then Apply.Now click Add Block and choose Cases as the second report type. Repeat Add Block and choose Opportunities as the third. Make sure both Cases and Opportunities share a relationship to Accounts, otherwise the joined view will not work. Add filters for each block (for example, hot accounts in the Accounts block, open cases in the Cases block, open pipeline in the Opportunities block). Finally, drag Account Name into the Group Rows area so everything is aligned per account, and save your new joined report. Salesforce’s official reference is here: https://help.salesforce.com/s/articleView?id=analytics.reports_working_with_joined.htm&type=5
The principal report type controls how shared fields are labeled and how your data is anchored, so choose the object that matches the question you are answering. If your primary question is “Which customers are at risk?”, Accounts is usually the best principal type because both Cases and Opportunities roll up to it. Go to Reports → New Report and select Accounts as the starting point.If your question is more pipeline-focused, for example “Where is revenue stuck and why?”, you could start with Opportunities instead, then add Cases or Activities as additional blocks. Always ask: what record do I want one row per group for? That is your principal type. Salesforce explains this concept in the Trailhead module on joined reports: https://trailhead.salesforce.com/content/learn/modules/joined-reports-quick-look
There are three main options. First, the manual export: run the joined report, click Export, download as CSV, then in Google Sheets go to File → Import and upload the file, inserting it into a new sheet. This is fine for ad-hoc work but painful for recurring meetings.Second, use a no-code Salesforce → Sheets connector from the Google Workspace Marketplace. Save your joined report with a stable name in Salesforce. In Sheets, install the connector, authenticate to Salesforce, select the report, and configure a refresh schedule. Map the output into a raw data tab, then build models on top. Google’s help on external data functions like IMPORTRANGE is here: https://support.google.com/docs/answer/3093340Third, delegate the whole process to an AI agent such as Simular Pro that can operate the browser, export the report, and push data to Sheets for you.
When data seems to be missing, assume filters and relationships before you assume a Salesforce bug. First, check the base report filter on the principal object (for example, Accounts). If the parent record is filtered out there, nothing from related objects will appear, even if those records exist. Next, inspect each block’s filters individually; joined reports allow different criteria per block, which can accidentally wipe out entire sections.Verify that the objects you are joining share a relationship. For example, Opportunities and Cases both link to Accounts, so they can be combined around Account Name. You cannot join completely unrelated objects. Group by the shared field (such as Account Name) to confirm alignment. If you are still stuck, temporarily remove all filters in each block and slowly add them back to see exactly when data disappears. Salesforce’s joined report guide has more nuance on this: https://help.salesforce.com/s/articleView?id=analytics.reports_working_with_joined.htm&type=5
Manually cloning and tweaking the same report for every region or segment quickly becomes unmanageable. A better pattern starts with a single, well-designed master joined report. Use relative date filters (this quarter, last 30 days) instead of hard-coded ranges so it remains reusable. Then, for each region or team, either: (1) apply dynamic filters based on the viewer’s role, or (2) clone the report once and change only the region filter.To truly scale, introduce automation. With a Salesforce-to-Sheets connector or an AI agent like Simular Pro, you can run the same master joined report with different filter values (region, segment, product line), export results into separate Google Sheets tabs, and share those links automatically with each team. This keeps the logic centralized while delivering tailored views at scale, eliminating dozens of fragile, manually maintained copies.