성장하는 모든 비즈니스에 있어 커뮤니케이션 자동화는 핵심이며, Google Sheets에서 SMS를 보낼 수 있는 기능은 마케팅, 알림, 고객 서비스를 위한 강력한 워크플로우를 가능하게 합니다. 이 포괄적인 가이드는 Google Apps Script의 강력한 기능과 MySMSGate의 안정적이고 비용 효율적인 SMS 게이트웨이를 활용하여 스프레드시트를 강력한 커뮤니케이션 허브로 전환하는 과정을 안내할 것입니다.
약속 알림, 주문 업데이트 또는 개인화된 마케팅 메시지를 보내는 경우에도, 복잡한 인프라나 비싼 타사 서비스 없이 Google Sheets 데이터에서 직접 SMS를 자동화하는 것이 얼마나 쉽고 저렴한지 알게 될 것입니다.
1단계: 기본 이해 – Google Sheets에서 SMS를 자동화해야 하는 이유?
Google Sheets는 단순한 스프레드시트 그 이상입니다. 많은 소규모 비즈니스와 스타트업을 위한 다재다능한 데이터베이스입니다. 시트에서 직접 SMS 발송을 통합하면 다음과 같은 수많은 이점을 얻을 수 있습니다.
- 효율성: 대량 알림 또는 개인화된 메시지 발송과 같은 반복적인 작업을 자동화합니다.
- 데이터 기반 커뮤니케이션: 시트의 기존 고객 데이터를 사용하여 타겟 SMS를 트리거합니다.
- 비용 효율성: 수동 발송을 피하고 오류를 줄이며 MySMSGate와 같은 저렴한 SMS 게이트웨이를 선택합니다.
- 접근성: 익숙하고 널리 사용 가능한 플랫폼에서 연락처 및 커뮤니케이션을 관리합니다.
- 사용 사례: 약속 알림, 배송 알림, 마케팅 캠페인, OTP, 내부 알림, 고객 지원 후속 조치 등.
Google Sheets를 MySMSGate와 같은 SMS 게이트웨이에 연결하면 브라우저에서 직접 데이터를 실행 가능한 커뮤니케이션으로 전환할 수 있습니다.
2단계: MySMSGate 시작하기: 저렴한 SMS 게이트웨이
코딩을 시작하기 전에 메시지를 처리할 수 있는 SMS 게이트웨이가 필요합니다. MySMSGate는 기존 Android 휴대폰을 강력한 SMS 발송 장치로 전환하여 독특하고 매우 비용 효율적인 솔루션을 제공합니다. 이 접근 방식은 값비싼 기존 SMS 통합자를 우회하고 10DLC와 같은 복잡한 발신자 등록의 필요성을 제거합니다.
- 계정 생성: MySMSGate.net으로 이동하여 무료 계정을 만드세요. 과정은 빠르며 선불 신용 카드가 필요하지 않습니다.
- Android 휴대폰 연결: 로그인하면 대시보드에 QR 코드가 있습니다. 선택한 Android 휴대폰에서 Google Play Store에서 MySMSGate Android 앱을 다운로드하세요. 앱을 열고 대시보드에서 QR 코드를 스캔하세요. 휴대폰이 즉시 연결되어 메시지를 보내고 받을 준비가 됩니다. 필요한 경우 듀얼 SIM 지원을 활용하여 하나의 계정에 무제한 휴대폰을 연결할 수 있습니다.
- API 키 찾기: Google Apps Script가 MySMSGate와 통신하려면 고유한 API 키가 필요합니다. 이 키는 MySMSGate 대시보드의 'API' 섹션에서 찾을 수 있습니다. 요청을 인증하는 데 사용되므로 안전하게 보관하세요.
- 계정 충전: MySMSGate는 월별 요금이나 계약 없이 종량제 모델로 운영됩니다. SMS 메시지는 SMS당 $0.03이며, 패키지도 이용 가능합니다(예: 100 SMS에 $3, 500 SMS에 $12, 1000 SMS에 $20). 원활한 발송을 위해 계정에 잔액을 추가하세요. 실패한 SMS는 자동으로 환불됩니다.
MySMSGate는 소규모 비즈니스를 위한 가장 저렴한 SMS API 중 하나로 돋보이며, 개발자를 위한 강력한 REST API와 비기술 사용자를 위한 사용자 친화적인 웹 대시보드를 제공합니다.
3단계: SMS 발송을 위한 Google Sheet 준비
Google Sheet의 구조는 매우 중요합니다. 수신자의 전화번호와 메시지 내용을 위한 열이 필요합니다. 개인화 또는 추적을 위해 더 많은 열을 추가하는 것을 고려해 보세요.
세 개의 열로 간단한 시트를 설정해 보겠습니다.
- 전화번호: 수신자의 전체 국제 번호(예: +12345678900).
- 메시지: SMS의 텍스트 내용.
- 상태: SMS가 성공적으로 전송되었는지 여부를 추적하는 열(선택 사항이지만 디버깅 및 추적에 강력히 권장됨).
시트가 어떻게 생겼는지 예시입니다.
| 전화번호 | 메시지 | 상태 |
|---|---|---|
| +12345678900 | Hi John, your appointment is tomorrow at 2 PM. | |
| +19876543210 | Reminder: Your invoice is due on March 20th. | |
| +11122334455 | Special offer just for you! Use code SAVE10. |
안정적인 전송을 위해 전화번호가 국제 전화 걸기 코드(예: +1, +44, +91)로 올바르게 포맷되었는지 확인하는 것이 중요합니다.
4단계: Google Apps Script 접속
Google Apps Script는 Sheets, Docs, Forms와 같은 Google Workspace 애플리케이션을 확장할 수 있는 JavaScript 기반 플랫폼입니다. 시트를 MySMSGate에 연결하는 코드를 작성할 곳입니다.
- Google Sheet를 엽니다.
- 메뉴 바에서 확장 프로그램 > Apps Script를 클릭합니다.
- 새 브라우저 탭이 열리고 Google Apps Script 편집기가 표시됩니다.
Code.gs라는 기본 파일과 빈 함수myFunction()이 보일 것입니다.
여기에 사용자 지정 JavaScript 코드를 작성할 것입니다.
5단계: Google Apps Script 코드 작성
이제 Google Sheet에서 데이터를 읽어 MySMSGate API로 전송할 JavaScript 코드를 작성해 보겠습니다. 행을 반복하고, API 요청을 구성하고, 메시지를 보내는 함수를 만들 것입니다.
function sendSmsFromSheet() {
const SHEET_NAME = 'Sheet1'; // Replace with your sheet name
const API_KEY = 'YOUR_MY_SMS_GATE_API_KEY'; // Replace with your MySMSGate API Key
const API_ENDPOINT = 'https://mysmsgate.net/api/v1/send';
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
const dataRange = sheet.getDataRange();
const values = dataRange.getValues();
// Assuming headers are in the first row, start from the second row
for (let i = 1; i < values.length; i++) {
const row = values[i];
const phoneNumber = row[0]; // Phone number from the first column
const messageText = row[1]; // Message from the second column
let statusCell = sheet.getRange(i + 1, 3); // Status in the third column (row index + 1, column index)
// Skip if phone number or message is empty, or if status is already 'Sent'
if (!phoneNumber || !messageText || statusCell.getValue() === 'Sent') {
continue;
}
try {
const payload = {
'api_key': API_KEY,
'number': phoneNumber,
'message': messageText
// 'device_id': 'YOUR_DEVICE_ID' // Optional: Specify a connected Android device ID
// 'sim_slot': 1 // Optional: Specify SIM slot (1 or 2) if dual SIM
};
const options = {
'method': 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload)
};
const response = UrlFetchApp.fetch(API_ENDPOINT, options);
const responseData = JSON.parse(response.getContentText());
if (responseData.success) {
statusCell.setValue('Sent');
Logger.log('SMS sent successfully to ' + phoneNumber);
} else {
statusCell.setValue('Failed: ' + responseData.message);
Logger.log('Failed to send SMS to ' + phoneNumber + ': ' + responseData.message);
}
} catch (e) {
statusCell.setValue('Error: ' + e.message);
Logger.log('Error sending SMS to ' + phoneNumber + ': ' + e.message);
}
// Optional: Add a small delay to avoid hitting API rate limits if sending many messages
// Utilities.sleep(1000);
}
}
코드 설명:
SHEET_NAME: Google Sheet 탭의 정확한 이름(예: 'Sheet1', 'SMS List')과 일치하는지 확인하세요.API_KEY: 중요:'YOUR_MY_SMS_GATE_API_KEY'를 MySMSGate 대시보드의 실제 API 키로 교체하세요.API_ENDPOINT: MySMSGate 메시지 발송을 위한 API 엔드포인트입니다.sheet.getDataRange().getValues(): 활성 시트의 모든 데이터를 가져옵니다.- 행 반복:
for루프는 헤더 행을 건너뛰기 위해i = 1부터 시작합니다. phoneNumber및messageText: 이 변수들은 각 행의 첫 번째(인덱스 0)와 두 번째(인덱스 1) 열에서 데이터를 추출합니다. 열이 다른 경우 이 인덱스를 조정하세요.statusCell: 현재 행의 세 번째 열(인덱스 2)에 있는 셀에 대한 참조를 가져옵니다. 여기에 상태를 업데이트할 것입니다.payload: 이 JSON 객체는 MySMSGate API에 필요한 데이터(api_key,number,message)를 포함합니다. 여러 장치 또는 듀얼 SIM 휴대폰이 연결되어 있고 사용할 장치를 지정하려는 경우 선택적으로device_id및sim_slot을 포함할 수 있습니다.UrlFetchApp.fetch(): 이는 HTTP 요청을 만드는 Google Apps Script의 메서드입니다. JSON 페이로드를 사용하여 POST 요청을 보냅니다.- 응답 처리: 스크립트는 API 응답을 파싱하고 '상태' 열을 'Sent' 또는 오류 메시지와 함께 'Failed'로 적절히 업데이트합니다.
API 매개변수에 대한 자세한 내용은 MySMSGate API 문서를 참조하세요.
6단계: SMS 발신자 구성 및 테스트
코드를 Apps Script 편집기에 붙여넣은 후 저장하고 필요한 권한을 부여해야 합니다.
- 스크립트 저장: 플로피 디스크 아이콘(프로젝트 저장) 또는 파일 > 저장을 클릭합니다.
- 함수 선택: 코드 편집기 위의 툴바에 드롭다운 메뉴가 있습니다('myFunction' 또는 'sendSmsFromSheet'라고 표시될 수 있습니다).
sendSmsFromSheet를 선택합니다. - 스크립트 실행: '실행' 아이콘(오른쪽을 가리키는 삼각형)을 클릭합니다.
- 권한 부여: 외부 서비스 또는 스프레드시트에 액세스하는 스크립트를 처음 실행하면 Google에서 승인을 요청합니다. 다음 단계를 따르세요:
- '권한 검토'를 클릭합니다.
- Google 계정을 선택합니다.
- 요청된 권한(예: '모든 Google Sheets 스프레드시트 보기, 수정, 생성 및 삭제', '외부 서비스에 연결')을 검토합니다.
- '허용'을 클릭합니다.
- 시트 확인: 성공적으로 승인되면 스크립트가 실행됩니다. Google Sheet로 돌아가세요. '상태' 열이 성공적으로 전송된 메시지의 경우 'Sent'로, 오류 메시지와 함께 실패한 경우 'Failed'로 업데이트된 것을 볼 수 있습니다.
- 휴대폰 확인: 연결된 Android 휴대폰에서 메시지가 전송되었는지 확인합니다.
오류가 발생하면 Apps Script 편집기의 '실행' 탭에서 로그 및 오류 세부 정보를 확인하세요. 일반적인 문제로는 잘못된 API 키, 잘못된 형식의 전화번호 또는 빈 메시지 등이 있습니다.
7단계: 트리거를 이용한 SMS 발송 자동화
스크립트를 수동으로 실행하는 것은 테스트에는 좋지만, Google Sheets SMS 자동화의 진정한 힘은 트리거에서 나옵니다. 다양한 이벤트에 따라 스크립트가 자동으로 실행되도록 설정할 수 있습니다.
- 시간 기반: 새로운 행을 처리하기 위해 매시간, 매일, 매주 등으로 스크립트를 실행합니다.
- 양식 제출 시: Google Form으로 시트가 채워지는 경우, 새 양식 제출 직후 SMS를 보냅니다.
- 편집 시: 특정 셀 또는 범위가 편집될 때 스크립트를 트리거합니다.
시간 기반 트리거를 설정하는 방법은 다음과 같습니다.
- Apps Script 편집기에서 왼쪽 사이드바의 '트리거' 아이콘(시계)을 클릭합니다.
- 오른쪽 하단 모서리의 '+ 트리거 추가'를 클릭합니다.
- 트리거 구성:
- 실행할 함수 선택:
sendSmsFromSheet - 실행할 배포 선택:
Head - 이벤트 소스 선택:
Time-driven - 시간 기반 트리거 유형 선택: 예:
Hour timer - 시간 간격 선택: 예:
Every hour
- 실행할 함수 선택:
- '저장'을 클릭합니다.
이제 Google Sheet는 지정된 간격으로 보낼 새 메시지를 자동으로 확인하여 SMS 캠페인을 완벽하게 자동화합니다. 또한, 통합 가이드에 자세히 설명된 대로 Zapier, Make.com 또는 n8n과 같은 도구와 MySMSGate를 통합하여 더 복잡한 자동화 워크플로우를 만들 수 있습니다.
8단계: 고급 팁 및 사용 사례
Google Sheets에서 SMS를 보내는 기본 사항을 마스터했다면, 자동화를 극대화하기 위해 다음 고급 팁을 고려해 보세요.
- 개인화: 시트에 더 많은 열(예: 고객 이름, 주문 번호)을 추가하고 스크립트 내에서 메시지 텍스트에 동적으로 삽입하세요.
- 양방향 통신: MySMSGate는 모든 수신 SMS를 웹 대시보드로 자동 전달합니다. 웹 대화 인터페이스를 사용하여 직접 답장할 수 있어 브라우저에서 채팅과 같은 경험을 할 수 있습니다.
- 오류 처리 및 로깅: 더 나은 모니터링을 위해 스크립트를 개선하여 성공/실패 메시지를 더 자세히 로깅하고, 별도의 '로그' 시트에 기록할 수도 있습니다.
- 비용 관리: MySMSGate의 투명한 SMS당 $0.03 가격으로 비용을 쉽게 계산할 수 있습니다. Twilio와 같은 경쟁사(SMS당 $0.05-$0.08 및 전화번호 및 10DLC 등록에 대한 추가 요금)와 비교할 때, MySMSGate는 특히 소규모 비즈니스 또는 대량 발송자에게 상당한 비용 절감 효과를 제공합니다.
- 전용 장치/SIM: 여러 Android 휴대폰이 MySMSGate에 연결되어 있는 경우, 특정 메시지를 보내는 데 사용할
device_id또는sim_slot을 지정하여 다중 지점 관리 또는 개별 발신자 ID를 활성화할 수 있습니다. - 메시지 예약: Google Apps Script 트리거가 예약을 할 수 있지만, 더 정확한 예약을 위해서는 시트에서 메시지 큐를 관리하고 예약 시간이 되면 스크립트가 메시지를 보내도록 할 수 있습니다.
이러한 기능을 활용하면 Google Sheet가 비즈니스를 위한 강력하고 통합된 커뮤니케이션 플랫폼이 될 수 있습니다.
자주 묻는 질문
Google Sheets에서 개인화된 SMS를 보낼 수 있나요?
네, 물론입니다! Google Sheet에 개인화된 데이터(예: 고객 이름, 주문 번호 또는 특정 날짜)를 위한 열을 추가하면 Google Apps Script를 쉽게 수정하여 이 정보를 SMS 메시지에 동적으로 삽입할 수 있습니다. 이를 통해 수신자와 매우 관련성 높고 매력적인 커뮤니케이션을 할 수 있습니다.
Google Sheets에서 SMS를 보내는 것이 비싼가요?
비용은 사용하는 SMS 게이트웨이에 따라 다릅니다. MySMSGate를 사용하면 Google Sheets에서 SMS를 보내는 것이 매우 저렴하며, 월별 요금이나 계약 없이 SMS당 $0.03에 불과합니다. 이는 전화번호 및 규정 준수에 대한 추가 요금과 함께 SMS당 $0.05-$0.08을 부과하는 Twilio와 같은 많은 기존 SMS API보다 훨씬 저렴합니다. MySMSGate의 자체 Android 휴대폰 사용 모델은 비용을 낮추는 데 도움이 됩니다.
Google Sheets에서 SMS를 자동화하려면 코딩 기술이 필요한가요?
이 튜토리얼에서 설명하는 방법의 경우, JavaScript(Google Apps Script)에서 코드를 복사하여 붙여넣고 간단한 변수를 이해하는 기본적인 지식이 도움이 됩니다. 전문 개발자가 될 필요는 없습니다. 제공된 코드 스니펫은 약간의 수정(API 키, 시트 이름)만으로 바로 사용할 수 있습니다. 비기술 사용자를 위해 MySMSGate는 SMS를 직접 보낼 수 있는 웹 대시보드를 제공하며, 사용자 지정 코드를 작성하지 않고도 Google Sheets에 연결할 수 있는 Zapier, Make.com 및 n8n과의 노코드 통합도 제공합니다.
Google Sheets에서 SMS 전송 상태를 어떻게 추적할 수 있나요?
이 튜토리얼에서는 MySMSGate API 응답 직후 'Sent' 또는 'Failed'로 업데이트되는 '상태' 열을 Google Sheet에 포함했습니다. 더 자세한 실시간 전송 추적을 위해 MySMSGate는 전송 상태 업데이트를 자체 시스템으로 푸시할 수 있는 웹훅을 제공하며, 더 고급 Google Apps Script는 이를 처리하여 시트 또는 다른 데이터베이스에 업데이트할 수 있습니다.
Google Sheets SMS를 위한 MySMSGate의 대안은 무엇인가요?
MySMSGate는 독특하고 비용 효율적인 솔루션을 제공하지만, Twilio, Vonage 또는 Plivo와 같은 기존 SMS API도 Google Apps Script와 통합될 수 있는 대안입니다. 그러나 이러한 API는 일반적으로 메시지당 비용이 더 높고 월별 요금이 부과되며, 미국에서는 10DLC 등록과 같은 규정 준수 프로세스가 필요합니다. MySMSGate의 자체 Android 휴대폰 사용은 이러한 복잡성과 비용을 제거하여 많은 소규모 비즈니스 및 개발자에게 우수한 Twilio 대안이 됩니다.
Comments (0)
Be the first to comment!