Call transcription: how to get calls into your CRM safely
Call transcription turns a phone call into a summary and a next step in your CRM. This guide covers the architecture, field mapping, the review queue, the GDPR and testing.
How E.164 works, how to convert a national number to it, and how to keep the numbers in your CRM and phone system in one consistent form.
A customer rings from abroad and the callback fails. In the CRM, one record holds the same mobile with a leading zero, another holds it with spaces, and a third has a country code that someone added in a hurry. The cloud PBX dials one value while the CRM connector recognises another, and nobody can see where the chain broke.
Getting the international phone number format right matters far more than how a number looks on screen. If you're an IT integrator, a telecom reseller or an IT team that runs several sites, it affects SIP routing, click-to-call, caller identification, sync quality and the protection of call metadata. The E.164 standard gives every system a common base to work from. Number portability is a separate matter, and each country's regulator sets its rules.
E.164 is the ITU-T recommendation that defines the international public telephone numbering plan. A number in E.164 form starts with a plus sign. The country code comes next, then the national significant number, with no spaces or punctuation. The number holds at most 15 digits, and that count includes the country code. The plus sign isn't counted, and an exit prefix such as 00 isn't part of the number at all. The full text is in ITU-T Recommendation E.164.
A few examples show how national numbers map onto it:
| Country | National form | E.164 |
|---|---|---|
| United Kingdom, mobile | 07700 900123 | +447700900123 |
| France, mobile | 06 12 34 56 78 | +33612345678 |
| Germany, Berlin landline | 030 1234567 | +49301234567 |
| Italy, Rome landline | 06 1234 5678 | +390612345678 |
The UK, French and German numbers lose their leading 0 once the country code goes in front. Italy behaves differently. Its landline numbers keep the 0 after +39, so a rule that strips every first zero will corrupt them.
The canonical value stays compact, as in +447700900123. Your interface can still show +44 7700 900123 or a local form with spaces, because that copy exists for the person reading it. With one compact key underneath, the CRM, the PBX and your reporting tools all match on the same string.
The number you show a person and the number you hand a system belong in two different fields.
Click-to-call depends on this split. The link a user sees can carry any local formatting. What reaches the PBX has to be the normalised value, and it has to be normalised before dialling starts. Our guide to how click to call works for business covers the rest of that flow.

Establish the country. The pipeline needs to know whether a value is a UK number, a number from another country or one that's already international. A leading + means the country code is already there, so don't treat it as a domestic number.
Add or check the country code. A UK mobile typed as 07700 900123 gets +44. A value that already starts with +44 mustn't get a second prefix.
Drop the trunk prefix where the country uses one. In the UK and France, the leading 0 belongs only to national dialling. Keep a per-country rule table, because Italian landlines keep theirs.
Strip the separators. Remove spaces, hyphens, dots and brackets from the stored value. Generate a readable version separately for display.
Store the result as a text string. A numeric database field drops the plus sign and any leading zero, and some spreadsheet tools turn long numbers into scientific notation on import. A string column also keeps zeros that are significant in other national plans.

Cleaning an existing base starts with an inventory of what's in it. A CRM usually mixes mobiles, landlines, foreign lines, internal extensions and free-text notes such as "ask for reception". Run one blanket rule over all of that and you'll turn bad data into data that only looks valid.
The safest design keeps three values side by side. The received value is what the user or import supplied. The interpreted value records which country and number type the pipeline decided on. The canonical value is the E.164 string that other systems use.
Keep the original entry untouched. You'll need it for audits, manual fixes and for explaining a failure months later.
Work out the country from a dedicated field, from an international prefix or from the form's context. When none of those is reliable, send the value to review.
Strip separators from a working copy, and keep the + only where it really introduces a country code.
Apply the national rule for that country, which may mean adding the code and dropping the trunk 0. Skip this step for values that are already international.
Validate the structure: country code, E.164 length, compact form and the expected number type.
Deduplicate after normalisation. Two records that differed on input can become identical after conversion, so compare canonical values.
A regular expression can check that a number has the right shape. It can't tell you whether the line is assigned, who holds it or whether anyone will answer.
Give each value a status your applications can act on, for example valid, needs review, incomplete, missing country or wrong type. The CRM then blocks dialling for anything below valid.
Billing country is a poor guess for a contact's country. A group may run its French contacts from a service centre in another country, and a public web form takes entries from everywhere. Keep the country field, the canonical number and the collection source as separate fields.
Log the rule applied, the date of the change and the system that made it. That record is what an integrator needs when someone asks why two contacts merged, why a call never went out or why a sync rewrote a number.

The CRM looks up records, applies sales rules and keeps the history. The PBX dials, receives and routes calls, and it presents caller ID. Each system uses the number for a different job, so both need the same canonical form.
| Component | What it needs | What breaks with mixed formats |
|---|---|---|
| CRM | Match a record and avoid duplicates | Unknown caller or duplicate contact |
| SIP trunk | A routable destination | Failed dialling or wrong route |
| REST API | One value that every app agrees on | Rejected payloads or failed matching |
| CTI connector | Start a call and pop the right record | The screen shows the wrong contact |
| Central directory | Feed several tools | Each app drifts from the others |
Each screen can still format numbers its own way. What matters is that every exchange between systems applies the same rule first. Contact sync also needs a declared source of truth. When both the CRM and the PBX can edit a number, a user can reintroduce a local form after the pipeline has run, and conflicts need a written procedure.
Voxbi is a cloud PBX built and hosted in the European Union. On Voxbi One, the Plus, Plus AI and Channel plans include the Odoo and Microsoft 365 integrations and API access. On Voxbi Managed, API access starts with the Professional plan. Odoo is an add-on there, priced at €29.50 a month per phone system. Your project's contractual and technical scope decides what applies to you.
Calls, recordings, logs, presence data and call metadata can all reveal a customer relationship. If the data is hosted in the European Union, you have fewer international transfers to assess under the GDPR. Your assessment still has to cover subprocessors, administrator access, encryption, retention and deletion. Retention periods get their own treatment in our guide to call log retention under the GDPR.
A number can be in perfect E.164 form and still be impossible to move to a given carrier or territory. The format identifies the line. Portability is the right to keep that line when you change operator, and each national regulator sets the conditions and lead times. The two questions meet during a migration, and you'll need to settle each one on its own terms.
These are the mistakes that stall migrations most often:
Treating a country code as proof that a number can move between carriers or territories.
Checking only the syntax, when a well-formed number can be inactive, wrongly assigned or outside the porting scope you asked for.
Starting without a map of every number by territory, current carrier, service type and site.
Changing the stored format mid-port, which breaks the mapping between the old system and the new one.
Forgetting lead times and document checks, which vary by country and number type.
Run a portability audit before the technical cutover. It checks the paperwork, confirms that the account holder matches the request and lists any territorial restrictions, and it should include a continuity plan. Our guide on how to port a business phone number without losing calls walks through the sequence. On Voxbi One, inbound porting is available from Starter up. New numbers cost €2.00 a month each in Germany, France and Switzerland.
The number shown to the person you call raises a third question. The line that places the call, the number displayed and the carrier's presentation rules are separate settings. See how to choose the outbound caller ID your team presents.
A directory that's tidy on migration day degrades within months if every form, import, connector and admin screen runs its own logic. Write the rule into governance and it lasts. Name one source of truth and document the conversion rules. Every system that sends or receives a number then has to use the canonical format. Sales staff keep typing numbers the easy way, and the system converts them before storage or transmission. Integrators and resellers belong in this too, through deployment templates, acceptance tests and support procedures.
A working control framework covers five points:
Forms ask for the country, so local and international input can't be confused.
Users can correct context fields, while the value used for dialling and APIs follows a controlled rule.
A regular review covers rejects, duplicates, incomplete values and CRM/PBX mismatches.
Only the roles that need it can edit numbers, routing rules or call data.
Each migration documents the expected format, the source of truth, territorial exceptions and error handling.
The GDPR requires security proportionate to the risk. Data that stays in the European Union makes part of that work simpler. The controller still decides the purposes, access, retention, subprocessors and transfers.
The result is a directory that feeds the CRM, the cloud PBX and every dialling tool without reinterpretation. Incidents get easier to diagnose, migrations repeat cleanly, and a reseller can explain why a number that's technically valid still can't be ported. Pick your source of truth, write down the conversion table for each country you serve, and run your next import through it before anything dials.
Start a free trial, or work with a certified Voxbi partner.