CSV 레코드 일괄 가져오기
/crm-core/v1/records/import/csvCSV 파싱이 이미 완료된 행 목록을 JSON으로 전달하여 레코드를 일괄 생성합니다. 업로드된 행은 records 컬렉션에 삽입된 후 속성값은 record_values 컬렉션에 별도로 저장됩니다. 임포트 완료 후 RECORD_CREATED 자동화 트리거가 일괄 발행됩니다(선택적으로 스킵 가능). MEMBER 이상 권한과 요금제 기능 records.bulkImportEnabled가 필요합니다.
Query Params
Body Params
Response
Structure
코드 예제
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/records/import/csv', {
method: 'POST',
headers: { 'Authorization': authHeader, 'Content-Type': 'application/json' },
body: JSON.stringify({
"entityId": "CRMET1260423081530123XYZ11122233",
"rows": [
{
"name": "홍길동",
"data": {
"CRMPP1260423091530123PPP11122233": "010-1234-5678"
}
}
]
})
});
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.post('https://api.solapi.com/crm-core/v1/records/import/csv', headers={
'Authorization': auth_header,
'Content-Type': 'application/json'
}, json={
"entityId": "CRMET1260423081530123XYZ11122233",
"rows": [
{
"name": "홍길동",
"data": {
"CRMPP1260423091530123PPP11122233": "010-1234-5678"
}
}
]
})
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 POST 'https://api.solapi.com/crm-core/v1/records/import/csv' \
-H "Authorization: ${AUTH}" \
-H "Content-Type: application/json" \
-d '{"entityId": "CRMET1260423081530123XYZ11122233", "rows": [{"name": "홍길동", "data": {"CRMPP1260423091530123PPP11122233": "010-1234-5678"}}]}'
요금제의 `records.bulkImportMaxRows` 한도를 초과하는 행 수를 전달하면 400 오류를 반환합니다. 단일 요청 상한은 5000행이며, 대량 임포트는 여러 번 나누어 호출하세요.
`linkConfigs`를 함께 보내면 임포트 직후 지정한 관계 타입(`relationshipTypeId`)으로 기준 속성(`criteria`) 매칭을 통해 자동으로 레코드가 연결됩니다. 연결은 비동기로 실행되므로 응답 본문에는 즉시 포함되지 않습니다.
**401 응답**: `{ "errorCode": "Unauthorized", "errorMessage": "권한이 없습니다." }`