Skip to content

Finding your customers

Your customers live in your own systems, not in oHallo. Before the assistant can recognise a returning caller, verify someone’s identity, or show a customer their own data, it looks the person up in your system. This page is where you tell it how.

This runs first, on every message and every call. Until it is set up, two things do not work:

  • Sending a verification link, because the link goes to the address your own system holds for the customer.
  • Recognising a returning caller, so every conversation starts cold.

Open Settings, then Customer records. The page lists your MCP connections, each with a summary of how many ways it has to find a customer and how many of its tools are set up, with the tools still blocked on a line of their own. Open the connection that holds your customers.

The connection’s page has three sections, each with one line under its heading that says what it does:

  • Finding customers: how oHallo finds the customer who writes or calls, in that system.
  • Verifying with MitID: how oHallo matches the person MitID verifies to a customer in that system, on that connection’s own tools. The section shows while National eID is switched on for your workspace and it has a National eID connection.
  • Customer data: which data each tool returns, so a customer sees only their own.

The names follow your National eID connections. With a MitID connection the section reads Verifying with MitID and its rows name the CPR number, the MitID UUID and the CVR number. With connections for more than one scheme the section reads National eID and its rows use general names, such as The customer’s national identity number.

The page’s header links to Verification: where a channel reads Blocked on any of its lines on the Verification page’s Channels tab, the link counts those channels, for example Verification · 2 channels blocked, and the count follows each change you save here.

While the page is still reading your setup, a section says Loading and offers nothing to change until it is read.

Two rows:

  • By email address, for email conversations and chat visitors who give an address.
  • By phone number, for calls and WhatsApp.

Click Set up on a row, or Change if it is already set up. The panel, Finding customers by email address or Finding customers by phone number, asks for four things on one tool:

  1. Tool in your system: the tool from your MCP hub that answers “who is this person”.
  2. Input that receives the email address (or the phone number): the tool input oHallo sends the address or number to. A tool that lists its inputs gives you a dropdown; for one that does not, type the input’s name exactly.
  3. Field with your customer number: the field in what the tool returns that holds your own customer number, the id your systems use. oHallo stores that number and nothing else from the lookup. A tool has one such field, which every row set up on that tool reads, and the panel says so where the tool already holds another row.
  4. Field with the email address (or the phone number): the field in what the tool returns that holds the address or number itself. It reads “(optional)” while no method you have on uses it. National eID, the email link and the email sender address use the customer a lookup by email address finds only when this field holds the address it looked up. On a call, the MitID app approval goes out, and Caller ID matches the caller to a customer, only when this field holds the calling number.

Save stores all four together.

On Set up, oHallo fills in what it can from the names your tool declares: the one tool whose inputs take an email address or a phone number, that tool’s input, and the fields named like a customer number (such as customer_id or client_number, never a bare id) and like an email address or a phone number. It fills in a field only where exactly one name matches, and never names the same field as both your customer number and the address or number. The panel then opens with “oHallo chose these fields by their names. Check each one before you save.” No tool is called to do this: oHallo reads only the names your tool declares.

A row that is set up shows its tool and the outcome of the last real lookup, for example find_customer · Working · 2 h ago, and under it the input and fields it uses: “input email · customer number customer_id · email address contact_email”. When the field with the email address or the phone number is missing and a method you have switched on needs it, the row says so, naming only those methods, for example “Choose the field with the email address. National eID and the email link use this lookup only with it.”

Each connection’s page lists that connection’s own tools. A row set up only on another connection reads Not set up here, and Set up gives this connection a row of its own.

Under By phone number, a tool that holds a phone number field without being a lookup by phone number says so, for example “get_order holds a phone number field, customer.phone, that oHallo does not use.”, with Remove, which takes that field off the tool.

This section says what oHallo compares a MitID verification with in your system. Three rows:

  • The customer’s CPR number. On a call, MitID uses this number to send the approval to the customer’s MitID app.
  • The customer’s MitID UUID, the identifier MitID gives each person. Use it where your own website signs customers in with MitID and keeps that UUID.
  • Only the company’s CVR number, for a system that knows companies, not people. Only an employee who signs in with MitID Erhverv is verified. The row shows when a connection accepts MitID Erhverv, or when it is already set up.

The panel of The customer’s CPR number and The customer’s MitID UUID asks for:

  • Field with the CPR number (or Field with the MitID UUID). Under the CPR number: “oHallo reads it only when a check needs it, and does not keep it.”
  • Field with your customer number.
  • Field with your account number for the company, optional. Fill it in if your system groups customers under companies, one value per customer. When a customer verifies through the sign-in link, oHallo ties them to their customer number and, when the field names one, to that company account. A MitID approval on a call ties them to their customer number alone.
  • Field with the company’s CVR number, optional, shown when a connection accepts MitID Erhverv or a value is set. A MitID Erhverv login is checked against it, and when the numbers match the employee is tied to the company account, never to a customer’s own data.

The panel of Only the company’s CVR number asks for Field with your customer number, Field with your account number for the company and Field with the company’s CVR number, all three. In a system that holds companies, your customer number is the number it gives the company. It saves on a tool that holds neither the CPR number nor the MitID UUID. Only a MitID Erhverv login verifies through it, and the employee reaches the data of the company whose CVR number your system holds, on tools set to A customer’s company.

Each row lists one line for every tool on this connection it is set up on: a tool that is a lookup under Finding customers first, then the oldest first. A line names the tool and, under it, each field the tool holds: “MitID UUID mitid_uuid · customer number customer_id · company account account_number · CVR number company_cvr”. Change on a line opens that tool, and Save changes that tool only. Add a tool, under the lines, sets the row up on one more tool. It offers tools classified read or read (PII) that are not set to General information, for anyone. When exactly one tool under Finding customers does not hold the row yet, Set up and Add a tool open on that tool, with the customer number it already holds filled in; you can still choose another.

Remove, in a line’s panel, takes the row off that tool only. Removing the CPR number or the MitID UUID from a tool that keeps no other identifier also takes its company fields off, unless both company fields stay. A tool left with both company fields and no identifier is listed under Only the company’s CVR number.

National eID reads these fields from the tool behind By phone number on a call, which finds the customer who holds the calling number, and from the tool behind By email address by email, which finds the customer who holds the address they write from. It uses that customer only when the field with the phone number or the email address on the same tool holds the number or address it looked up. An email address matches only when it is identical apart from capital or small letters A to Z, so a capital Æ, Ø or Å where the customer writes a small one is another address. A phone number matches in any written form: spacing, punctuation and the international or national form. One tool behind both rows, with the CPR number or the MitID UUID on the same tool, serves calls and email alike. In live chat National eID reads them from the tool the request is refused on, or else, for a tool marked A customer or A customer’s company, from the one tool on that connection holding them that takes the request’s input, such as the order number the request names. National eID reads these rows on the connection that holds the tool a request needs, so each connection with a request that only National eID verifies on a call, by email or in live chat needs rows of its own.

When a lookup under Finding customers holds neither identifier while another tool on the connection does, the section says so, for example “find_customer has no CPR number or MitID UUID set up, so MitID cannot verify the customers it finds.” Set the identifier up on that tool too.

Every answer from a tool on this connection reaches the assistant with the fields you choose for the CPR number and the MitID UUID withheld, wherever a field of that name appears. Choose a field with a name of its own for each: one that differs from your customer number field, and more specific than a common name such as id or number. When a choice shares its name with one of those, the panel asks you to choose another field.

While National eID is switched off, or your workspace has no National eID connection, the section is hidden. The fields set up in it stay as they are, and show again once National eID is switched on with a connection.

The third section lists the connection’s classified tools that are assigned to an agent, and says for each one whose data it returns. Tools assigned to no agent sit behind a disclosure with a count, and a tool still to be classified is classified in the MCP hub first. Each tool is set up on its own row, and the assistant calls a tool once it is set up. Click Set up or Change on a tool to choose:

  • General information, for anyone, for a tool classified read that gives every customer the same: a catalogue, opening hours, delivery pricing. The assistant calls such a tool for anyone in a conversation. The choice appears on tools classified read, apart from the tools set up above under Finding customers and Verifying with MitID.
  • What this conversation created, for a tool that creates something, such as an offer, or acts on what the conversation created. The customer reaches only what their own conversation made, in that conversation and for at most 12 hours, or the workspace’s identified reauthentication window if that is shorter. You tick the inputs that say what is asked for, and for a tool that creates, choose the field that holds what it creates.
  • A customer, for a tool that returns a customer’s own data: their orders, invoices, deliveries. A verified customer reaches only the data your system says is theirs, whatever order number, search or filter the request names.
  • A customer’s company, for a tool that returns the data of a business customer: every order the company placed, colleagues’ orders included. A verified customer reaches only the data of the company named in the field with your account number for the company, and never another company’s.

A tool that changes something is set to What this conversation created when it creates something or acts on what this conversation created, and as A customer or A customer’s company when it takes the customer’s own number, or their company’s, in an input you choose. The assistant’s calls to any other tool that changes something are refused, for example a tool that changes an existing order by its order number alone. Give such a tool an input that receives the customer’s number, and declare it as A customer.

When the assistant’s call to a tool without a declaration is refused, the assistant tells the customer the request cannot be handled that way and offers a colleague. A tool chosen above to find a customer finds and verifies customers with or without a declaration here; the assistant calls it once it has one.

Each row shows the tool and its choice with its state:

What you seeWhat it means
Not set up, tagged BlockedThe assistant cannot use this tool until you choose what it returns.
Not checked yetSet up, and no live call has confirmed it yet. A create cannot be tried out in advance, so the first real call proves it.
WorkingThe last call returned data as set up. The row shows when.

The fields a choice names are in its panel, not on the row.

When a customer asks about something a tool returns, oHallo can send the email link to the address in that tool’s answer, so only the person it belongs to can open it. Under a tool’s row, Email link goes to names the field the link goes to, and the customer number beside it where one is chosen, with Change. An email link is always on screen: under its tool’s row, also for a tool assigned to no agent, or at the end of the section for a tool the section does not list. Add an email link, at the end of the section, sets it up on a tool: it offers the tools set to A customer or A customer’s company that are classified read or read (PII), are not a lookup by email address and have no email link yet. Its panel asks for Field with the email address and, optionally, Field with your customer number: with it, a chat customer who confirms by email sees only this customer’s data. Remove in the panel takes the email link off the tool.

A lookup by email address carries its own email field under Finding customers, so its row here shows no email link.

For both, you name:

  1. Field that says whose data it is: the field in what the tool returns that holds your customer number, or for A customer’s company your account number for the company. For a tool that returns a list, the field inside the list.
  2. The input that receives the number, chosen from the inputs the tool takes. oHallo fills it with the verified customer’s own customer number, or their company’s account number, on every call, so your system answers about that customer only. A tool that changes something and a tool that returns a list need one, and a tool declared without one stays classified read or read (PII) until it has one. A tool that looks up one item by its own number, such as an order number, can do without, and ticks that input under Inputs that say what is asked for. oHallo calls the tool only while the input chosen here is one the tool takes, so when your system renames it, choose it again here.
  3. Fields that name someone else, where what the tool returns names someone other than the customer in a field such as customer_id, account_id, client_id, owner_id or buyer_id. On A customer’s company, tick the field that names which customer each item belongs to: the item is the company’s, and it names its customer. Data that names someone else in such a field, and is not ticked, is withheld.
  4. Inputs that say what is asked for, on a tool that reads or changes one item: the inputs that name it, such as order_id. The customer sees that value as the request when they are asked to verify. A tool without an input that receives the number ticks at least one. A tool that returns a list ticks none.

A tool that lists a customer’s data takes the customer’s number, or at the company level the company’s account number, in an input you choose, and returns a list in which every item names that number at the field you choose. oHallo fills that input with the number of the customer who signed in, or of their company, on every call. The assistant is not shown that input. When there is no data, the tool answers with an empty list, and the assistant says there is none. An answer that names no customer, such as an error saying nothing was found, is withheld from the assistant.

oHallo checks every record of every answer, lists and error messages included. A record that belongs to the verified customer, or to their company on A customer’s company, reaches the assistant. Anything else is withheld, and the assistant is told only that the result cannot be shown in the conversation. The same message answers a record of another customer and a record that does not exist, so nothing is learned about other customers. When a withheld record belonged to someone else, the conversation shows your team an item saying so. A record that names no owner is withheld too, so a tool your system answers in free text belongs under General information, for anyone only when it gives every customer the same.

A customer who has not verified is asked to verify before such a tool is called, and the verification ties them to their own data in your system. National eID writes that tie wherever it runs. On a tool declared A customer that reads and is set to identified on the MCP hub page, a request to see is also tied where National eID does not start: by the email link, sent to the address your system holds, once the customer presses its button (on email, only on email channels set up to receive mail directly); on an email channel set up to receive mail directly whose Email sender address is set to Identifies the customer, by a message from the address your system holds for the customer, at once; and on a voice channel whose Caller ID is set to Identifies the customer, by a call from the number your system holds for the customer, at once. A tool that changes something, and a tool set to high-assurance, is verified with National eID alone.

Both choices need a lookup on the connection that holds your customer number beside the CPR number or the MitID UUID, on a tool classified read or read (PII), and A customer’s company also needs the field with your account number for the company on such a lookup. A customer’s company is also met by Only the company’s CVR number on such a tool, through which MitID Erhverv ties an employee to that company. A customer set to identified on a tool that reads is also met by By email address with the field that holds the email address on one such tool, which email reads, or by an email link with your customer number on the tool itself, or on the one tool in that system that takes the same input, which live chat reads, or by By phone number with the field that holds the phone number on one such tool, which calls read. The panel says whether the connection has them, and a declaration without them is refused with a line naming what to set up. When the connection lacks them, each row the panel’s line names opens that row. The tool’s Reachable by cell on the MCP hub page lists the methods that reach it on your channels: National eID, and for a tool set to identified that reads, Email link, Email sender address and Caller ID where they tie the customer and National eID does not start. A tool declared A customer’s company reads high-assurance in its Assurance cell, with no list to change it.

A declaration is required before a tool is lowered to anonymous from a higher default. How it works with risk and assurance is on Assurance levels.

Each row under Finding customers shows its current state in plain language. When something is wrong, it says what, in one line:

What you seeWhat it means
WorkingThe last lookup found the customer and read your customer number.
Not set upYou have not set up this row yet.
This connection no longer offers this toolThe tool you picked is gone from that connection. On a line under Verifying with MitID or an email link, the line’s button reads Remove: its panel shows what the tool held, and Remove takes it off.
The tool has no input by that nameChoose the tool input that receives the email address or the phone number.
The tool returned nothing in that fieldThe tool replied, and nothing sat in the field you chose.
The customer number field holds an identity number, so oHallo does not keep itThe value in the field you chose cannot be kept as a customer number, for example because it is a personal identity number or repeats the CPR number or MitID UUID from the same answer. The customer is still recognised, with no customer number stored. Choose the field that holds your own customer number.
Blocked. On the MCP hub page, set this tool to readThe tool’s risk class keeps oHallo from reading it.
Your system returned an error or timed outThe tool errored or did not answer in time.
The customer found has another phone number than the one looked up. Check the phone number field under “By phone number”, and that the tool finds only that numberNational eID looked up the number a caller is calling from, and the customer your tool returned holds another number in the field with the phone number, so no app approval went to them. Choose the field that holds the number your tool finds customers by, and have the tool return only the customers who hold that exact number.
The customer found has another email address than the one looked up. Check the email address field under “By email address”, and that the tool finds only that addressNational eID looked up the address a customer writes from, and the customer your tool returned holds another address in the field with the email address, so the verification left that customer aside. Choose the field that holds the address your tool finds customers by, and have the tool return only the customers who hold that exact address.
The field with your account number for the company held no single account number, so the customer was matched to no companyThe answer named more than one company account, an empty value, or a value that matches an identity number. The customer is verified for their own data and tied to no company. It shows on the tool’s line under Verifying with MitID, whose Change holds the field; the rows under Finding customers still read Working, because the lookup found the customer. Choose the field that holds your own account number for the company.
Working. The last person looked up was not foundNormal. Your system answered, and this person is not one of your customers.

The last one is not a fault. It is what a real lookup says about someone who is not your customer.

A refused save shows the reason in the panel, under the field it concerns where there is one.

Only your customer number, against the conversation. The data the tool returns is read live each time it is needed; oHallo does not copy your customer database. What lands in oHallo is the link (this channel identity is this customer of yours), not the customer’s data.