FreeCRM for Zoom Contact Center
This guide covers adding the FreeCRM app to Zoom Contact Center (ZCC), setting it up for your queues, and using it on engagements. Part 1 is for the ZCC admin. Part 2 is for agents.
The FreeCRM app is a panel in the ZCC agent desktop. When an engagement arrives, it finds the customer in FreeCRM and opens their record. You can work on the record during the engagement, and at wrap-up the app logs the call to FreeCRM.
What you need
- A Zoom account with Zoom Contact Center and at least one queue.
- A Zoom account owner or admin, or a ZCC user with Integrations (Edit) and Queue Management (Edit), to do the setup.
- A FreeCRM account, and a FreeCRM user for each agent. Agents see and change only what their FreeCRM role allows.
- A current Zoom client. The app needs Zoom desktop 6.0.0 or later, or the Contact Center web (PWA) client 5.14.10 or later. Flow variables (Part 1, step 4) need desktop 6.2.5 or later.
Part 1 — For admins: add and configure the app
Step 1: add the app to your Zoom account
- Sign in to the Zoom App Marketplace as an account owner or admin.
- Open the FreeCRM app, using the link FreeCRM gave you or by searching for it, and click Add.
- Choose Add for Others. Under Users & Groups → Groups, pick All Contact Center Users, or a narrower group if only some agents need it.
- Approve the request. The app asks for no Zoom scopes. It does not read your recordings, meetings or Zoom user data. It only reads the engagement the agent is handling.
Step 2: turn the app on for your queues
- Go to Contact Center Management → Integrations → Zoom Apps and open the Visual apps tab.
- Click the FreeCRM app, then Manage queue(s) (or + Add Queue(s)).
- Select each queue whose agents should see the panel, then save.
The panel appears only while an agent handles an engagement from one of these queues. Agents have nothing to open, and the panel doesn't appear on an idle desktop.
Zoom sometimes renames menus. If a label doesn't match, look for the equivalent setting in the same area.
Step 3: test it
- Route a test call to an assigned queue and accept it.
- The panel opens and shows Sign in to FreeCRM. Sign in with a FreeCRM user.
- Confirm the customer's record opens, or a search if the caller isn't in FreeCRM.
- Go to wrap-up. The panel shows Call logged. Check that the call appears on the customer's record in FreeCRM.
At this point the app works. The panel finds customers by the caller's email address and phone number. Step 4 is optional.
Step 4 (optional): pass the exact record from your flow
If your flow already knows who the caller is, for example from an IVR lookup or a signed-in web chat, it can tell the panel which FreeCRM record to open. The panel then skips matching and opens that record directly.
Create the variables
Go to Admin Center → CX management → Contact Center → Preferences → Variables → Custom Variable Groups. Add a group (for example FreeCRM) and add these variables to it:
| Variable name | Data type | What the flow puts in it |
|---|---|---|
freecrm_record |
String | The record to open, written as model:id, for example contact:<id>
|
freecrm_identifier |
String | Optional. The caller's phone number (E.164) or email address, if the flow knows a better one than the engage |
ment carries |
For each variable:
- Set Variable Type to Global Variable.
- Turn on Allow to be accessed by third-party Zoom Marketplace apps.
- Leave Mask variable data off, because the app has to read the value.
- Leave Use in reporting and Display in Zoom Contact Center client off. The value is a CRM identifier and doesn't belong in reports.
Type the names exactly as shown. If your account already uses different variable names for this, contact FreeCRM support to have the app read yours instead.
Give the app access to the variables
In Contact Center Management → Integrations → Zoom Apps → Visual apps, click the FreeCRM app, then Add Variables (or Manage variables). Add both variables.
Set the variables in the flow
In each flow that routes to an assigned queue, set freecrm_record before the engagement reaches the agent. Use a Set Variables widget, or an HTTP Call widget followed by Set Variables if the flow looks the caller up.
The value is the record type and the FreeCRM record id, separated by a colon. The supported types are contact, company, deal, case, task, call, event, document, product and invoice. In practice this is usually contact:<id> or company:<id>.
If the value is missing, malformed, or names a record that doesn't exist, the panel ignores it and matches by email and phone as usual. It shows no error. If the panel isn't opening the record you expect, check the value the flow sets first.
If the flow calls FreeCRM's API itself, give it its own API credential. Never use an agent's login.
Troubleshooting for admins
| What you see | What to check |
|---|---|
| The panel never appears | The engagement came from a queue that isn't assigned in step 2, or the agent isn't in the group the app was added |
for in step 1. | | "Accessing Untrusted Website" (error 10015) | A configuration problem on FreeCRM's side. Contact FreeCRM support. | | "Contact Center session required" | The app was opened outside a Contact Center engagement. It works only in the ZCC agent desktop. | | "Zoom connection unavailable" | The Zoom client is too old, or the page was opened outside Zoom. Update the client. | | "This Zoom session could not be verified." for every agent | Contact FreeCRM support. | | "This FreeCRM account is not enabled for Zoom." | Your FreeCRM account hasn't been enabled for the Zoom app. Contact FreeCRM support. | | "This FreeCRM account belongs to a different region." | The agent's FreeCRM account is in a region this app doesn't serve. Contact FreeCRM s upport. | | The flow sets freecrm_record, but the panel still matches by phone or email | The variable name is spelled differently, Allow to be acce ssed by third-party Zoom Marketplace apps is off, the variable isn't added to the app, the agent's Zoom client is older than 6.2.5, or the v alue isn't model:id for a record that exists. | | Variables are greyed out under Add Variables | Contact FreeCRM support. The app needs a Marketplace update. |
Part 2 — For agents: use the app
Where the panel appears
The panel opens by itself beside an engagement (a call, chat, SMS or email) from a queue your admin has connected to FreeCRM. There is nothing to launch, and it doesn't appear on an idle desktop.
Between engagements it shows Waiting for an engagement, with Search contacts and your Recently viewed records.
Signing in
The first time, the panel shows Sign in to FreeCRM. Use your usual FreeCRM email and password. This links your Zoom user to your FreeCRM user.
- A panel session lasts up to 12 hours. After that, or if FreeCRM signs you out, the sign-in form appears in place. Your open screen and drafts are kept.
- The Connections section shows the FreeCRM user you are linked as. Sign out ends your panel session, for example at the end of a shift, and keeps the link. Disconnect FreeCRM account removes the link. You need to do that before a different FreeCRM user can sign in on your Zoom account.
- "A different FreeCRM user is already linked to this Zoom account" means another FreeCRM user holds the link. That user can Disconnect FreeCRM account, or your admin can ask FreeCRM support to remove the link.
Finding the customer
When an engagement arrives, the panel shows Finding the customer… and tries, in order:
- the FreeCRM record your contact center's flow passed along, if your admin set one up;
- the customer's email address;
- the customer's phone number, matched on its last digits.
What you see next:
- One match: the customer's record opens.
- Several matches: pick the right one from the list. Nothing is picked automatically.
- No match, or a chat that carries only a display name: a search opens, prefilled with whatever the engagement carried. Search works by name or email, never by phone number.
- You already know who it is: use Search instead while the panel is still looking, or Change customer once a record is open.
During the engagement
The customer's record has a header, an action row below it, and tabs underneath (Details, Notes, Cases, Tasks, Calls, Events, Deals, Invoices, Documents, Emails and Texts, depending on the record).
- The pencil button (Edit) edits the record in place.
- New case, New task and New event open forms already linked to the customer. A new event's start and end dates are filled in.
- Notes tab: add a note, and edit or delete one where your FreeCRM role allows.
- Tasks tab: Mark complete on a task's row. Open a case to change its status.
- Follow-up (under the header): set a reminder with Remind me at and Set reminder.
- Email and Text in the header send through FreeCRM, not through the Zoom conversation. Email needs a paid FreeCRM plan with outgoing mail set up. A text needs a number marked SMS-capable in FreeCRM.
- Deals, products and invoices are read-only in the panel. Change them in FreeCRM.
Drafts save on your device as you type, so a reload or a switch to another engagement doesn't lose them. They are deleted after 24 hours, or when another agent signs in on the same device.
Wrap-up and the call log
You don't need to log the call yourself.
- At wrap-up the panel creates one call record in FreeCRM, attached to the customer you chose, and shows Call logged. Call logged without a customer means no customer was chosen, so attach one in FreeCRM later.
- Once the call is logged, a Call note box appears. Write what the customer needed and what was agreed, then click Save call note. Saving again updates the same note instead of adding a second one.
- When the engagement ends, the call's duration is recorded and the customer stays open. Click Save and close when you're finished. Save or clear an unsaved call note first.
- If logging fails, the panel shows the reason with Try again. Retrying never creates a duplicate call. If it still fails, Close without logging lets you move on. Tell your admin what the message said.
- If the panel is closed before wrap-up, no call is logged for that engagement. Log it in FreeCRM.
Common messages
| Message | What to do |
|---|---|
| This Zoom session could not be verified. | Reload the app and try again. If every agent sees it at once, tell your admin. |
| Email or password is incorrect. | Check your FreeCRM email and password. |
| Too many sign-in attempts. | Wait a few minutes, then try again. |
| This FreeCRM account is not enabled for Zoom. | Tell your admin. |
| This FreeCRM account belongs to a different region. | Tell your admin. |
| You do not have permission to access this record. | Your FreeCRM role blocks it. It doesn't mean the customer is missing. |
| Your session expired. Sign in again to continue. | Sign in. Your drafts are kept. |
| "Accessing Untrusted Website" (Zoom error 10015) | Tell your admin. |