If you’re in sales ops, revenue, or just the “get stuff done” camp, you’ve probably wondered how to get customer insights from one tool into Salesforce without creating a mess. This guide is for you. We’ll cover how to connect June.so—which is great for product analytics and customer insights—with Salesforce, so your sales team can actually see what matters, when it matters. No fluff, no magic wands. Just a real, practical walkthrough.
Why bother integrating June.so with Salesforce?
Let’s be honest: Salesforce isn’t great at surfacing real product usage or customer health on its own. And June.so can give you the kind of user behavior data your sales team actually wants—like which accounts are active, who’s about to churn, and who might be ready for an upsell.
But if that data lives in June.so and never shows up in Salesforce, your reps are flying blind. Integrating the two means:
- Less time copy-pasting info between tabs.
- Reps see what matters, right in the account view.
- You can automate alerts, tasks, or workflows based on real product usage.
- You avoid the “Oh, I didn’t see they logged in yesterday” facepalm.
That said, this isn’t a silver bullet. Your workflow’s only as good as the questions you’re asking and the data you trust. Keep it simple to start.
What you need before starting
Don’t waste time if you’re missing any of these:
- A June.so account with admin rights.
- A Salesforce account with admin rights (or someone who can install integrations).
- Access to Salesforce API (most paid plans have this; if not, talk to your admin).
- Some patience. These things aren’t always plug-and-play.
Optional, but helpful: - A clear idea of which data you actually want to sync. Start small—think one or two key usage metrics or signals. - Basic Zapier, Make, or Tray.io understanding if you’re going the no-code route.
Step 1: Choose Your Integration Method
There’s no official, direct “one-click” native June.so ↔ Salesforce integration (at least as of mid-2024). Here are your options:
- No-code automation tools (Zapier, Make, Tray.io): Easiest to set up. Good for small teams or pilots.
- Custom API integration: More flexible, but you’ll need dev resources. Only worth it if you have complex needs or high volume.
- Manual exports: Not really an integration, but worth mentioning—useful if you’re just getting started and want to test the waters.
Pro tip: Don’t jump to code unless you really need to. Most teams get what they need with Zapier or Make.
Step 2: Prep June.so and Salesforce
In June.so
- Identify the data you need. Most likely, you’ll want “Active Users,” “Feature Usage,” or “Account Health” signals.
- Set up the right reports or signals. Make sure June.so is tracking the metrics you care about. Clean, consistent naming will save you headaches later.
In Salesforce
- Decide where the data should live. Usually, you’ll map June.so account data to Salesforce Accounts, and user-level data to Contacts or Opportunities.
- Create custom fields if needed. For example:
Last Product Activity
,Usage Score
, orChurn Risk
. Don’t overcomplicate—start with one field and see how it goes. - Check API access. Make sure your integration user has the right permissions.
Step 3: Set Up the Integration
Option 1: Using Zapier (Recommended for Most)
1. Connect June.so to Zapier
As of now, June.so doesn’t have a “public” Zapier app, but you can use:
- Webhooks: June.so can push data via webhooks. You’ll need to set up a webhook trigger in Zapier.
- In June.so, set up a webhook for the event or report you care about (e.g., when an account hits a milestone).
- Point it to your custom Zapier webhook URL.
2. Set Up the Zap
- Trigger: Zapier webhook receives data from June.so.
- Action: Find or update the right Salesforce record.
- Use “Find Record” or “Update Record” in Salesforce.
- Map the data fields from June.so to your custom Salesforce fields.
3. Test It
- Trigger an event in June.so and see if it lands in the right Salesforce field.
- Fix any mapping errors, typos, or missing data.
What works:
Zapier is simple, flexible, and you don’t need to bug engineering.
What doesn’t:
High volume can get expensive. Delays and rate limits may be an issue for big teams.
Option 2: Using Make (Integromat) or Tray.io
- Workflow is similar to Zapier—just a different UI.
- These tools can be cheaper or more powerful for complex workflows.
- The key steps: Receive webhook from June.so, transform the data, and upsert into Salesforce.
Pro tip: If you need to do lookups, enrichment, or multi-step logic, Make or Tray.io might be a better fit than Zapier.
Option 3: Custom API Integration
If you have a dev team or you’re technical:
- Use June.so’s API to pull data on accounts, features, or events.
- Use Salesforce’s REST API to update records.
- Write a script (Node.js, Python, whatever you like) that runs on a schedule.
What works:
Full control. Can sync lots of data and handle edge cases.
What doesn’t:
Maintenance. If APIs change or something breaks, it’s on you to fix it.
Option 4: Manual Export/Import
- Export CSVs from June.so (weekly, monthly, whatever works).
- Import into Salesforce with Data Loader or the native import tool.
What works:
Fast to set up, no integration headaches.
What doesn’t:
Not real-time. Easy to forget or mess up. Only useful for occasional reporting.
Step 4: Map and Transform Your Data
No matter which method you use, mapping data is where most folks go wrong.
- Match IDs: Make sure June.so’s “account” or “user” IDs match Salesforce’s records. If you have mismatches, you’ll get duplicates or missed updates.
- Simplify: Don’t try to sync every field. Pick 1–2 signals that actually matter for sales (e.g., “Active this week,” “Used Feature X”).
- Test edge cases: What happens if an account is missing? If the field is blank? Handle these up front.
Pro tip: Add a “Last Synced” timestamp field in Salesforce. It’ll help you debug and gives reps confidence in the data.
Step 5: Automate Alerts and Workflows (Optional)
Once data is flowing, make it useful:
- Create Salesforce reports or dashboards that show usage trends or at-risk accounts.
- Set up workflow rules or flows to alert reps when an account’s usage drops or spikes.
- Automate tasks (e.g., follow-up if someone logs in after a long absence).
Don’t overdo it: Start with one alert or dashboard. Too many pings = ignored pings.
Step 6: Train Your Team (But Keep It Simple)
You don’t need a 2-hour workshop. Just:
- Show reps where to find the new fields or dashboards.
- Explain what the data means (and doesn’t mean).
- Encourage them to use it for context, not as gospel.
Most of all: Listen to feedback. If reps ignore the data, ask why. Maybe it’s not useful, or maybe it’s buried three clicks deep.
What to Ignore
- Overcomplicating the sync. You don’t need every June.so metric in Salesforce.
- Real-time obsession. For most teams, daily or even weekly syncs are fine.
- Integration for integration’s sake. If the sales team isn’t using the data, pause and ask what would actually help.
Troubleshooting Common Issues
- Data not syncing? Double-check your webhook URLs, API keys, and field mappings.
- Duplicate records? Usually a mismatch in IDs. Make sure you’re matching on a unique field (like email or account ID).
- Weird data? Sometimes formatting gets messed up (dates especially). Try syncing a few test records before going live.
- Salesforce errors? Permissions are the #1 cause. Make sure your integration user has “Edit” rights on the target fields.
Final Thoughts: Start Simple, Iterate Fast
Integrating June.so with Salesforce can be a massive time-saver and give your sales team real context. But the trick is to start with the basics—one or two signals, a simple sync, and real feedback from the people using it. Fancy dashboards and automation can wait. Keep it lean, fix what breaks, and expand as you see real value.
Now go make your sales process a little less painful—and leave the B.S. at the door.