팀 및 차량›기사 추가
기사 추가
현재 비즈니스 아래에 기사 멤버십을 생성합니다. 전화/이메일이 기존 사용자와 일치하면 그 계정이 연결됩니다. 그렇지 않으면 새 사용자 신원이 생성됩니다(초대 이메일 없음 — 로그인은 이후 비밀번호 없이 진행). 어느 경우든 멤버십은 active로 시작됩니다. 기사가 이전에 제거(deactive)되었다면 대신 재활성화됩니다. Owner/Administrator 그룹은 API 키로 배정할 수 없으며, 샌드박스 모드에서는 아예 불가능합니다. 선택적 관계(모두 검증됨; 누락된 id → 404 TECHNICIAN_NOT_FOUND + `missing_ids`): `buddy_ids`는 이 기사의 버디 목록을 설정합니다(리드를 생성할 때 사용); `lead_ids`는 지정된 각 리드의 버디로 이 기사를 추가합니다(버디를 생성할 때 사용 — 같은 리드↔버디 관계를 버디 쪽에서 연결하는 방법); `service_area_ids`는 기사를 해당 서비스 지역에 배정합니다. `start_location_type=office`는 생성 시점에 비즈니스 주소 + 좌표를 기사에 스냅샷합니다; 본문의 `address`, `start_location_lat`, `start_location_long`은 무시됩니다. 비즈니스에 좌표가 설정되어 있어야 합니다(없으면 400 BUSINESS_LOCATION_MISSING). `start_location_type=home`(또는 비움)은 본문의 주소 + 좌표를 사용합니다.
인수
Idempotency-Keystringheader선택
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.
▾addressobjectbody선택
Home address (the day-start point when start_location_type=home).
assignment_tierenumbody선택
매칭 엔진이 배정에 사용하는 크루 등급: lead(작업을 이끌 수 있음), buddy
(크루 보조), float(자동 크루 배정에서 제외).
buddy_idsarray<string>body선택
BuddyIDs — 이 기사의 버디(리드를 생성할 때 설정).
LeadIDs — 이 기사가 버디로 속한 리드들(버디를 생성할 때 설정;
기사가 각 리드의 버디 목록에 추가됨). ServiceAreaIDs —
기사를 배정할 서비스 지역. 모두 선택 사항.
business_group_idstringbody필수
새 멤버의 역할 그룹. GET /permission/groups로 ID를 조회하세요
(Owner/Administrator 그룹은 샌드박스 모드에서 거부됨).
emailstringbody선택
Email address. At least one of phone/email is required (identity resolution key).
full_namestringbody필수
The person's full display name. Required; max 255 chars.
job_titlestringbody선택
표시 직함(예: "Senior HVAC Technician").
join_datestringbody선택
첫 근무일(YYYY-MM-DD).
lead_idsarray<string>body선택
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.
phonestringbody선택
phone/email 중 최소 하나는 필수입니다(신원 해석 키).
service_area_idsarray<string>body선택
Service areas to assign the technician to. Optional; max 50. Discover via GET /service-areas.
start_location_latnumberbody선택
명시적 하루 시작 좌표; 설정 시 주소 지오코드보다 우선합니다.
start_location_longnumberbody선택
Explicit day-start longitude in decimal degrees (-180..180); when set it wins over the address geocode.
start_location_typeenumbody선택
기사가 하루를 시작하는 장소: home(그들의 주소) 또는 office
(비즈니스 위치). 엔진의 이동 시간 추정에 사용됩니다.
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" }'
요청 본문
{
"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":
}
Bearer