인 다이렉트 카보험 직원 전산 → Google Sheets 실시간 연동 설정 (약 10분 소요)
아래 버튼을 클릭하면 새 Google Sheets가 열립니다.
좌측 상단의 "제목 없는 스프레드시트" 클릭 → 인다이렉트카보험_DB 로 변경
주소창 URL에서 /d/ 뒤에 있는 문자열이 Sheets ID입니다.
https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms/edit
↑ 이 부분이 Sheets ID
스프레드시트 상단 메뉴에서:
→ 새 탭에 Apps Script 편집기가 열립니다.
Code.gs 탭의 내용을 전체 선택(Ctrl+A)하고 삭제한 뒤, 아래 버튼으로 복사한 코드를 붙여넣으세요.
function doPost(e) {
try {
var data = JSON.parse(e.postData.contents);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(data.sheet);
// 시트 없으면 자동 생성 + 헤더 추가
if (!sheet) {
sheet = ss.insertSheet(data.sheet);
var headers = getHeaders(data.sheet);
if (headers.length) {
sheet.appendRow(headers);
sheet.getRange(1, 1, 1, headers.length)
.setBackground('#1B5E20')
.setFontColor('#FFFFFF')
.setFontWeight('bold');
sheet.setFrozenRows(1);
}
}
if (data.action === 'append') {
// 새 행 추가
sheet.appendRow(data.row);
} else if (data.action === 'upsert') {
// 기존 행 업데이트 또는 새 행 추가
var colIdx = (data.keyCol || 'A').charCodeAt(0) - 64;
var key = String(data.keyVal);
var lastRow = sheet.getLastRow();
var found = false;
for (var i = 2; i <= lastRow; i++) {
if (String(sheet.getRange(i, colIdx).getValue()) === key) {
sheet.getRange(i, 1, 1, data.row.length).setValues([data.row]);
found = true;
break;
}
}
if (!found) sheet.appendRow(data.row);
} else if (data.action === 'ping') {
return ContentService
.createTextOutput(JSON.stringify({ status: 'pong', service: '인다이렉트카보험' }))
.setMimeType(ContentService.MimeType.JSON);
}
return ContentService
.createTextOutput(JSON.stringify({ status: 'ok' }))
.setMimeType(ContentService.MimeType.JSON);
} catch (err) {
return ContentService
.createTextOutput(JSON.stringify({ status: 'error', msg: err.message }))
.setMimeType(ContentService.MimeType.JSON);
}
}
function doGet(e) {
return ContentService
.createTextOutput(JSON.stringify({ status: 'pong', service: '인다이렉트카보험' }))
.setMimeType(ContentService.MimeType.JSON);
}
// 시트별 헤더 정의
function getHeaders(sheetName) {
var headers = {
'고객관리': [
'ID', '작업', '처리일시', '처리직원', '직원ID',
'고객명', '연락처', '이메일', '성별', '출생연도',
'주소', '차량번호', '차종', '보험사', '개시일', '만기일',
'보험료', '계약유형', '소개자', '은행계좌', '카드번호',
'상태', '가입일', '담당직원', '특이사항'
],
'계약관리': [
'ID', '작업', '처리일시', '처리직원', '직원ID',
'차량번호', '차종', '보험사', '피보험자', '피보험자연락처',
'계약자', '계약자연락처', '개시일', '만기일', '보험료',
'갱신상태', '계약유형', '소개자', '담당직원', '메모'
],
'접속로그': [
'접속일시', '직원ID', '직원명', '역할', 'IP주소', 'UserAgent'
]
};
return headers[sheetName] || [];
}
Ctrl + S (Mac: Cmd+S) 또는 💾 버튼 클릭으로 저장
Apps Script 편집기 우측 상단 → 배포 → 새 배포
아래와 같이 설정하세요:
| 설정 항목 | 선택값 |
|---|---|
| 유형 선택 | 웹 앱 선택 |
| 다음 사용자로 실행 | 나 (내 Google 계정으로 실행) |
| 액세스 권한 | 모든 사용자 (익명 포함) |
배포 클릭 → "권한 허용" → Google 계정 선택 → "고급" 클릭 → "안전하지 않은 페이지로 이동" 클릭 → "허용"
배포 완료 후 표시되는 "웹 앱 URL"을 복사하세요.
https://script.google.com/macros/s/AKfycbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/exec
↑ 이 부분이 배포 ID
📊 Google Sheets 연동 섹션에서:
배포 URL을 붙여넣고 테스트 버튼을 클릭하세요.
⚙️ 시스템 설정 → Google Sheets 연동 → "🔗 연결 테스트" 버튼 클릭
각 직원에게 아래 URL을 카카오톡 또는 문자로 공유하세요. 클릭하면 아이디가 자동 입력됩니다.
https://carbotapp.com/staff-login.html?id=직원ID| 작업 | 기록 시트 | 기록 시점 |
|---|---|---|
| ✅ 직원 로그인 | 접속로그 |
로그인 성공 즉시 |
| ➕ 고객 신규 등록 | 고객관리 |
등록 저장 즉시 |
| ✏️ 고객 정보 수정 | 고객관리 |
수정 저장 즉시 (기존 행 업데이트) |
| 🗑️ 고객 삭제 | 고객관리 |
삭제 즉시 (상태 = 삭제 표시) |
| ➕ 계약 등록 | 계약관리 |
계약 저장 즉시 |
| ✏️ 계약 수정 | 계약관리 |
수정 저장 즉시 |
| 🔄 1분마다 자동 ping | - | 연결 상태 확인만 (데이터 전송 없음) |
연동 후 Google Sheets에 자동 생성되는 탭 구조입니다.
| 시트 탭 | 컬럼 |
|---|---|
| 고객관리 | ID, 작업, 처리일시, 처리직원, 직원ID, 고객명, 연락처, 이메일, 성별, 출생연도, 주소, 차량번호, 차종, 보험사, 개시일, 만기일, 보험료, 계약유형, 소개자, 은행계좌, 카드번호, 상태, 가입일, 담당직원, 특이사항 |
| 계약관리 | ID, 작업, 처리일시, 처리직원, 직원ID, 차량번호, 차종, 보험사, 피보험자, 피보험자연락처, 계약자, 계약자연락처, 개시일, 만기일, 보험료, 갱신상태, 계약유형, 소개자, 담당직원, 메모 |
| 접속로그 | 접속일시, 직원ID, 직원명, 역할, IP주소, UserAgent |