Aller au contenu principal

Recherche Globale

La fonctionnalité de Recherche Globale fournit une interface de recherche unifiée pour trouver rapidement des clients, des contacts, des services, des inventaires et des sites dans l'ensemble de la base de données OmniCRM.

Voir aussi : Clients , Inventaire , Gestion des Services .

Accéder à la Recherche Globale

De n'importe où dans le CRM :

Cliquez sur l'icône de recherche dans la barre de navigation supérieure ou naviguez vers :

La page de recherche globale apparaît avec une grande zone de recherche et des options de filtre.

Comment Ça Fonctionne

La recherche globale effectue une recherche inter-entités à travers cinq types de données :

Ce qui est recherché :

  1. Clients - Nom du client
  2. Contacts - Prénom, nom de famille, adresse e-mail, numéro de téléphone
  3. Sites - Nom du site
  4. Inventaire - Numéros de série, ICCIDs, identifiants (itemtext1, itemtext2)
  5. Services - Nom du service, UUID du service

Comportement de Recherche :

  • Correspondance partielle - Recherche des termes contenant votre requête (par exemple, "Smith" correspond à "John Smith" et "Smithson")
  • Insensible à la casse - "john" correspond à "John", "JOHN", et "john"
  • Multiples entités - Une seule recherche renvoie des résultats de tous les types d'entités
  • Résultats paginés - Affiche 10 résultats par page par défaut

Effectuer une Recherche

Recherche de Base

  1. Entrez votre terme de recherche dans la zone de recherche
  2. Cliquez sur "Rechercher" ou appuyez sur Entrée

Résultats de la Recherche Globale{.align-center width="800px"}

Exemples de termes de recherche :

  • Nom du client : "Acme Corp"
  • Numéro de téléphone : "+1234567890" ou "1234567890"
  • E-mail : "john@example.com" ou "john"
  • Numéro de série : "ICCID8944" ou juste "8944"
  • UUID de service : "123e4567-e89b"

Inclure les Comptes Clôturés

Par défaut, la recherche ne renvoie que des résultats des comptes clients Ouverts.

Pour rechercher dans tous les comptes, y compris ceux clôturés :

  1. Cochez la case "Inclure les Comptes Clôturés"
  2. Cliquez à nouveau sur "Rechercher"

Cela recherchera :

  • Clients avec customer_status = "Closed"
  • Contacts, services, sites et inventaire liés à des clients clôturés

Cas d'utilisation pour la recherche de comptes clôturés :

  • Trouver des dossiers clients historiques
  • Localiser des équipements provenant de services désactivés
  • Rechercher d'anciens numéros de téléphone ou services
  • Récupérer des données clients pour réactivation

Comprendre les Résultats de Recherche

Format d'Affichage des Résultats

Les résultats sont affichés dans une liste déroulante montrant :

John Smith ID Client : 123 Type : client

John Smith (Contact) ID Client : 123 Type : contact

Mobile - +44 7700 900123 ID Client : 123 Type : service

Chaque résultat montre :

  • Nom/Titre - L'identifiant principal (lien cliquable)
  • ID Client - Le client parent auquel cela appartient
  • Type - Le type d'entité (client, contact, site, inventaire, service)

Types de Résultats Expliqués

Résultats Clients :

Cliquer ouvre la page de vue d'ensemble du client montrant tous les détails, services, contacts, etc.

Résultats Contacts :

Cliquer ouvre la page du client avec l'onglet Contacts actif, faisant défiler vers le contact spécifique.

Résultats Sites :

Cliquer ouvre la page du client avec l'onglet Sites actif.

Résultats Inventaire :

Cliquer ouvre la page du client avec l'onglet Inventaire actif. Si l'inventaire n'est pas attribué (pas de customer_id), il se lie à la liste principale de l'inventaire.

Résultats Services :

Cliquer ouvre la page du client avec l'onglet Services actif, mettant en évidence le service spécifique.

Tous les résultats de recherche sont des liens cliquables qui naviguent directement vers la page pertinente :

Modèle de Lien :

  • /customers/{customer_id} - Dossiers clients
  • /customers/{customer_id}#4 - Contacts (onglet 4)
  • /customers/{customer_id}#2 - Sites (onglet 2)
  • /customers/{customer_id}#8 - Inventaire (onglet 8)
  • /customers/{customer_id}#3 - Services (onglet 3)
  • /inventory-items-list - Inventaire non attribué

Le fragment de hachage (#) sélectionne automatiquement l'onglet correct lorsque la page client se charge.

Pagination

Les résultats sont paginés avec 10 éléments par page :

Affichage des résultats 11-20 sur 47

Naviguez à travers les pages en utilisant :

  • Boutons Précédent/Suivant
  • Numéros de page - Cliquez sur une page spécifique
  • Clavier - Flèches gauche/droite (si implémenté)

Scénarios de Recherche Courants

Scénario 1 : Trouver un Client par Téléphone

L'utilisateur appelle, fournit un numéro de téléphone.

Résultats : • John Smith (Contact) - ID Client : 123 • Mobile - 555-0123 (Service) - ID Client : 123

Cliquez sur l'un ou l'autre résultat pour accéder au compte client.

Scénario 2 : Localiser une Carte SIM

Le technicien doit trouver quel client a une SIM spécifique.

Résultats : • 8944538000000001234 (Inventaire) - ID Client : 456

Cliquez sur le résultat pour voir l'attribution de la SIM, les détails du client.

Scénario 3 : Trouver un Client Inactif

Besoin de localiser un client qui a clôturé son compte il y a 6 mois.

☑ Inclure les Comptes Clôturés

Résultats : • Acme Corporation (client) - ID Client : 789

Scénario 4 : Recherche par E-mail

Le client envoie un e-mail au support, le personnel doit trouver son compte.

Résultats : • John Smith (Contact) - ID Client : 123

Scénario 5 : Trouver un Service par UUID

Le journal de provisionnement montre l'UUID du service, besoin de trouver quel client.

Résultats : • Mobile - +44 7700 900123 (Service) - ID Client : 456

Conseils de Recherche

Pour de Meilleurs Résultats :

  • Utilisez des termes partiels - "Smith" est mieux que "John Smith" pour des résultats plus larges
  • Essayez des variations - Si "John" ne fonctionne pas, essayez le téléphone ou l'e-mail
  • Incluez les comptes clôturés - Lors de la recherche de données historiques
  • Soyez spécifique pour l'équipement - Utilisez des numéros de série complets pour l'inventaire
  • Recherchez l'UUID de service - Lorsque d'autres identifiants ne sont pas connus

Ce qui est recherché (par Entité) :

Clients :

  • Nom du client uniquement (pas d'adresse, de notes ou d'autres champs)

Contacts :

  • Prénom
  • Nom de famille
  • Adresse e-mail
  • Numéro de téléphone

Sites :

  • Nom du site uniquement

Inventaire :

  • itemtext1 (généralement ICCID, numéro de série, adresse MAC)
  • itemtext2 (généralement IMSI, identifiant secondaire)
  • Remarque : Ne recherche pas itemtext3-20 ou notes d'inventaire

Services :

  • Nom du service
  • UUID du service

Ce qui n'est pas recherché :

  • Adresses des clients
  • Notes des clients
  • Descriptions des transactions
  • Détails des factures
  • Journaux de provisionnement
  • Entrées de journal d'activité
  • Notes d'inventaire (au-delà d'itemtext1/2)

Référence API

Point de Terminaison de Recherche Globale

GET /utilities/search_everything?search=Smith&page=1&per_page=10&search_closed_records=false
Authorization: Bearer <token>

Paramètres de Requête :

  • search (obligatoire) - Le terme de recherche
  • page (optionnel) - Numéro de page (par défaut : 1)
  • per_page (optionnel) - Résultats par page (par défaut : 10)
  • search_closed_records (optionnel) - Inclure les comptes clôturés (par défaut : false)

Réponse :

{
"data": [
{
"id": 123,
"name": "John Smith",
"customer_id": 123,
"type": "customer"
},
{
"id": 456,
"name": "John Smith",
"customer_id": 123,
"type": "contact"
},
{
"id": 789,
"name": "Mobile - +44 7700 900123",
"customer_id": 123,
"type": "service"
}
],
"pagination": {
"current_page": 1,
"per_page": 10,
"total_pages": 5,
"total_items": 47
}
}

Logique de Recherche (Backend) :

Le backend effectue une UNION SQL à travers toutes les tables d'entités :

-- Clients
SELECT customer_id AS id,
customer_name AS name,
customer_id,
'customer' AS type
FROM customer
WHERE customer_name LIKE '%Smith%'
AND customer_status = 'Open'

UNION ALL

-- Contacts
SELECT contact_id AS id,
CONCAT(contact_firstname, ' ', contact_lastname) AS name,
customer_id,
'contact' AS type
FROM customer_contact
WHERE (contact_firstname LIKE '%Smith%' OR
contact_lastname LIKE '%Smith%' OR
contact_email LIKE '%Smith%' OR
contact_phone LIKE '%Smith%')

UNION ALL

-- Sites
SELECT site_id AS id,
site_name AS name,
customer_id,
'site' AS type
FROM customer_site
WHERE site_name LIKE '%Smith%'

UNION ALL

-- Inventaire
SELECT inventory_id AS id,
itemtext1 AS name,
customer_id,
'inventory' AS type
FROM inventory
WHERE itemtext1 LIKE '%Smith%' OR
itemtext2 LIKE '%Smith%'

UNION ALL

-- Services
SELECT service_id AS id,
service_name AS name,
customer_id,
'service' AS type
FROM customer_service
WHERE service_name LIKE '%Smith%' OR
service_uuid LIKE '%Smith%'

Les résultats sont ensuite paginés et renvoyés.

Considérations de Performance

Performance de Recherche :

  • Les recherches utilisent des requêtes LIKE avec des jokers (%term%)
  • Aucun index de texte intégral n'est actuellement implémenté
  • Les grandes bases de données (>100k clients) peuvent connaître des recherches plus lentes
  • Les résultats sont limités à 10 par page pour des raisons de performance

Conseils d'Optimisation :

  • Soyez spécifique avec les termes de recherche pour réduire l'ensemble des résultats
  • Utilisez le filtre de compte clôturé pour réduire la portée de la recherche
  • Envisagez d'ajouter des index de base de données sur les champs fréquemment recherchés

Dépannage

Aucun résultat trouvé (mais l'enregistrement existe)

  • Cause : Le terme de recherche ne correspond pas au format de données stockées
  • Exemples :
    • Téléphone stocké comme "+44 7700 900123", rechercher "07700900123" ne correspondra pas
    • E-mail stocké comme "<john.smith@example.com>", rechercher "john" ne correspondra pas
  • Solution : Essayez des variations, utilisez des correspondances partielles qui existent définitivement

Recherche trop lente

  • Cause : Grande base de données, requête complexe à travers plusieurs tables
  • Solution :
    • Utilisez des termes de recherche plus spécifiques
    • Limitez aux comptes ouverts uniquement (décochez les comptes clôturés)
    • Contactez l'administrateur concernant l'indexation de la base de données

Les résultats lient au mauvais client

  • Cause : Plusieurs clients/contacts avec le même nom
  • Solution : Utilisez l'ID Client pour différencier, ou recherchez par identifiant unique (e-mail, téléphone)

Les comptes clôturés n'apparaissent pas

  • Cause : La case "Inclure les Comptes Clôturés" n'est pas cochée
  • Solution : Cochez la case et recherchez à nouveau

Documentation Connexe

  • basics_customers - Gestion des clients
  • basics_navigation - Navigation générale
  • administration_inventory - Recherches d'inventaire