Database CRM templates
When customer data lives in your own database — a bespoke line-of-business app, an ERP, a data warehouse — the database templates give you CRM-grade caller identification with a SQL query instead of a vendor API. Templates exist for PostgreSQL, MySQL, SQL Server and MongoDB.
Configuration
Pick the matching template on Admin → Integrations → CRM and fill in the connection: host, port, database, username and password (encrypted at rest, like all integration secrets). Then provide the lookup query that turns a phone number into a contact, using placeholders for the searched values:
SELECT id, first_name, last_name, company, phone, email
FROM customers
WHERE phone LIKE '%[Number]%'
[Number] (and the other placeholders the template documents) are bound as query parameters
— the engine rewrites placeholder patterns into parameterized SQL, so a caller's number is data,
never SQL. Statements outside a safe read shape are refused.
Map the query's result columns to contact fields (name, company, email…) in the template's response section, and use the test panel with a real number to see exactly what comes back.
What you get
Caller-ID lookup with the same cache-first pipeline as the API CRMs: repeat callers label instantly from cache, new numbers query your database in the background. Phonebook sync works when you provide a list-contacts query. Journaling is possible if you point the template's write scenario at a suitable table, but most database integrations run lookup-only.
Practical notes
- Reachability — the database must accept connections from the Exovo host; a read-only account scoped to the contacts view is the right-sized credential.
- Number formats — match on the tail of the number (
LIKE '%[Number]%'on the last digits, or normalize in a view) so+15551230123,15551230123and555-123-0123all hit. - Views are your friend — point the query at a view that joins/formats exactly what phones should display, and the integration never needs touching when the schema evolves.