활동 수정
작성일 2026.03.24 | 수정일 2026.05.08
PATCH
/crm-core/v1/activities/{activityId}Parameters
activityId*— 수정할 활동의 고유 ID
활동의 속성(제목·설명·예정일·담당자·결과·메타데이터 등)을 부분 업데이트합니다. 전달된 필드만 갱신됩니다. MEMBER 이상 권한이 필요합니다.
Path Params
Body Params
Response
업데이트된 전체 활동 객체. 구조는 활동 조회 응답과 동일합니다.
Structure
Request
{
"subject": "신규 고객 첫 통화 (일정 조정)",
"scheduledAt": "2026-04-26T05:00:00.000Z",
"outcome": "RESCHEDULED",
"outcomeNote": "고객 요청으로 하루 연기"
}
Response
{
"activityId": "CRMAC1260423091530123ACT11122233",
"accountId": "24010100001234",
"recordId": "CRMRC1260423081530123REC11122233",
"activityType": "CALL",
"subject": "신규 고객 첫 통화 (일정 조정)",
"description": "도입 검토 상담",
"attachmentIds": [],
"outcome": "RESCHEDULED",
"outcomeNote": "고객 요청으로 하루 연기",
"scheduledAt": "2026-04-26T05:00:00.000Z",
"assignedMemberId": "MEMXm8i2H3o2z0",
"assignedMemberIds": [
"MEMXm8i2H3o2z0"
],
"durationMinutes": 15,
"dateCreated": "2026-04-23T09:15:30.000Z",
"dateUpdated": "2026-04-23T09:25:00.000Z"
}
코드 예제
const crypto = require('crypto');
const apiKey = 'NCSXXXXXXXXXXXXX';
const apiSecret = 'YOUR_API_SECRET';
const dateTime = new Date().toISOString();
const salt = crypto.randomBytes(16).toString('hex');
const signature = crypto.createHmac('sha256', apiSecret).update(dateTime + salt).digest('hex');
const authHeader = HMAC-SHA256 apiKey=${apiKey}, date=${dateTime}, salt=${salt}, signature=${signature};
const response = await fetch('https://api.solapi.com/crm-core/v1/activities/CRMAC1260423091530123ACT11122233', {
method: 'PATCH',
headers: { 'Authorization': authHeader, 'Content-Type': 'application/json' },
body: JSON.stringify({
"subject": "신규 고객 첫 통화 (일정 조정)",
"scheduledAt": "2026-04-26T05:00:00Z",
"outcome": "RESCHEDULED"
})
});
const data = await response.json();import hmac, hashlib, secrets, requests
from datetime import datetime, timezone
api_key = 'NCSXXXXXXXXXXXXX'
api_secret = 'YOUR_API_SECRET'
date_time = datetime.now(timezone.utc).strftime('%Y-%m-%dT%H:%M:%SZ')
salt = secrets.token_hex(16)
signature = hmac.new(api_secret.encode(), (date_time + salt).encode(), hashlib.sha256).hexdigest()
auth_header = f'HMAC-SHA256 apiKey={api_key}, date={date_time}, salt={salt}, signature={signature}'
response = requests.patch('https://api.solapi.com/crm-core/v1/activities/CRMAC1260423091530123ACT11122233', headers={
'Authorization': auth_header,
'Content-Type': 'application/json'
}, json={
"subject": "신규 고객 첫 통화 (일정 조정)",
"scheduledAt": "2026-04-26T05:00:00Z",
"outcome": "RESCHEDULED"
})
data = response.json()API_KEY="NCSXXXXXXXXXXXXX"
API_SECRET="YOUR_API_SECRET"
DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
SALT=$(openssl rand -hex 16)
SIGNATURE=$(echo -n "${DATE}${SALT}" | openssl dgst -sha256 -hmac "${API_SECRET}" | awk '{print $NF}')
AUTH="HMAC-SHA256 apiKey=${API_KEY}, date=${DATE}, salt=${SALT}, signature=${SIGNATURE}"
curl -X PATCH 'https://api.solapi.com/crm-core/v1/activities/CRMAC1260423091530123ACT11122233' \
-H "Authorization: ${AUTH}" \
-H "Content-Type: application/json" \
-d '{"subject": "신규 고객 첫 통화 (일정 조정)", "scheduledAt": "2026-04-26T05:00:00Z", "outcome": "RESCHEDULED"}'lightbulb
완료 처리만 하고 싶다면 전용 엔드포인트 `POST /crm-core/v1/activities/{activityId}/complete`를 사용하세요 — `outcome`이 COMPLETED로 설정되고 `completedAt`이 서버 시각으로 자동 기록됩니다.
lightbulb
입력 검증: `subject`에 빈 문자열을 입력하면 400 Bad Request 응답이 반환됩니다. `activityType` / `outcome`은 enum 검증이 적용되어 정의된 값 외에는 400 응답입니다.
lightbulb
401 응답: `{ "errorCode": "Unauthorized", "errorMessage": "권한이 없습니다." }`