PUT/contacts/{contactId}
연락처 정보를 수정한다.
연락처에 메일 주소 또는 전화번호 둘 중 한 가지 정보는 반드시 있어야 한다. 단, 외부 대화 상대 연락처는 메일 주소와 전화번호 둘 다 없어도 수정할 수 있다.
연락처 접근 가능 범위가 MEMBER라면 접근 가능한 구성원 정보가 반드시 있어야 한다.
연락처 이름 정보에 성과 이름 둘 중 한 가지 정보는 반드시 있어야 한다.
외부 대화 상대 연락처의 닉네임은 수정할 수 없다.
messengers[].type주의 사항
X는 Response Body에서- 2026년 7월말부터
X모두 Response Body에서X로 반환할 예정입니다.- 2026년 11월 중순부터
OAuth 2.0 인증.
자세한 인증 방식은 인가·인증을 참고한다.
contact
| Parameter | Type | Description |
|---|---|---|
| contactId | string | 고객/거래처 연락처 ID required example : contact2-a56d-44a4-5304-033e16fca8d1 |
| Header | type | Description |
|---|---|---|
| Authorization | string | Bearer {token} required |
| Content-Type | string | application/json required example : application/json |
| Property | Type | Description |
|---|---|---|
| permission | object (permission) | 연락처 접근 권한 모델 required |
| contactName | object (contactName) | 연락처 이름 정보 required |
| emails | array (ContactEmail) | 연락처 메일 목록 minItems : 0 maxItems : 100 |
| telephones | array (ContactTelephone) | 연락처 전화 목록 minItems : 0 maxItems : 100 |
| organizations | array (ContactOrganization) | 연락처 회사/소속 목록 minItems : 0 maxItems : 100 |
| events | array (ContactEvent) | 연락처 이벤트 목록 minItems : 0 maxItems : 100 |
| locations | array (ContactLocation) | 연락처 주소 목록 minItems : 0 maxItems : 100 |
| messengers | array (ContactMessenger) | 연락처 메신저 정보 minItems : 0 maxItems : 100 |
| websites | array (ContactWebsite) | 연락처 웹사이트 목록 minItems : 0 maxItems : 100 |
| memo | string | 연락처 메모 maxLength : 4000 |
| contactTagIds | array (string) | 연결된 태그 목록 minItems : 0 |
| customProperties | object (customProperties) | 연락처 커스텀 속성. 연락처 커스텀 속성 추가 API를 이용해 먼저 추가해야 한다. customProperties의 key는 연락처 커스텀 필드 추가 API에서 설정한 propertyName의 값으로, 변수이다. |
| Property | Type | Description |
|---|---|---|
| accessibleRange | string | 연락처 접근 가능 범위
required Allowed values : ALL, MEMBER |
| masterUserId | string | 연락처 마스터 구성원 ID
|
| isCoEditing | boolean | 공동 편집 여부.
default : true |
| accessibleMembers | array (ContactAccessibleMember) | 연락처에 접근 가능한 구성원(구성원, 조직, 그룹의 ID)
minItems : 0 maxItems : 500 uniqueItems : true |
| Property | Type | Description |
|---|---|---|
| id | string | 연락처에 접근 가능한 구성원의 ID required |
| type | string | 연락처에 접근 가능한 구성원 타입
required Allowed values : USER, ORGUNIT, GROUP |
| Property | Type | Description |
|---|---|---|
| firstName | string | 이름 maxLength : 100 nullable : true |
| lastName | string | 성 maxLength : 100 nullable : true |
| phoneticFirstName | string | 후리가나 이름 maxLength : 100 nullable : true |
| phoneticLastName | string | 후리가나 성 maxLength : 100 nullable : true |
| nickName | string | 닉네임 maxLength : 100 nullable : true |
| prefix | string | 경칭. "연락처 정보 조회"에서만 표시됨. maxLength : 100 nullable : true |
| suffix | string | 호칭. "연락처 정보 조회"에서만 표시됨. maxLength : 100 nullable : true |
| middleName | string | 중간 이름. "연락처 정보 조회"에서만 표시됨. maxLength : 100 nullable : true |
| Property | Type | Description |
|---|---|---|
| primary | boolean | 대표 메일 여부
required |
| string | 메일 주소 required maxLength : 256 |
| Property | Type | Description |
|---|---|---|
| primary | boolean | 대표 전화 여부
required |
| telephone | string | 전화번호 required pattern : [0-9\+\-*#PTpt()\u3000 ]+ |
| type | string | 연락처 전화번호 타입
default : CUSTOM Allowed values : CELLPHONE, WORK, HOME, WORK_FAX, HOME_FAX, OTHER, CUSTOM |
| customType | string | 직접 입력할 전화번호 타입
maxLength : 100 nullable : true |
| Property | Type | Description |
|---|---|---|
| primary | boolean | 대표 회사 여부
required |
| name | string | 회사명 maxLength : 100 |
| department | string | 부서명 maxLength : 100 |
| title | string | 직책명 maxLength : 100 |
| Property | Type | Description |
|---|---|---|
| primary | boolean | 대표 이벤트 여부
required |
| date | string | 날짜(YYYY-MM-DD) required |
| type | string | 연락처 이벤트 타입
default : CUSTOM Allowed values : BIRTHDAY, ANNIVERSARY, OTHER, CUSTOM |
| customType | string | 직접 입력할 이벤트 타입 maxLength : 100 nullable : true |
| dayType | string | 날짜 타입 default : SOLAR Allowed values : SOLAR, LUNAR |
| Property | Type | Description |
|---|---|---|
| primary | boolean | 대표 주소 여부
required |
| address | string | 주소 required maxLength : 100 |
| type | string | 연락처 주소 타입
default : CUSTOM Allowed values : WORK, HOME, OTHER, CUSTOM |
| zipCode | string | 우편번호 maxLength : 100 |
| customType | string | 직접 입력할 주소 타입 maxLength : 100 nullable : true |
| Property | Type | Description |
|---|---|---|
| primary | boolean | 대표 메신저 여부
required |
| id | string | 메신저 ID required maxLength : 100 |
| type | string | 연락처 메신저 타입
default : CUSTOM Allowed values : FACEBOOK, LINE, TWITTER, X, CUSTOM |
| customType | string | 직접 입력할 메신저 타입 maxLength : 100 nullable : true |
| Property | Type | Description |
|---|---|---|
| primary | boolean | 대표 웹사이트 여부
required |
| url | string | 웹사이트 URL required maxLength : 100 |
| Property | Type | Description |
|---|---|---|
| propertyName | object (propertyName) | propertyType이 STRING이고 multiValued가 false일 때
|
| array (CustomPropertyStringMulti) | propertyType이 STRING이고 multiValued가 true일 때
maxItems : 10 | |
| object (CustomPropertyLinkSingle) | propertyType이 LINK이고 multiValued가 false일 때
| |
| array (CustomPropertyLinkMulti) | propertyType이 LINK이고 multiValued가 true일 때
maxItems : 10 |
| Property | Type | Description |
|---|---|---|
| content | string | propertyType이 STRING일 때 값 maxLength : 100 |
| Property | Type | Description |
|---|---|---|
| content | string | propertyType이 STRING일 때 값 maxLength : 100 |
| represent | boolean | 대표 여부. multiValued가 true일 때 represent가 true인 값이 목록의 제일 앞에 노출된다. |
| Property | Type | Description |
|---|---|---|
| text | string | 텍스트 maxLength : 100 nullable : true |
| link | string | URL maxLength : 300 |
| Property | Type | Description |
|---|---|---|
| text | string | 텍스트 maxLength : 100 nullable : true |
| link | string | URL maxLength : 300 |
| represent | boolean | 대표 여부. multiValued가 true일 때 represent가 true인 값이 목록의 제일 앞에 노출된다. |
example
1{2 "permission": {3 "masterUserId": "userf7da-f82c-4284-13e7-030f3b4c756x",4 "isCoEditing": true,5 "accessibleRange": "ALL"6 },7 "contactName": {8 "lastName": "홍",9 "firstName": "길동",10 "nickName": "HONG"11 },12 "emails": [13 {14 "email": "example1@example.com",15 "primary": true16 },17 {18 "email": "example2@example.com",19 "primary": false20 }21 ],22 "telephones": [23 {24 "type": "CELLPHONE",25 "telephone": "0000-0001",26 "primary": true27 },28 {29 "type": "HOME",30 "telephone": "0000-0002",31 "primary": false32 }33 ],34 "organizations": [35 {36 "name": "example company name",37 "department": "department",38 "title": "title",39 "primary": true40 }41 ],42 "locations": [43 {44 "address": "example1 address",45 "zipCode": "00001",46 "type": "WORK",47 "primary": true48 },49 {50 "address": "example2 address",51 "zipCode": "00002",52 "type": "HOME",53 "primary": false54 }55 ],56 "events": [57 {58 "date": "2021-01-09",59 "dayType": "SOLAR",60 "type": "BIRTHDAY",61 "primary": true62 },63 {64 "date": "2021-08-09",65 "dayType": "SOLAR",66 "type": "ANNIVERSARY",67 "primary": false68 }69 ],70 "messengers": [71 {72 "id": "example1",73 "type": "LINE",74 "primary": true75 },76 {77 "id": "example2",78 "type": "CUSTOM",79 "customType": "Worksmobile",80 "primary": false81 }82 ],83 "websites": [84 {85 "url": "https://example1.com",86 "primary": true87 },88 {89 "url": "https://example2.com",90 "primary": false91 }92 ],93 "memo": "memo",94 "contactTagIds": [95 "ctag2a81-94b6-4642-6903-03aa7977da91",96 "3512644d-a731-4602-6912-031febc8bce2"97 ],98 "customProperties": {99 "string_single": {100 "content": "ext_id"101 },102 "string_multi": [103 {104 "content": "ext_id",105 "represent": true106 },107 {108 "content": "connect",109 "represent": false110 }111 ],112 "link_single": {113 "text": "worksmobile",114 "link": "https://contact.worksmobile.com"115 },116 "link_multi": [117 {118 "text": "worksmobile",119 "link": "https://contact.worksmobile.com",120 "represent": true121 },122 {123 "text": "line",124 "link": "https://www.line.me/",125 "represent": false126 }127 ]128 }129}OK
| Property | Type | Description |
|---|---|---|
| contactId | string | 고객/거래처 연락처 ID readOnly : true |
| permission | object (permission) | 연락처 접근 권한 모델 required |
| contactName | object (contactName) | 연락처 이름 정보 required |
| linkedExternalUser | object (linkedExternalUser) | 연락처 외부 대화 상대 정보 readOnly : true |
| emails | array (ContactEmail) | 연락처 메일 목록 minItems : 0 maxItems : 100 |
| telephones | array (ContactTelephone) | 연락처 전화 목록 minItems : 0 maxItems : 100 |
| organizations | array (ContactOrganization) | 연락처 회사/소속 목록 minItems : 0 maxItems : 100 |
| events | array (ContactEvent) | 연락처 이벤트 목록 minItems : 0 maxItems : 100 |
| locations | array (ContactLocation) | 연락처 주소 목록 minItems : 0 maxItems : 100 |
| messengers | array (ContactMessenger) | 연락처 메신저 정보 minItems : 0 maxItems : 100 |
| websites | array (ContactWebsite) | 연락처 웹사이트 목록 minItems : 0 maxItems : 100 |
| memo | string | 연락처 메모 maxLength : 4000 |
| contactTagIds | array (string) | 연결된 태그 목록 minItems : 0 |
| customProperties | object (customProperties) | 연락처 커스텀 속성. 연락처 커스텀 속성 추가 API를 이용해 먼저 추가해야 한다. customProperties의 key는 연락처 커스텀 필드 추가 API에서 설정한 propertyName의 값으로, 변수이다. |
| createdTime | string | 연락처 생성 시간
readOnly : true |
| modifiedTime | string | 연락처 수정 시간
readOnly : true |
| Property | Type | Description |
|---|---|---|
| accessibleRange | string | 연락처 접근 가능 범위
required Allowed values : ALL, MEMBER |
| masterUserId | string | 연락처 마스터 구성원 ID
|
| isCoEditing | boolean | 공동 편집 여부.
default : true |
| accessibleMembers | array (ContactAccessibleMember) | 연락처에 접근 가능한 구성원(구성원, 조직, 그룹의 ID)
minItems : 0 maxItems : 500 uniqueItems : true |
| Property | Type | Description |
|---|---|---|
| id | string | 연락처에 접근 가능한 구성원의 ID required |
| type | string | 연락처에 접근 가능한 구성원 타입
required Allowed values : USER, ORGUNIT, GROUP |
| Property | Type | Description |
|---|---|---|
| firstName | string | 이름 maxLength : 100 nullable : true |
| lastName | string | 성 maxLength : 100 nullable : true |
| phoneticFirstName | string | 후리가나 이름 maxLength : 100 nullable : true |
| phoneticLastName | string | 후리가나 성 maxLength : 100 nullable : true |
| nickName | string | 닉네임 maxLength : 100 nullable : true |
| prefix | string | 경칭. "연락처 정보 조회"에서만 표시됨. maxLength : 100 nullable : true |
| suffix | string | 호칭. "연락처 정보 조회"에서만 표시됨. maxLength : 100 nullable : true |
| middleName | string | 중간 이름. "연락처 정보 조회"에서만 표시됨. maxLength : 100 nullable : true |
| Property | Type | Description |
|---|---|---|
| id | string | 외부 대화 상대 ID |
| type | string | 외부 대화 상대 타입
Allowed values : LINE, WORKS readOnly : true |
| buddyUserIds | array (string) | 외부 대화 상대를 연락처에 추가한 구성원 ID 목록 |
| Property | Type | Description |
|---|---|---|
| primary | boolean | 대표 메일 여부
required |
| string | 메일 주소 required maxLength : 256 |
| Property | Type | Description |
|---|---|---|
| primary | boolean | 대표 전화 여부
required |
| telephone | string | 전화번호 required pattern : [0-9\+\-*#PTpt()\u3000 ]+ |
| type | string | 연락처 전화번호 타입
default : CUSTOM Allowed values : CELLPHONE, WORK, HOME, WORK_FAX, HOME_FAX, OTHER, CUSTOM |
| customType | string | 직접 입력할 전화번호 타입
maxLength : 100 nullable : true |
| Property | Type | Description |
|---|---|---|
| primary | boolean | 대표 회사 여부
required |
| name | string | 회사명 maxLength : 100 |
| department | string | 부서명 maxLength : 100 |
| title | string | 직책명 maxLength : 100 |
| Property | Type | Description |
|---|---|---|
| primary | boolean | 대표 이벤트 여부
required |
| date | string | 날짜(YYYY-MM-DD) required |
| type | string | 연락처 이벤트 타입
default : CUSTOM Allowed values : BIRTHDAY, ANNIVERSARY, OTHER, CUSTOM |
| customType | string | 직접 입력할 이벤트 타입 maxLength : 100 nullable : true |
| dayType | string | 날짜 타입 default : SOLAR Allowed values : SOLAR, LUNAR |
| Property | Type | Description |
|---|---|---|
| primary | boolean | 대표 주소 여부
required |
| address | string | 주소 required maxLength : 100 |
| type | string | 연락처 주소 타입
default : CUSTOM Allowed values : WORK, HOME, OTHER, CUSTOM |
| zipCode | string | 우편번호 maxLength : 100 |
| customType | string | 직접 입력할 주소 타입 maxLength : 100 nullable : true |
| Property | Type | Description |
|---|---|---|
| primary | boolean | 대표 메신저 여부
required |
| id | string | 메신저 ID required maxLength : 100 |
| type | string | 연락처 메신저 타입
default : CUSTOM Allowed values : FACEBOOK, LINE, TWITTER, X, CUSTOM |
| customType | string | 직접 입력할 메신저 타입 maxLength : 100 nullable : true |
| Property | Type | Description |
|---|---|---|
| primary | boolean | 대표 웹사이트 여부
required |
| url | string | 웹사이트 URL required maxLength : 100 |
| Property | Type | Description |
|---|---|---|
| propertyName | object (propertyName) | propertyType이 STRING이고 multiValued가 false일 때
|
| array (CustomPropertyStringMulti) | propertyType이 STRING이고 multiValued가 true일 때
maxItems : 10 | |
| object (CustomPropertyLinkSingle) | propertyType이 LINK이고 multiValued가 false일 때
| |
| array (CustomPropertyLinkMulti) | propertyType이 LINK이고 multiValued가 true일 때
maxItems : 10 |
| Property | Type | Description |
|---|---|---|
| content | string | propertyType이 STRING일 때 값 maxLength : 100 |
| Property | Type | Description |
|---|---|---|
| content | string | propertyType이 STRING일 때 값 maxLength : 100 |
| represent | boolean | 대표 여부. multiValued가 true일 때 represent가 true인 값이 목록의 제일 앞에 노출된다. |
| Property | Type | Description |
|---|---|---|
| text | string | 텍스트 maxLength : 100 nullable : true |
| link | string | URL maxLength : 300 |
| Property | Type | Description |
|---|---|---|
| text | string | 텍스트 maxLength : 100 nullable : true |
| link | string | URL maxLength : 300 |
| represent | boolean | 대표 여부. multiValued가 true일 때 represent가 true인 값이 목록의 제일 앞에 노출된다. |
example
1{2 "contactId": "contact2-a56d-44a4-5304-033e16fca8d1",3 "contactTagIds": [4 "ctag2a81-94b6-4642-6903-03aa7977da91",5 "3512644d-a731-4602-6912-031febc8bce2"6 ],7 "permission": {8 "masterUserId": "userf7da-f82c-4284-13e7-030f3b4c756x",9 "isCoEditing": true,10 "accessibleRange": "ALL",11 "accessibleMembers": []12 },13 "createdTime": "2021-08-10T11:05:41+09:00",14 "modifiedTime": "2021-08-10T11:09:37+09:00",15 "contactName": {16 "lastName": "홍",17 "firstName": "길동",18 "nickName": "HONG",19 "phoneticFirstName": null,20 "phoneticLastName": null,21 "prefix": null,22 "suffix": null,23 "middleName": null24 },25 "linkedExternalUser": {26 "id": "works75b-5b29-4048-4bf5-0336e504a395",27 "type": "WORKS",28 "buddyUserIds": [29 "userf7da-f82c-4284-13e7-030f3b4c756x"30 ]31 },32 "emails": [33 {34 "email": "example1@example.com",35 "primary": true36 },37 {38 "email": "example2@example.com",39 "primary": false40 }41 ],42 "telephones": [43 {44 "type": "CELLPHONE",45 "telephone": "0000-0001",46 "primary": true,47 "customType": null48 },49 {50 "type": "HOME",51 "telephone": "0000-0002",52 "primary": false,53 "customType": null54 }55 ],56 "organizations": [57 {58 "name": "example company name",59 "department": "department",60 "title": "title",61 "primary": true62 }63 ],64 "locations": [65 {66 "address": "example1 address",67 "zipCode": "00001",68 "type": "WORK",69 "primary": true,70 "customType": null71 },72 {73 "address": "example2 address",74 "zipCode": "00002",75 "type": "HOME",76 "primary": false,77 "customType": null78 }79 ],80 "events": [81 {82 "date": "2021-01-09",83 "dayType": "SOLAR",84 "type": "BIRTHDAY",85 "primary": true,86 "customType": null87 },88 {89 "date": "2021-08-09",90 "dayType": "SOLAR",91 "type": "ANNIVERSARY",92 "primary": false,93 "customType": null94 }95 ],96 "messengers": [97 {98 "id": "example1",99 "type": "LINE",100 "primary": true,101 "customType": null102 },103 {104 "id": "example2",105 "type": "CUSTOM",106 "customType": "Worksmobile",107 "primary": false108 }109 ],110 "websites": [111 {112 "url": "https://example1.com",113 "primary": true114 },115 {116 "url": "https://example2.com",117 "primary": false118 }119 ],120 "memo": "memo",121 "customProperties": {122 "string_single": {123 "content": "ext_id"124 },125 "string_multi": [126 {127 "content": "ext_id",128 "represent": true129 },130 {131 "content": "connect",132 "represent": false133 }134 ],135 "link_single": {136 "text": "worksmobile",137 "link": "https://contact.worksmobile.com"138 },139 "link_multi": [140 {141 "text": "worksmobile",142 "link": "https://contact.worksmobile.com",143 "represent": true144 },145 {146 "text": "line",147 "link": "https://www.line.me/",148 "represent": false149 }150 ]151 }152}Bad Request
Forbidden
Not Found