Documentation · Admin Reference
CMH Team and Contact Routing
This document is a reference for the CMH Team admin area of the ADP Car Market Hub plugin. CMH Team is a separate top-level menu in the WordPress sidebar (icon dashicons-groups), placed directly below CMH Cars. It lets a dealership manage the sales contacts that appear beside each vehicle, decide which contact is shown on which vehicle, and control how inquiries are routed.
When to use this document
Read this if you are an administrator or office manager and you need to:
- Maintain the list of dealership sales contacts (your "team members").
- Choose a default contact for each branch (location).
- Assign individual vehicles to a specific contact, to a general dealership contact, or to no visible contact.
- Configure the fallback contact that is used when no specific contact applies.
- Control how new imported vehicles are automatically assigned and how the contact form is routed.
- Understand what a website visitor sees on the vehicle detail page.
Overview
CMH Team is the dealership's own contact directory inside the plugin. A team member is a sales contact (name, photo, phone, email and social links) that is shown next to the inquiry form on a vehicle detail page. Team members are managed entirely inside the plugin and do not need their own WordPress user accounts, so you can add or remove a salesperson without touching WordPress user management.
Once team members exist, the plugin decides which contact to show on each vehicle. That decision is called contact routing. Routing can be:
- Automatic — the plugin picks a contact based on the vehicle's branch (location) and your fallback settings.
- Manual — you assign a specific vehicle to a specific contact, to the general dealership contact, or to "no visible contact".
The CMH Team area has seven screens, in the order they appear in the submenu:
| Screen | Submenu label | Purpose |
|---|---|---|
| Overview | Overview | Status dashboard: counts, fallback status and recommended next actions. |
| Members | Members | The list of all team members, with their assignment counts and quick actions. |
| New member | New | The form to create a new team member (also used when editing an existing one). |
| Locations | Locations | The default contact for each branch. |
| Assignment | Assignment | Bulk-assign vehicles to a contact, a general contact, no contact, or automatic. |
| Standards | Standards | Global fallback contact and the general dealership contact details. |
| Rules | Rules | Switches that control automatic assignment, contact-form routing and frontend visibility. |
Requirements or prerequisites
- A user with the plugin's management capability (the same role that can open the other CMH admin pages).
- For per-branch defaults and automatic assignment to work, at least one location with an AutoScout24 seller ID must be configured under CMH Center → Locations. See Locations Reference.
- Optional: profile photos for your team members, uploaded to the WordPress Media Library in advance.
The seven CMH Team screens
1. Overview
The Overview screen is a read-only status dashboard. At the top it shows KPI tiles:
- Active team members — how many members are currently active.
- Assigned cars — vehicles that have a specific contact stored.
- Unassigned cars — vehicles with no specific contact stored yet (these are resolved automatically at display time).
- Locations with default contact — how many branches have an active default contact.
- Fallback status — Configured when a global default contact or a general dealership contact exists; Missing otherwise.
Below the tiles, a Team status card summarises the situation and offers Recommended actions (links to Members, Assignment and Standards). When there are no members yet, it shows a single call to action to create the first member.
2. Members
The Members screen lists every team member in display order. Each row shows the Name, Position, Email, Phone, Location, the number of Assigned cars, and the Status (Active or Inactive).
The Actions column offers:
- Edit — open the member in the New / Edit form.
- Deactivate / Activate — toggle the member's status. An inactive member is never shown on the website and is never used as a contact, but is kept so you can reactivate them later.
- Delete — permanently remove the member (a confirmation prompt is shown first).
Deleting a member also detaches them from any location default and from the global default automatically, so no vehicle is left pointing at a missing contact.
3. New member (New / Edit)
This screen is the form used to create a new team member and to edit an existing one. Only the Full name is required. The available fields are:
| Field | Notes |
|---|---|
| Full name | Required. Shown on the website contact card. |
| Position or role | For example Sales Consultant. Optional. |
| Status | Active (shown on the site) or Inactive (hidden). |
| Location | The branch this member belongs to, chosen from your configured locations. Optional. |
| Display order | A number that controls the order in member lists (lower numbers first). |
| The address that receives inquiries routed to this member. Validated as an email address. | |
| Phone | Shown as a clickable phone link on the contact card. |
| Mobile phone | Optional second number. |
| Profile photo | The numeric ID of an image already uploaded to the Media Library. |
| Optional WhatsApp contact. | |
| Optional profile URL. | |
| Optional profile URL. | |
| Internal note | A private note for your team. Not shown on the website. |
After saving, the form stays on the saved member so you can continue editing, or use Back to members to return to the list.
4. Locations
The Locations screen maps each branch to a default team member. For every configured location it shows the location name, its seller IDs, and a dropdown to pick the default contact.
The default contact is the member who is used for a vehicle from that branch when the vehicle has no more specific assignment of its own. This is the backbone of automatic assignment. Inactive members appear in the dropdown marked (inactive), but an inactive member is never actually shown on the website.
If no locations exist yet, the screen asks you to add them first under CMH Center → Locations.
5. Assignment
The Assignment screen is where you assign vehicles to a contact in bulk. A filter bar at the top lets you narrow the vehicle list by Location and to show Unassigned only. The table lists vehicles with their Current contact and the assignment Mode:
| Mode shown | Meaning |
|---|---|
| Specific member | The vehicle is assigned to a named team member. |
| General dealership | The vehicle uses the general dealership contact instead of a person. |
| No visible contact | The contact card is hidden for this vehicle. |
| Automatic | The plugin resolves the contact automatically (the default). |
To assign, tick one or more vehicles, choose a target from the dropdown, and click Apply assignment. The dropdown options are:
- A named team member — assign the selected vehicles to that person (a manual assignment).
- General dealership contact — show the general dealership contact instead of a person.
- No visible contact — hide the contact card for the selected vehicles.
- Automatic (reset) — clear the manual choice and let the plugin resolve the contact automatically again.
Manual choices (a named member, general, or no visible contact) are protected: the importer never overwrites them. "Automatic" assignments can be refreshed by the importer.
6. Standards
The Standards screen defines what happens when no per-vehicle or per-location contact applies. It has two parts.
Fallback contact
- Global default team member — a single member used as the catch-all contact across the whole site.
- Fallback behavior — what to do when no member can be resolved:
- Use global default, then dealership contact — try the global default member first, then the general dealership contact.
- Use general dealership contact — go straight to the general dealership contact.
- Hide contact card when no team member is found — show no contact card at all.
Dealership fallback — the general dealership contact, used as a non-personal fallback:
- General dealership name
- General dealership email (validated as an email address)
- General dealership phone
- General dealership location
7. Rules
The Rules screen contains switches grouped into three areas. The defaults are dealer-friendly and import-safe, and the recommendation is to leave them at their defaults.
| Group | Switch | Default | Effect |
|---|---|---|---|
| Assignment behavior | Automatically assign newly imported cars by location | On | New imported vehicles are matched to a contact using their branch during import. When off, imported vehicles are not stamped with a contact and are resolved automatically at display time instead. |
| Assignment behavior | Never overwrite manual car assignments during import | On | A manual choice you made (a specific member, the general contact, or "no visible contact") is preserved on every re-import. |
| Contact routing | Use the global fallback when no location contact exists | On | During import-time automatic assignment, when a vehicle's branch has no default contact, the global default member is stamped onto the vehicle. This switch governs the import step only; on the vehicle page the global default is always used as a final fallback regardless of this switch (see How contact routing works below). |
| Contact routing | Send the contact form to the resolved team member | On | Reflects the standard behavior: inquiries about a vehicle are emailed to the contact resolved for that vehicle. Leave this on. |
| Contact routing | Send a copy to the general dealership email | Off | When on, a copy of each inquiry is also sent to the general dealership email. |
| Frontend visibility | Hide inactive team members from the frontend | On | Reflects the standard behavior: members set to Inactive are not shown to visitors and are not used as a contact. Leave this on. |
Note for administrators. The Send the contact form to the resolved team member and Hide inactive team members from the frontend switches describe the plugin's standard behavior, which currently always applies. Turning either switch off in the current version does not change that behavior. Likewise, Use the global fallback changes the import-time assignment step only, not the final fallback shown on the vehicle page. Keep all three at their defaults. See the follow-up recommendation at the end of this document.
How contact routing works
On a vehicle detail page (what visitors see)
When a vehicle page is displayed, the plugin resolves the contact card in this order:
- If the vehicle is set to No visible contact, the card is hidden.
- If the vehicle is assigned to a specific member (manually or automatically) and that member is active, that member is shown.
- Otherwise, the default contact for the vehicle's branch (location) is used, if it is active.
- Otherwise, the global default member is used, if it is active.
- Otherwise, the general dealership contact is shown, if any dealership details are configured (or the fallback behavior is set to use the dealership contact).
- If the fallback behavior is Hide, no card is shown.
- If none of the above applies, the page keeps its existing seller card from the WordPress vehicle author profile.
Inactive members are skipped at every step, so they never appear to visitors. The contact card can show the name, position, photo, a clickable phone and email, mobile, WhatsApp and social links.
When a contact form is submitted
Inquiries are routed to the first deliverable address found, in this order:
- The global Recipient Email override configured on the Leads screen, if set.
- The email of the resolved CMH Team contact for the vehicle (only active members with a valid email).
- The vehicle's legacy seller profile email, then the vehicle author's account email.
- The WordPress administration email, as the final fallback.
If Send a copy to the general dealership email is enabled in Rules, the general dealership email also receives a copy. See Lead Management Workflow for the full lead routing chain.
Automatic assignment for newly imported vehicles
After each import or re-import, the plugin assigns a contact to new vehicles:
- If the vehicle already has a manual choice and Never overwrite manual car assignments is on, the existing choice is kept.
- If Automatically assign newly imported cars by location is off, nothing is assigned.
- Otherwise the plugin uses the default contact for the vehicle's branch.
- If the branch has no default and Use the global fallback is on, the global default member is used.
A vehicle with no matching contact stays unassigned and is then resolved automatically at display time using the rules above (location default → global default → dealership fallback → hide / legacy seller card).
Recommended setup workflow
- Create your team members under New (Members → New member). At minimum, give each a full name and email.
- Set a default contact per branch under Locations, so each branch routes to the right salesperson.
- Configure the fallback under Standards: pick a global default member and/or fill in the general dealership contact, and choose the fallback behavior.
- Review the rules under Rules. The defaults suit most dealerships; enable Send a copy to the general dealership email if your back office wants every inquiry.
- Override individual vehicles under Assignment only where the automatic result is not what you want (for example a special vehicle handled by one person, or a vehicle that should show no contact).
- Check the Overview to confirm the fallback status is Configured and that no vehicles are left without a resolvable contact.
Operational notes
- Team members never require WordPress logins; they exist only inside the plugin.
- A member set to Inactive is hidden everywhere on the frontend and is never used as a contact, but is preserved for later reactivation.
- The Assigned cars counts and the Overview KPIs reflect vehicles with a stored contact; vehicles shown as Unassigned still resolve a contact automatically at display time when a location default, global default or dealership contact exists.
- Branch matching relies on the AutoScout24 seller ID on each vehicle and the seller IDs configured on each location. Keep seller IDs consistent between Locations and your AutoScout24 account. See Locations Reference.
- CMH Team is a separate top-level menu from CMH Center and CMH Cars; the three stay adjacent in the sidebar. See Admin Menu Overview.
Troubleshooting
- No contact card appears on a vehicle. Check the vehicle's mode under Assignment: it may be set to No visible contact. Also confirm the assigned member is Active, and that a location default, global default or general dealership contact exists. If the fallback behavior is Hide, no card is shown when nothing resolves.
- The wrong person shows on a vehicle. The vehicle may have an old manual assignment. Open Assignment, filter to the vehicle, and set it to Automatic (reset) to let routing pick the branch default again, or assign the correct member directly.
- A new imported vehicle has no contact. Confirm Automatically assign newly imported cars by location is on under Rules, that the vehicle's branch has a default contact under Locations, and that the vehicle's seller ID matches a location. With Use the global fallback on, set a Global default team member under Standards as a safety net.
- Inquiries are not reaching the salesperson. Confirm the member is Active and has a valid Email, and that no global Recipient Email override on the Leads screen is intercepting all inquiries before the team contact is used. Verify WordPress email delivery (an SMTP plugin may be required).
- An inactive member should not appear, and does not. Members set to Inactive are always hidden from visitors and are never used as a contact. To stop showing someone, set their status to Inactive (or delete them); to show them again, set the status back to Active.
- The Locations screen says no locations are configured. Add at least one location with a seller ID under CMH Center → Locations first. See Locations Reference.
- A deleted member left a gap. Deleting a member automatically clears them from location defaults and the global default. Re-pick a replacement contact under Locations and Standards.
Follow-up recommendation (Rules switches)
This documentation describes the current runtime behavior, not the intended end state of every Rules switch. While auditing the documentation, three switches on the Rules screen were found not to fully control runtime behavior in every context:
- Send the contact form to the resolved team member — inquiries are always routed to the resolved contact in the current version; turning this switch off does not stop that routing.
- Hide inactive team members from the frontend — inactive members are always hidden in the current version; turning this switch off does not reveal them.
- Use the global fallback when no location contact exists — this only affects the import-time automatic assignment step. On the vehicle page, the global default is always used as a final fallback regardless of this switch.
The documentation above is written to match this current behavior so it does not overstate what toggling these switches does. Aligning the runtime behavior with these switches (so each one fully takes effect, or removing switches that are not wired up) is a product/engineering follow-up and is intentionally out of scope for this documentation pass. It should be tracked as a separate issue against the plugin code.