fr
Équipe & FlotteAjouter un technicien

Ajouter un technicien

Crée une adhésion de technicien sous l'entreprise actuelle. Si le téléphone/e-mail correspond à un utilisateur existant, son compte est lié. Sinon, une nouvelle identité utilisateur est créée (pas d'e-mail d'invitation — la connexion se fait ensuite sans mot de passe). Dans les deux cas, l'adhésion démarre active. Si le technicien avait été précédemment retiré (deactive), il est réactivé à la place. Les groupes Propriétaire/Administrateur ne peuvent pas être attribués via une clé API, et pas du tout en mode sandbox. Relations facultatives (toutes validées ; tout id manquant → 404 TECHNICIAN_NOT_FOUND avec `missing_ids`) : `buddy_ids` définit la liste de coéquipiers de ce technicien (à utiliser en créant un lead) ; `lead_ids` ajoute ce technicien comme coéquipier de chaque lead nommé (à utiliser en créant un coéquipier — la façon côté coéquipier d'attacher la même relation lead↔coéquipier) ; `service_area_ids` affecte le technicien à ces zones de service. `start_location_type=office` capture l'adresse + les coordonnées de l'entreprise dans le technicien au moment de la création ; `address`, `start_location_lat`, `start_location_long` dans le corps sont ignorés. Nécessite que l'entreprise ait des coordonnées définies (sinon 400 BUSINESS_LOCATION_MISSING). `start_location_type=home` (ou vide) utilise l'adresse + les coordonnées du corps.

Arguments

Idempotency-Keystringheaderoptionnel
Unique key making retries safe: a repeat send with the same key replays the original response (header Idempotent-Replayed: true) instead of re-running the operation. Reusing a key with a different body returns 422 IDEMPOTENCY_KEY_REUSE.
addressobjectbodyoptionnel
Home address (the day-start point when start_location_type=home).
citystringbodyoptionnel
City / locality.
countrystringbodyoptionnel
Country (free-form or ISO code).
formattedstringbodyoptionnel
Chaîne d'affichage complète ; lorsqu'elle est définie, elle prime sur les parties distinctes pour l'affichage.
linestringbodyoptionnel
Ligne d'adresse 1.
line2stringbodyoptionnel
Ligne d'adresse 2 (unité, bureau).
postal_codestringbodyoptionnel
Code postal.
statestringbodyoptionnel
State / province / region.
assignment_tierenumbodyoptionnel
Niveau d'équipe selon lequel le moteur de correspondance affecte : lead (peut diriger une intervention), buddy (aide d'équipe), float (exclu de l'affectation d'équipe automatique).
buddy_idsarray<string>bodyoptionnel
BuddyIDs — coéquipiers de ce technicien (à définir en créant un lead). LeadIDs — leads dont ce technicien est coéquipier (à définir en créant un coéquipier ; le technicien est ajouté à la liste de coéquipiers de chaque lead). ServiceAreaIDs — zones de service auxquelles affecter le technicien. Toutes facultatives.
business_group_idstringbodyrequis
Groupe de rôles du nouveau membre. Découvrez les IDs via GET /permission/groups (les groupes Propriétaire/Administrateur sont rejetés en mode sandbox).
emailstringbodyoptionnel
Email address. At least one of phone/email is required (identity resolution key).
full_namestringbodyrequis
The person's full display name. Required; max 255 chars.
job_titlestringbodyoptionnel
Intitulé affiché (p. ex. "Technicien CVC senior").
join_datestringbodyoptionnel
Premier jour de travail (YYYY-MM-DD).
lead_idsarray<string>bodyoptionnel
Leads this technician is a buddy of (set when creating a buddy; the technician is appended to each lead's buddy list). Optional; max 50 technician ids.
phonestringbodyoptionnel
Au moins l'un des deux, téléphone/e-mail, est requis (clé de résolution d'identité).
service_area_idsarray<string>bodyoptionnel
Service areas to assign the technician to. Optional; max 50. Discover via GET /service-areas.
start_location_latnumberbodyoptionnel
Coordonnées explicites de début de journée ; lorsqu'elles sont définies, elles priment sur le géocodage de l'adresse.
start_location_longnumberbodyoptionnel
Explicit day-start longitude in decimal degrees (-180..180); when set it wins over the address geocode.
start_location_typeenumbodyoptionnel
Où le technicien commence sa journée : home (son adresse) ou office (le lieu de l'entreprise). Détermine les estimations de trajet du moteur.
POST/v1/technicians
curl -X POST "https://api.crisphive.com/v1/technicians" \
  -H "Authorization: Bearer chsk_test_4eC8xQ9mZ2pL7Ka0rT" \
  -H "Content-Type: application/json" \
  -d '{
  "address": {
    "city": "San Francisco",
    "country": "US",
    "formatted": "123 Market Street, San Francisco, CA 94103",
    "line": "123 Market Street",
    "line2": "Suite 200",
    "postal_code": "94103",
    "state": "CA"
  },
  "assignment_tier": "lead",
  "buddy_ids": [
    "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01"
  ],
  "business_group_id": "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01",
  "email": "jane.doe@example.com",
  "full_name": "Jane Cooper",
  "job_title": "Sample title",
  "join_date": "2026-07-02",
  "lead_ids": [
    "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01"
  ],
  "phone": "+14155550142",
  "service_area_ids": [
    "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01"
  ],
  "start_location_lat": 1,
  "start_location_long": 1,
  "start_location_type": "home"
}'
Corps de la requête
{
"address": {
"city": ,
"country": ,
"formatted": ,
"line": ,
"line2": ,
"postal_code": ,
"state":
},
"assignment_tier": ,
"buddy_ids": [
],
"business_group_id": ,
"email": ,
"full_name": ,
"job_title": ,
"join_date": ,
"lead_ids": [
],
"phone": ,
"service_area_ids": [
],
"start_location_lat": ,
"start_location_long": ,
"start_location_type":
}

Réponses