Integrations & Setup Guide
This guide covers connecting Oppy to your existing tools — CRM, website, marketing, Slack, and calendars.
Follow Up Boss (FUB) Integration
What It Does
- Two-way contact sync — Contacts in FUB sync to Oppy and vice versa
- Note sync — Notes created in either system sync to the other
- Tag-triggered conversations — Tag a contact in FUB to have your Oppy start a conversation
- Team roster sync — Your FUB agents, brokers, and team leads appear as tagged contacts in Oppy for internal messaging and reporting
- Real-time updates — Changes propagate automatically via webhooks
Setting Up FUB
- Navigate to Integrations in your Oppy dashboard at app.oppy.pro
- Enter your Owner API Key from Follow Up Boss
- In FUB, go to Admin > API in the sidebar
- Copy the Owner API key (not a regular user key)
- The Owner key has special permissions — there’s only one per account
- Click Connect
- All existing FUB contacts will begin syncing (initial sync may take time for large databases)
The GoGoOppy Tag System
This is how you trigger your Oppy to reach out to a FUB contact:
- In Follow Up Boss, add the tag
gogooppy-{oppy-name}to any contact- Example:
gogooppy-youroppyfor an Oppy named your ISA Oppy
- Example:
- The Oppy automatically:
- Finds or creates the contact in Oppy
- Creates a new conversation
- Sends the first outreach message based on the prompt
- Includes context from recent FUB notes (up to 3)
The tag becomes active once applied. Shortly after, you’ll see a second tag appear: gogooppy-youroppy-active — confirming the Oppy picked it up.
Watch Tags (Newer, More Flexible)
Instead of using the GoGoOppy format, you can configure Watch Tags in your Oppy’s settings:
- Go to your Oppy’s settings at app.oppy.pro
- Add tags to the Watch Tags list (e.g.,
hot-lead,callback-requested) - When ANY FUB contact receives a matching tag, a conversation triggers
Advantages over GoGoOppy tags:
- No special naming format required
- Multiple Oppies can watch the same tag
- Works with your existing FUB tagging workflow
Your FUB Team Members Sync In Too
Every agent, broker, and team lead on your Follow Up Boss roster shows up in Oppy as a contact — with their name, email, phone, profile photo, and team memberships pulled straight from FUB and refreshed nightly.
Each team contact is auto-tagged so you can slice and target them easily:
-
fub_team_member— anyone currently on your FUB team -
fub_role_agent/fub_role_broker— their FUB role -
fub_team_leader— anyone who leads a team in FUB -
fub_team_<team-name>— one tag per FUB team they belong to (e.g.fub_team_woodland_hills,fub_team_listing_team)
Use it to:
- Send a bulk SMS to just one office by filtering contacts on
fub_team_woodland_hills - Target only your brokers with a leadership update (
fub_role_broker) - Ask the Account Concierge things like “how many agents are on the San Diego team?”
- Have brand-new hires appear in Oppy automatically the morning after they’re added to FUB
When someone leaves your team in FUB, their team tags come off on the next sync so your filters stay clean.
DNC Protection
If a contact has do_not_contact or dnc tag in FUB, the Oppy will NOT reach out — even if you add a GoGoOppy tag.
Note Sync Details
- Oppy call summaries → appear as notes in FUB
- FUB notes → sync to Oppy contact notes
- Deduplication prevents duplicate notes
- The
fub_idin note metadata tracks which notes have synced
Automation Example: Auto-Tag New Leads
Example (Example Homes Group): the ops manager’s team uses FUB automations to tag leads with gogooppy-youroppy. When the tag fires, your ISA Oppy starts outreach. When a lead is qualified, the needs_attention tag syncs back to FUB. Michael’s ISA team monitors a Slack channel (#kbb-oppy-notifications) where they see leads the moment they’re ready. They built a FUB automation: Tag Added = needs_attention AND Tag Contains = gogooppy-youroppy → Notify ISA team.
Key insight from the call: Michael wanted a unique tag per Oppy so notifications from different sources don’t mix. The needs_attention tag is universal, but you can also instruct the Oppy to add custom tags like youroppy-qualified for more specific routing.
Note summary timing: After the last text in a conversation (5-15 minute timeout), the Oppy automatically posts a detailed summary to the FUB contact notes. This means when an ISA picks up a lead, they can see the full AI conversation context without logging into Oppy.
In FUB, create an automation:
- Trigger: New lead from major listing portals/listing sites/Facebook
-
Action: Add tag
gogooppy-youroppy - Result: your ISA Oppy Oppy immediately starts qualifying the lead
Website Chat Embed
Getting the Embed Code
- Go to your Oppy’s Share section at app.oppy.pro
- Click Embed Widget
- Copy the JavaScript snippet
Installing on Your Website
Paste the code before the </body> tag on every page where you want the chat:
<script type="text/javascript">
var embedKey = 'your-unique-embed-key';
function handleOppyLoad() {
if (typeof window.renderChatPopup === "function") {
window.renderChatPopup(embedKey);
}
}
(function () {
var oppy = document.createElement('script');
oppy.src = 'https://e.oppy.pro//chat_popup.js';
oppy.onload = handleOppyLoad;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(oppy, s);
})();
</script>
Adding Contextual Buttons
Make buttons on your site send specific messages to the Oppy:
<!-- On a listing page -->
<button onclick="updateChatWindow('I want info about 123 Main Street')">
Ask About This Property
</button>
<!-- On a pricing page -->
<button onclick="updateChatWindow('Tell me about your pricing plans')">
Chat About Pricing
</button>
<!-- On a demo page -->
<button onclick="updateChatWindow('I would like to schedule a demo')">
Book a Demo
</button>
When clicked, the chat opens and sends that message automatically. The Oppy then has full context of what the visitor was looking at.
Feeding Page Context
You can also silently send context as the visitor navigates:
// When visitor lands on a specific page
updateChatWindow('User is viewing the Enterprise pricing page');
This sends a hidden context message (not visible in chat) so the Oppy knows what page they’re on if they start a conversation.
Starter Prompts (Chips)
Configure clickable suggestions that appear in the chat widget:
- Go to your Oppy’s Share > Edit Page
- Add 2-3 starter prompts
- They appear as floating chips when the chat opens
Example chips:
- “What services do you offer?”
- “I’m looking to buy a home”
- “I need help with my account”
QR Codes
Types Available
Web Chat QR — Scanned QR opens the Oppy’s live chat page
- URL format:
https://app.oppy.pro/s/{embed_key}
SMS QR — Scanned QR opens the phone’s SMS app with a pre-filled message
- Format:
SMSTO:{phone_number}:{pre-filled message} - The message is whatever you type in the QR configuration
Setting Up QR Codes
- Go to your Oppy’s Share section at app.oppy.pro
- Scroll to QR Code section
- For SMS QR: Type the pre-filled message (e.g., “Hi Jasper! I just watched your webinar and would love the free blueprint”)
- Download as PNG
Use Cases
- Trade shows — Table tents, banners, booth signage
- Presentations — Put on every slide, especially the last one
- Business cards — Replace or supplement your phone number
- Print marketing — Flyers, postcards, brochures, door hangers
- Webinar follow-up — QR on the last slide for instant engagement
The Power of Pre-Filled SMS QR
QR Code at Presentations (Example)
Alex describes putting a QR code on every slide of his pitch deck:
“I put the QR code up on the last slide for maybe a minute. I get off the stage and look at my phone and Oppy’s already had a burst of conversations. These are C-suite executives that have, on average, gone back and forth many times. I can look at all the different use cases at once and I haven’t had to write a single response.”
For Example Mortgage Academy specifically: Josh was hosting a webinar for 1,500+ registrants. The plan was to display a QR code that would open a text to Jasper. When someone scans and texts, Jasper immediately:
- Responds with the free blueprint download link
- Asks qualifying questions about their role and team size
- Offers the special $249 discounted product
- Books qualified leads with Nancy for a group coaching session
This replaces the traditional flow of: scan QR → fill out form → wait for email → hope they open it → eventually get a call.
When someone scans the QR and sends the pre-filled text:
- The Oppy instantly has their phone number
- The message tells the Oppy where they came from (webinar, event, etc.)
- The Oppy can immediately respond with relevant info
- The prompt can have special instructions for messages matching that text
Pro tip: This replaces traditional lead capture forms. Instead of: scan QR → fill form → wait for email → follow up — it’s: scan QR → send text → instant AI conversation → qualified in minutes.
Google Calendar Integration
Connecting Your Calendar
- Go to Integrations at app.oppy.pro
- Click Connect Google Calendar
- Authorize access to your Google account
- Select which calendar(s) to use
What the Oppy Can Do with Calendar
- Find available time slots based on your free/busy status
- Book appointments directly on your calendar
- Respect your rules — you set scheduling constraints in the prompt
Using External Scheduling Tools Instead
If you prefer Calendly, Schedule Once, GoHighLevel Calendar, etc.:
- Don’t connect Google Calendar in integrations
- Instead, add the booking links directly in the prompt:
For sales demos: Share this link → [Calendly URL] For coaching sessions: Share this link → [GoHighLevel URL]
Scheduling Rules in the Prompt
Scheduling rules:
- Only book Monday-Thursday between 10am-4pm Pacific
- Never book same-day appointments
- Leave 30 minutes between meetings
- Coaching sessions: Tuesdays and Thursdays only
- Sales demos: Any available slot M-Th
Slack Integration
Notification Channel
Add a Slack channel’s email address as a manager on your Oppy:
- In Slack, go to the channel → Settings → Integrations
- Copy the channel’s email address
- In Oppy, add that email as a Manager for your Oppy
- Needs attention notifications will now post to that Slack channel
ISA Workflow
Many teams use this for speed-to-lead:
- Lead qualifies → Oppy sets needs_attention
- Notification posts to
#leadsSlack channel - ISA team sees it immediately and picks up the conversation
- ISA can access the full transcript and contact info in Oppy
Webhook Integration
Example: Salesforce + Oppy (Example Lending/Example Financial)
Example Lending uses Salesforce and wanted a clear data flow:
Inbound flow:
- Lead comes into Salesforce from their website
- the salesperson (salesperson) makes first call attempt
- If no answer, Salesforce automation sends contact data to Oppy
- Oppy’s AI follows up via SMS/email with personalized outreach
- If lead responds, AI qualifies them
State change flow:
- Lead status changes in Salesforce (e.g., “Contacted → Cold”)
- Webhook sends new status to Oppy
- Oppy switches to a re-engagement strategy
- Different prompt behavior based on the status received
Outbound flow:
- Lead says “stop” → Oppy marks DNC
- Oppy sends webhook back to Salesforce
- Salesforce updates the do-not-call flag
- This is critical for compliance — fines are significant
Key architectural principle (from the call): “Don’t make Oppy responsible for reading Salesforce state — push state changes to it.” Your CRM is the source of truth. Oppy acts on what you send it.
For technical teams that want to connect to Salesforce, HubSpot, or custom systems:
Inbound (Leads → Oppy)
- Email trigger: Forward lead notification emails to your Oppy’s email address
- API: POST contact data to Oppy’s API
- Webhook: Configure your CRM to send webhooks when lead status changes
Outbound (Oppy → Your Systems)
- Needs attention emails → Parse and route in your system
- Webhook events → Subscribe to conversation status changes, new contacts, etc.
- API polling → Query Oppy’s API for updated data
- HTTP requests — The Oppy can make HTTP requests to your APIs from within conversations (admin function)
HubSpot Integration
What It Does
- Two-way contact sync — HubSpot contacts sync to Oppy and vice versa
- Note sync — Oppy notes sync to HubSpot contact records
- Deal sync — Oppy board items sync bidirectionally as HubSpot deals
- Pipeline sync — HubSpot pipelines auto-sync for deal stage mapping
- Webhook events — Real-time updates on contact/deal creation, deletion, and property changes
Setting Up HubSpot
- Navigate to Integrations at app.oppy.pro
- Enter your HubSpot API Key (Bearer token)
- Click Connect
- Contacts, deals, and pipelines begin syncing automatically
What Syncs
| Oppy | HubSpot | Direction |
|---|---|---|
| Contact (name, email, phone) | Contact (firstname, lastname, email, phone, mobilephone) | Bidirectional |
| Notes on contacts | Notes associated with contacts | Oppy → HubSpot |
| Board items (deals) | Deals (name, stage, pipeline, amount, close date) | Bidirectional |
| Pipeline stages | Pipeline stages | HubSpot → Oppy |
How Contact Sync Works
- When Oppy creates/updates a contact, it searches HubSpot by email or phone first to prevent duplicates
- HubSpot contact ID stored in Oppy contact metadata as
hubspot_id - Webhooks fire on contact.creation, contact.deletion, and contact.propertyChange in HubSpot
How Deal Sync Works
- Oppy board items map to HubSpot deals
- Deal stages are mapped between Oppy list names and HubSpot pipeline stages
- HubSpot deal ID stored in list item metadata as
hubspot_deal_id - Initial setup fetches all existing HubSpot deals
Webhook Events from HubSpot
HubSpot sends real-time webhooks for:
- Contact created, deleted, or property changed
- Deal created, deleted, or property changed
- Secured with HubSpot signature validation
Bulk Outreach (SMS, Calls, Email)
Bulk SMS
At app.oppy.pro → Contacts page:
- Select contacts using checkboxes (or filter and select all matching)
- Click Send Message in the bulk action bar
- Choose which Oppy should handle responses
-
Write or auto-generate the message
- Write one message for all recipients
- Or let the AI personalize per-contact based on their data
- Choose delivery method (SMS or email)
- Click Send
What happens next:
- Each contact receives the message from the selected Oppy
- When contacts respond, the AI handles the conversation automatically
- All conversations appear in the dashboard, filterable by Oppy
- If follow-up is enabled, non-responders get automatic follow-up
Scale: Up to 1,000 messages per batch. A completion report is emailed to you when done.
Bulk Voice Calls
At app.oppy.pro → Contacts page:
- Select contacts to call
- Click Call Contacts
- Choose which Oppy makes the calls
- Optionally set a custom greeting for this batch
- Set delay between calls (to control pacing)
- Click Call
What happens:
- The Oppy calls each contact sequentially
- Each call creates a conversation with full transcript
- Results export as CSV when the batch completes
- Connected calls: AI qualifies per the prompt
- Voicemails: AI leaves a message per the prompt
- No answer: Logged, can trigger SMS follow-up
Example: Example Lending Team ran a high daily calling volume. The CSV export let them quickly see which calls connected, which went to voicemail, and which leads were qualified.
Bulk Email
Same flow as bulk SMS but with email as the delivery method:
- Each email comes from the Oppy’s email address (e.g.,
jasper@open.oppy.pro) - Includes the Oppy’s email signature
- Responses are handled by the AI automatically
- Thread tracking maintains conversation context across replies
Triggering Bulk Outreach via FUB Tags
Instead of selecting contacts manually, automate it:
- In FUB, create an automation that adds
gogooppy-{oppy-name}to matching contacts - The Oppy picks up each tagged contact and starts a conversation
- This works for any FUB automation trigger: new lead, stage change, date-based, etc.
Example: New lead from major listing portals → FUB automation adds gogooppy-youroppy → your ISA Oppy calls within 60 seconds.
Scheduling Bulk Outreach
Messages can be scheduled for future delivery:
- Set
deliver_aftertimestamp for each message - Respects business hours if configured
- Useful for: Monday morning campaigns, time-zone-aware sends, post-event follow-ups
Google Calendar Integration (Detailed)
Note: This section expands on the basic setup above with detailed capabilities.
What It Does
Full calendar management — your Oppy can check availability, book meetings, and manage events on your Google Calendar.
Setting Up
- Go to Integrations at app.oppy.pro
- Click Connect Google Calendar
- Authorize via Google OAuth (grants calendar read/write access)
- Select which calendar(s) your Oppies should use
Multi-Calendar Support
You can connect multiple calendars and assign different ones to different Oppies:
- Primary calendar — Your main schedule
- Resource calendars — Conference rooms, shared resources
- Team calendars — Different team members’ availability
Configure in your Oppy’s settings: each Oppy can access specific calendars with labels (e.g., “Sales Demos”, “Coaching Sessions”).
What the Oppy Can Do
Check Availability:
- Searches across all connected calendars
- Respects busy/free status
- Returns available time slots within your specified rules
- The AI MUST call
get_available_timeslotsbefore offering any booking — it never guesses availability
Book Appointments:
- Creates events directly on your calendar
- Adds attendee details (name, email, phone)
- Auto-generates Google Meet links (optional)
- Sends calendar invitations to attendees
- Supports all-day events
Manage Events:
- Reschedule (update time/date)
- Cancel (delete event)
- Update details (title, description, location, attendees)
- Search events by text query
Scheduling Rules in Your Prompt
Control how the Oppy books through natural language in the prompt:
SCHEDULING RULES:
- Only book Monday-Friday between 9am-5pm Pacific
- Minimum 30 minutes between meetings
- No same-day bookings
- Maximum 3 meetings per day
- Coaching sessions: Tuesdays and Thursdays only
- Sales demos: Any available weekday slot
- If no slots available this week, offer next week
Using External Tools Instead
If you use Calendly, GoHighLevel, Schedule Once, or similar:
- Don’t connect Google Calendar in integrations
- Put the booking links directly in your prompt:
For individual consultations: Share [Calendly URL] For group sessions: Share [GoHighLevel URL] For corporate demos: Share [Schedule Once URL]The Oppy will share the appropriate link based on the conversation context.
Calendar Analytics (via Account Concierge)
Ask the concierge at app.oppy.pro:
- “What meetings do I have today?”
- “Who have I met with most this month?”
- “Find people I met with once but haven’t met again”
- “Compare my calendar this month vs same month last year”
Integration Status Overview
| Integration | Status | Sync Direction | Key Features |
|---|---|---|---|
| Follow Up Boss | Native, production | Bidirectional | Contacts, notes, deals, tasks, appointments, team roster, GoGoOppy tags, Watch Tags |
| HubSpot | Native, production | Bidirectional | Contacts, notes, deals, pipelines, webhooks |
| Google Calendar | Native, production | Bidirectional | Events, availability, booking, multi-calendar |
| Twilio | Native, production | N/A (infrastructure) | SMS, voice, phone provisioning, A2P compliance |
| Thanks.io | Native, production | Outbound | Physical handwritten cards and postcards |
| Slack | Via email | Inbound (notifications) | Add Slack channel email as Oppy manager |
| Salesforce | Via webhook/email/API | Push-based | Email forwarding, webhooks, HTTP requests from Oppy |
| ActiveCampaign | Not available | — | No integration. Use webhook/email patterns instead. |
| GoHighLevel | Via booking links | Link-based | Paste GHL calendar links in the prompt |
| Zapier / Make / N8N | Via webhooks | Both | Automation rules send webhooks; inbound via email forwarding |
| Any CRM/Tool | Via HTTP requests | Both | Oppy can make API calls to any HTTP endpoint during conversations |
No ActiveCampaign Integration
ActiveCampaign is not currently integrated. If you use ActiveCampaign, the best approach is:
- Email forwarding — Forward AC lead notifications to your Oppy’s email
- Webhook — Use AC automations to send webhooks that trigger Oppy actions
- HTTP requests — The Oppy can call ActiveCampaign’s API directly during conversations if you provide the API key in the prompt
Thanks.io (Direct Mail)
Your Oppy can send physical handwritten notes and postcards via Thanks.io:
- Send personalized handwritten cards to contacts
- Send custom image postcards
- Track order and shipping status
- Cancel orders within 1 hour if in “Reviewing” status
Set up: Add your Thanks.io API key in Integrations at app.oppy.pro. Then enable the send_direct_mail function on your Oppy.
Use cases:
- Post-closing thank you cards (real estate)
- Handwritten follow-up after meetings
- Anniversary/birthday cards to clients
- “We miss you” re-engagement cards
SMS Compliance (A2P 10DLC)
Integration Decision Matrix
Use this to decide which integration approach to use:
| Your CRM | Best Approach | Effort | Data Flow |
|---|---|---|---|
| Follow Up Boss | Native integration (API key) | 5 min | Bidirectional auto-sync |
| GoHighLevel | Calendly/booking links in prompt | 10 min | Manual, link-based |
| Salesforce | Webhooks + email forwarding | 1-2 hrs | Push from SF, email back |
| HubSpot | Native (in development) or webhook | 30 min | Webhook-based |
| No CRM | Use Oppy’s built-in contacts | 0 min | Oppy IS your CRM |
| Custom/Other | Email forwarding + API | 1-3 hrs | Email in, webhook out |
Minimum Viable Integration (Any CRM)
If you just want to get started fast with any CRM:
- Forward lead notification emails to your Oppy’s email address
- Add the Oppy’s email as a manager (whitelisted)
- In the prompt: “When you receive an email from [CRM email], extract the lead info and call them”
That’s it. The Oppy will create contacts, start conversations, and you can add more sophisticated integrations later.
What You Need for SMS
- Privacy policy on homepage — Must include SMS language
- EIN — Business tax ID
- Separate SMS consent — On lead capture forms, SMS consent should be its own checkbox
- Standard language: “By providing your phone number, you consent to receive text messages from [Company]. Message and data rates may apply. Reply STOP to opt out.”
What We Handle
- Filing the A2P registration with carriers
- Configuring your dedicated Twilio subaccount
- Trust product verification
- Ongoing compliance monitoring
Timeline
Typically 1-2 weeks from submission to approval. Voice calls work immediately — only SMS requires provisioning.