세일즈 콜드메일 대량으로 발송하는 방법

thumbnail-image

일일이 수기로 보내던 콜드메일, 이대로는 안 되겠다.

지난 번에 Dalpha BD/Sales 팀이 어떻게 움직이고 있는지 그 첫 번째 Step에 대해서 말씀 드렸습니다.

“간단한 코드를 통해 맞춤형 멘트를 자동 작성하여 잠재 고객사에게 매력적인 콜드메일 내용을 작성해보자!”

로 지난 번 글을 한 문장으로 요약해 볼 수 있을 것 같습니다.

맞춤형 멘트로 메일 내용 구성을 완료했다면, 이제 잠재 고객에게 메일을 발송해야겠죠?

대부분의 B2B 기업은 페르소나를 설정하고 적으면 수십에서 수백 명, 많으면 수천 명까지의 잠재 고객에게 콜드메일을 한 번에 발송하곤 합니다.

발송 대상의 수가 적으면 일일이 이메일을 발송하거나, Gmail의 bcc 기능을 활용할 수 있습니다. 그러나, 발송 대상의 수가 많을 경우 이러한 방식을 채택하면 시간 소요가 너무 심하고, 현실적으로 불가능한 일입니다.

저희 Dalpha 역시 창업 초기에는 특정 AI를 사용할 가능성이 높은 기업을 하나하나 탐색하여 일일이 콜드메일을 발송하였으나, 현재는 많은 잠재 고객사들과 컨택하고 있기에 콜드메일을 효율적으로 발송하는 방법을 탐색하기 시작하였습니다.

Stibee나 SendGrid 등 다양한 솔루션이 존재하지만, Google에서 제공하는 기능만으로도 충분히 콜드메일 대량 발송이 가능하다는 사실을 알아냈습니다.

이번 글에서는 Google Apps Script에서 코드를 사용하여 어떻게 이메일을 대량 발송할 수 있는지 설명 드리도록 하겠습니다.

그래서, 어떻게 대량으로 자동 발송하는데?

Google Apps Script는 하드 코딩이기 때문에 각자 설정하는 코드가 다를 것이며, 오늘 제가 공유 드리는 코드는 단순 참고용으로 생각해주시면 감사하겠습니다. 제가 말씀드리는 내용이 절대 정답은 아닙니다 :)

Google Spreadsheet 생성 → Apps Script에서 코드 작업 → 테스트 → 이메일 발송
총 4가지의 Step만으로 콜드메일을 발송할 수 있습니다.

그렇다면, Dalpha의 리뷰 분석 AI Selling을 위한 콜드메일 작성을 예시로 자동 발송 프로세스에 대해서 설명 드리도록 하겠습니다.

1. Google Spreadsheet 생성 및 필드 채우기

Google Spreadsheet를 생성한 이후, 이메일 발송에 필요한 필드를 채워 넣습니다.

이메일 발송에 필요한 필드는 때에 따라 매우 다르겠지만, 저희 Dalpha는 기업명, 이메일 주소, 커스텀 멘트 총 3가지만을 입력하였습니다.

excel-screenshot
(왼쪽) Sheet 1 필드 / (오른쪽) Sheet 2 필드

Sheet 1 A열에 기업명, B열에 이메일 주소, C열에 커스텀 멘트를 입력합니다.

Sheet 2 A열에 이메일 제목을 입력합니다.

2. Apps Script 코딩

필드를 다 채워 넣었다면, 상단 바의 ‘Extensions → Apps Script’에 들어가서 코드 파일을 생성합니다.

이후, ChatGPT를 활용하여 하드 코딩을 진행하였습니다.

function sendEmail() {
    //변수 설정
    const ss = SpreadsheetApp.getActiveSpreadsheet()
    const sheet1 = ss.getSheetByName('sheet1'); // 이메일 보낼 사람들과 커스텀 멘트가 들어간 시트명
    const sheet2 = ss.getSheetByName('sheet2'); // 이메일 제목이 들어간 시트명
    const subject = sheet2.getRange(2,1).getValue(); // 이메일 제목 추출
    const n = sheet1.getLastRow(); // 이메일 보낼 명단이 전체 몇 명인지 확인
    const senderName = "Dalpha 박용찬";

    // 행 반복 구문
    for (let i = 2; i < n + 1; i++) {
      const companyName = sheet1.getRange(i, 1).getValue();
      const emailAddress = sheet1.getRange(i, 2).getValue();
      const customment = sheet1.getRange(i,3).getValue();
      // 이메일 내용 작성
      const body = `
      <pre style="font-size: 12px; color: black; font-family: Arial, sans-serif;">안녕하세요,
Dalpha 박용찬입니다.

${companyName}께서 ${customment}고 들었습니다.

<strong>리뷰를 자동으로 분석하는 AI</strong>를 도입해보시는 것은 어떠실까요?
관련해서 <strong>간단한 미팅</strong>을 진행해보면 좋을 것 같습니다.

내부적으로 논의 후 편하게 회신 주시면 감사하겠습니다.

감사합니다.
박용찬 드림
    </pre>
    <img src="<https://email-14.s3.ap-northeast-2.amazonaws.com/yongchan_card.png>" alt="Image Alt Text" style="display: block; max-width: 30%; margin: 20px 0 20px 0;">
    `;

    MailApp.sendEmail({
      to: emailAddress,
      subject: subject,
      htmlBody: body,
      name: senderName,
      });
    }
}

이렇게 코드로만 설명드리면 이해가 안 가는 부분이 있으실 것 같아 조정 가능한 부분들에 한해서 자세하게 뜯어보도록 하겠습니다.

2행 ‘변수 설정’

시트에 채워 넣은 필드를 각각 변수로 설정합니다.

Sheet 1을 이메일 보낼 사람들과 커스텀 멘트가 들어간 시트명, Sheet 2의 A2셀을 이메일 제목으로 설정하는 등의 작업을 진행합니다.

해당 부분에서 변수를 설정해야 향후 이메일 내용 등의 코드를 작성할 때 변수가 적용되기 때문에 필수적인 작업이라고 할 수 있죠.

10행 ‘행 반복 구문’

행이 여러 개이기에 마지막 행까지 반복해야 하는 경우, for 문을 활용하여 변수를 설정합니다.

2행부터 마지막 행까지 입력한 잠재 고객에게 모두 메일을 발송해야 하기 때문에 이메일 주소를 ‘반복’해서 전송하는 코드를 작성합니다.

15행 ‘이메일 내용 작성’

이제 본격적으로 이메일 내용을 작성하는 코드를 입력합니다.

각 코드가 어떤 걸 의미하는지는 다음과 같습니다.

  • <pre style=___> : 이메일 내용의 폰트 사이즈나 색깔, 종류 등을 설정함
  • <strong>___</strong> : 볼드 표시하고 싶은 부분을 설정함
  • ${companyName} : 행 별로 각기 다른 회사 명을 삽입함
  • ${customment} : 행 별로 각기 다른 커스텀 멘트를 삽입함
  • img scr : 명함을 캡쳐하여 이를 이미지 url 주소로 붙여 넣고, 이미지의 크기 역시 설정할 수 있음

모든 코드를 입력하였다면 꼭 Save project를 누르고 코드 작업을 마무리해야 합니다.

Save를 누르지 않으면 발송 자체가 되지 않으니 참고해주세요!

또한, Save를 눌렀는데 오류가 발생한다면 어떤 코드가 잘못 되었는지 확인해야 합니다.

3. 발송 테스트

본격적으로 이메일을 발송하기 전에, 설정해 놓은 코드대로 이메일이 잘 발송되는지 확인해야 하기 때문에 발송 테스트를 해야 합니다.

excel-to-email
(왼쪽) 테스트용 필드 (오른쪽) 테스트 발송 이메일 내용

Sheet 1에 본인의 기업명, 이메일 주소, 커스텀 멘트를 채워 넣고 이메일을 내게 쓰기로 미리 테스트해겠습니다.

의도한대로 이메일이 잘 발송되는 것을 확인할 수 있습니다.

만약 코드에 오류나 오타가 있는데 발송 테스트를 해보지 않고 바로 발송을 하게 될 경우, 잠재 고객사에게 돌이킬 수 없는 실수를 하게 될 수 있으니 발송 테스트는 “꼭” 해보시는 것을 추천드립니다.

4. 이메일 발송

이메일이 잘 전송되는지 확인했으니, 이제 Sheet 1에 본인 정보를 빼고 발송 대상 정보를 모두 채운 후 이메일을 발송하면 됩니다.

email-list
(왼쪽) 발송 이메일 내용 (오른쪽) 실제 발송 로그

저희 Dalpha가 전송하였던 이메일 예시입니다.

실제로 Dalpha는 최근 이러한 방식으로 “STT 요약 AI”를 제공하기 위한 콜드메일을 발송하였습니다.

발송 대상 정보를 수집한 이후 15분 만에 이메일을 약 150개의 기업에게 발송하여, 효율적으로 시간을 단축할 수 있었습니다.

전체 발송 기업 중 약 10%의 기업에게 회신이 왔고, 해당 기업들과 모두 비즈니스 미팅을 진행할 수 있었습니다.

효율적으로 움직이는 BD/Sales 팀이 되자!

최근 Dalpha BD/Sales 팀은 Scale-up을 위하여 어떻게 하면 더욱 일을 효율적/효과적으로 할 수 있을까에 대한 고민을 깊이 하고 있습니다.

기업의 수작업을 줄여주기 위한 AI 솔루션을 개발하고 있는 기업인데, 팀 내부적인 일을 수작업으로 하고 있으면 굉장한 모순이겠죠? :)

그 First Step으로 자동화에 힘쓰고 있으며, 오늘 공유드린 메일 발송 자동화도 그 일환이라고 할 수 있습니다.

앞으로 저희 팀은 계속해서 업무 자동화를 0 to 1으로 고민할 것이고, 그러한 과정에서 생긴 노하우를 편하게 공유 드리도록 하겠습니다.

다음에도 BD/Sales 팀의 Insight를 온전히 전달 드릴 수 있도록 노력하겠습니다 :)