탭플 밋

서비스 연동하기

캘린더와 화상회의, Slack, 광고·분석 도구를 연결하고 API 키와 웹훅으로 예약을 주고받아요.

이 페이지에서
  1. 누가 연결하나요
  2. Google Calendar와 Google Meet
  3. 탭플 캘린더
  4. Zoom
  5. Slack 알림
  6. 광고·분석 도구
  7. Zapier
  8. API와 웹훅
  9. API 키
  10. 웹훅
  11. 요금제가 바뀌면

서비스 연동 › 연동에는 연결할 수 있는 서비스가 카드로 모여 있어요. 카드마다 이름과 하는 일, 지금 상태가 보여요. 연결한 서비스는 설정이나 관리로 다시 열어요. 준비 중인 서비스에는 준비 중 표시만 있고 누를 수 있는 버튼이 없어요.

묶음쓸 수 있는 서비스준비 중
캘린더와 화상회의Google Calendar, 탭플 캘린더, Google Meet, ZoomMicrosoft Teams, 다른 캘린더(Outlook · Apple · 네이버 · 네이버웍스)
알림Slack카카오 비즈니스 채널, Gmail, Outlook Mail
마케팅 분석Meta Pixel, Google Analytics 4없음
자동화와 개발Zapier(웹훅으로 연결), API·웹훅Google Sheets

누가 연결하나요

  • 사람마다: Google Calendar, 탭플 캘린더, Zoom은 각자 자기 계정으로 연결해요. 멤버도 직접 연결할 수 있어요.
  • 조직 전체: Slack, Meta Pixel, Google Analytics 4는 조직에 하나씩이고 소유자와 관리자가 연결해요. 멤버에게는 상태만 보이고 버튼이 막혀 있어요.
  • API와 웹훅: 소유자와 관리자가 관리하고 Tabple Pro와 평생 Pro 조직에서 써요.

조직 전체에 걸리는 연동을 연결하거나 바꾸거나 해제하면 활동 기록에 남아요.

Google Calendar와 Google Meet

Google Calendar를 연결하면 캘린더 일정이 있는 시간에는 예약을 받지 않고 확정된 예약을 캘린더에 넣어요. Google Meet은 따로 연결하지 않아요. Google Calendar가 연결돼 있으면 Google Meet 카드가 쓸 수 있어요로 바뀌고 만나는 방법이 Google Meet인 예약에 회의 링크가 만들어져요. 자세한 방법은 캘린더 연결하기에 있어요.

탭플 캘린더

탭플 캘린더를 연결하면 탭플 캘린더에 일정이 있는 시간에는 예약을 받지 않고, 확정된 예약을 예약 유형과 예약자 이름으로 탭플 캘린더에 넣어요. 탭플 계정을 먼저 연결해야 하고, 연결은 탭플 동의 화면에서 마쳐요. 무엇이 오가는지와 끊는 방법은 탭플 캘린더에 있어요. 이 서버에서 쓸 수 없으면 카드에 준비 중만 보여요.

Zoom

Zoom을 연결하면 만나는 방법이 Zoom인 예약에 회의방이 저절로 만들어져요. 연결은 사람마다 따로 해요.

  1. Zoom 카드에서 연결을 눌러요.
  2. Zoom에 로그인하고 권한을 허용해요.
  3. 카드에 연결됨과 Zoom 계정 이메일이 보이면 끝이에요.
  • 회의방은 예약이 확정될 때 만들어지고 링크가 확정 메일과 예약 완료 화면에 들어가요.
  • 회의방은 예약을 맡은 진행자의 Zoom 계정으로 만들어요. 그 진행자가 연결해 두지 않았으면 회의방이 생기지 않아요.
  • 예약 시간이 바뀌면 같은 회의방의 시간만 고쳐서 링크는 그대로예요. 예약을 취소하면 회의방도 지워져요.
  • 연결이 끊기면 카드에 다시 연결 필요와 다시 연결이 보여요. 연결 해제를 하면 새로 확정되는 예약에 회의방이 만들어지지 않아요.

참고

Zoom 카드가 보이지 않으면 지금은 Zoom을 연결할 수 없는 상태예요.

Slack 알림

예약이 생기거나 바뀌면 조직의 Slack 채널로 알려요. 연결에는 Slack의 수신 웹훅(Incoming Webhooks) 주소가 필요해요.

  1. Slack 앱 설정에서 Incoming Webhooks를 켜고 알림을 받을 채널을 골라 수신 웹훅 주소를 만들어요.
  2. 탭플 밋의 Slack 카드에서 연결을 눌러요.
  3. 수신 웹훅 주소에 만든 주소(https://hooks.slack.com/services/…)를 붙여 넣어요.
  4. 알릴 소식에서 받을 것을 골라요.
  5. 연결을 누르고 대화상자의 테스트 보내기로 채널에 메시지가 오는지 확인해요.
알릴 소식보내는 때처음 연결할 때
새 예약예약이 들어오면켜짐
확정확인이 필요한 예약을 확정하면꺼짐
취소예약이 취소되거나 거절되면켜짐
변경예약 시간이 바뀌면켜짐

채널에는 소식마다 예약 유형, 예약자 이름, 일정, 진행자와 콘솔에서 보기 링크가 보여요. 시간이 바뀐 소식에는 이전 일정도 함께 나와요. 일정의 시각은 조직의 기본 업무시간 시간대로 적혀요.

  • 예약자의 이메일과 전화번호는 보내지 않아요. 채널에는 조직 밖 사람도 들어올 수 있어서예요.
  • 예약자가 직접 한 일, 콘솔에서 한 일, API 키로 한 일 모두 같은 소식으로 가요.
  • Slack이 잠시 응답하지 않으면 짧은 간격으로 두 번 더 보내 봐요. 끝내 보내지 못해도 예약에는 영향이 없어요.
  • hooks.slack.com/services/로 시작하는 주소만 받아요. 워크플로 빌더가 만든 주소는 쓸 수 없어요.
  • 저장한 주소는 보안상 끝 네 글자만 다시 보여 줘요. 알릴 소식만 바꿀 때는 설정을 열어 주소 칸을 비워 둔 채 소식을 고르고 저장해요. 다른 채널로 바꿀 때만 새 주소를 붙여 넣어요.
  • 테스트 메시지가 오지 않으면 대화상자에 이유가 보여요. Slack이 거절했다면 주소와 채널이 남아 있는지, 연결하지 못했다면 잠시 뒤 다시 확인해 주세요.
  • 대화상자의 연결 해제를 누르면 채널로 예약 알림을 보내지 않아요.

광고·분석 도구

Meta Pixel과 Google Analytics 4를 연결하면 예약 페이지 방문과 예약 완료를 그 도구의 보고서에서 볼 수 있어요. 소유자와 관리자가 연결해요.

  1. Meta Pixel 또는 Google Analytics 4 카드에서 연결을 눌러요.
  2. 값을 적어요.
    • Meta Pixel은 픽셀 ID예요. 이벤트 관리자의 데이터 소스에서 픽셀을 고르면 보이는 숫자(5~20자리)예요.
    • Google Analytics 4는 측정 ID예요. 관리의 데이터 스트림에서 웹 스트림을 고르면 보이는 G-로 시작하는 값이에요. 소문자로 적어도 대문자로 맞춰 저장해요.
  3. 연결을 눌러요. 예약 페이지를 새로 열면 적용돼요.
도구보내는 이벤트
Meta Pixel예약 페이지를 열면 PageView, 예약을 마치면 Schedule
Google Analytics 4예약 페이지를 열면 page_view, 예약을 마치면 generate_lead와 booking_complete
  • 예약 홈과 예약 유형의 예약 화면에 심어요. 여러 예약 유형을 묶은 예약 페이지, 팀 예약 페이지, 예약 변경·취소 화면, 웹사이트에 넣은 예약 위젯 안에는 심지 않아요.
  • 예약자의 이름과 이메일은 보내지 않아요. 주소에 이름·이메일·전화번호를 붙여 보낸 링크라도 도구에 보내기 전에 주소에서 그 값을 지워요.
  • ID를 바꾸려면 카드의 설정을 눌러요. 그만 쓰려면 같은 대화상자에서 연결 해제를 눌러요.
  • 연결하면 예약 페이지 방문 기록이 Meta나 Google로 넘어가요. 운영하는 곳의 개인정보 처리방침에 이 사실을 적어 두세요.

Zapier

Zapier는 웹훅으로 이어요. Zapier가 만든 주소를 탭플 밋의 웹훅으로 등록하면 예약 소식이 Zap으로 가요. 웹훅을 거치기 때문에 Tabple Pro와 평생 Pro 조직에서 쓸 수 있어요.

  1. Zapier에서 새 Zap을 만들고 트리거로 Webhooks by Zapier의 Catch Hook을 골라요.
  2. Zapier가 보여 주는 웹훅 주소(https://hooks.zapier.com/…)를 복사해요.
  3. 탭플 밋의 Zapier 카드에서 웹훅 등록하러 가기를 눌러요. 서비스 연동 › API·웹훅이 열려요.
  4. 새 웹훅을 누르고 받을 주소에 복사한 주소를 붙여 넣어요. 받을 이벤트를 고르고 등록을 눌러요.
  5. 예약을 한 건 넣어 보고, Zapier에서 요청이 들어왔는지 확인한 뒤 다음 동작(시트에 한 줄 쌓기, 메일 보내기 등)을 이어 붙여요.

테스트 전송은 예약 정보가 없는 알림이에요. Zapier에서 예약자 이름이나 일정 같은 항목을 연결하려면 실제 예약을 한 건 받아 보는 편이 좋아요.

API와 웹훅

내 서버에서 탭플 밋의 예약을 읽고 처리하거나(API 키), 예약이 생기고 바뀔 때마다 소식을 받을 수 있어요(웹훅). Tabple Pro와 평생 Pro 조직에서 쓸 수 있어요. 기준은 조직 소유자의 요금제예요. 소유자와 관리자가 서비스 연동 › API·웹훅에서 관리해요. 연동 카드 가운데 API·웹훅의 API·웹훅 열기로도 갈 수 있어요. 받는 쪽 서버를 만들어야 하니 개발자와 함께 설정하세요.

API 키

  1. 새 API 키를 누르고 이름을 적어요. 어디에 쓰는 키인지 알아볼 수 있게 적어 주세요.
  2. 할 수 있는 일을 골라요. 읽기 전용은 예약 유형과 예약, 예약 가능한 시간, 웹훅을 조회만 해요. 읽기·쓰기는 여기에 예약 확정·취소·시간 변경·노쇼 처리와 웹훅 관리까지 해요.
  3. 발급을 누르면 키가 딱 한 번 보여요. 복사해서 연동할 서버의 비밀 설정에 넣어 두세요.
  • 요청마다 X-Api-Key 헤더에 키를 넣어요. 주소는 https://meet.tabple.com/v1로 시작해요.
  • 먼저 GET /v1/integration/me를 불러 조직과 키 정보가 오는지 확인해 보세요.
  • 키는 서버에서만 쓰세요. 브라우저나 앱에 넣으면 누구나 꺼내 갈 수 있어요.
  • 키를 잃어버렸다면 폐기하고 새로 발급해요. 폐기하면 그 키로 오는 요청은 바로 거절돼요.

키로 할 수 있는 일은 정해져 있어요.

  • 인증 확인
  • 예약 유형 목록과 상세, 예약할 수 있는 시간
  • 예약 목록(기간·상태·예약 유형으로 거르기)과 상세, 확정·취소·시간 변경·노쇼 처리
  • 웹훅 등록·수정·삭제, 비밀키 재발급, 테스트 전송, 전달 이력

멤버와 로그인, 요금제, API 키 관리는 키로 할 수 없어요. 키 하나로 1분에 1,000번까지 부를 수 있고, 넘으면 429 응답과 함께 Retry-After 헤더로 기다릴 시간을 알려 줘요. 키로 한 일은 활동 기록에 키 이름과 함께 남아요.

웹훅

  1. 새 웹훅을 누르고 받을 주소를 적어요. https 주소만 쓸 수 있고, 내부망(사설·루프백) 주소로는 보낼 수 없어요.
  2. 받을 이벤트를 골라요. 메모에는 어떤 연동인지 적어 둘 수 있어요.
  3. 등록을 누르면 서명 비밀키가 한 번 보여요. 받는 쪽 서버에 넣어 두세요.

받을 수 있는 이벤트는 다섯 가지예요.

이벤트보내는 때
booking.created예약이 새로 생길 때. 바로 확정되는 유형이면 확정 상태로, 확인한 뒤 확정하는 유형이면 확정 대기 상태로 와요. 한 예약에 한 번만 와요.
booking.confirmed확정 대기였던 예약을 확정할 때
booking.rescheduled예약 시간이 바뀔 때. 이전 시간도 함께 와요.
booking.canceled예약이 취소될 때. 예약자가 취소했는지 조직이 취소했는지도 함께 와요.
booking.no_show노쇼로 표시할 때

본문은 JSON이고 예약, 예약 유형, 예약자, 진행자, 일정, 회의 링크, 변경·취소 주소가 들어 있어요. 예약 유형에서 예약자의 변경이나 취소를 막아 두었다면 막은 쪽 주소(reschedule_url, cancel_url)는 null로 와요. 요청마다 X-TabpleMeet-Signature 헤더가 붙어요. JSON으로 바꾸기 전, 받은 그대로의 본문 문자열과 비밀키로 아래처럼 확인하면 탭플 밋이 보낸 요청인지와 5분 안에 보낸 것인지 알 수 있어요.

서명 확인 예시 코드
import { createHmac, timingSafeEqual } from 'node:crypto';

// rawBody: JSON으로 바꾸기 전, 받은 그대로의 본문 문자열
// secret: 비밀키 전체(앞의 whsec_ 까지 포함)
function verify(header, rawBody, secret) {
  const parts = header.split(',').map((p) => p.split('='));
  const t = Number(parts.find(([k]) => k === 't')?.[1]);
  if (!t || Math.abs(Date.now() / 1000 - t) > 300) return false;
  const expected = createHmac('sha256', secret).update(`${t}.${rawBody}`).digest();
  return parts
    .filter(([k]) => k === 'v1')
    .some(([, v]) => {
      const given = Buffer.from(v, 'hex');
      return given.length === expected.length && timingSafeEqual(given, expected);
    });
}
  • 2xx로 답하면 전달된 것으로 봐요. 그 밖의 응답을 받거나 10초 안에 답이 없으면 1분 · 5분 · 30분 · 2시간 · 6시간 · 12시간 뒤에 다시 보내요.
  • 같은 이벤트가 두 번 갈 수도 있으니 본문의 id로 이미 처리한 이벤트인지 확인하세요.
  • 연속 실패가 20번을 넘고 하루 넘게 이어지면 웹훅이 저절로 꺼져요. 받는 쪽을 고친 뒤 테스트 전송으로 확인하고 다시 켜세요.
  • 전달 이력에서 응답 코드와 받는 쪽 응답(앞 2KB까지)을 봐요. 다시 보내기를 누르면 같은 이벤트를 한 번 더 보내요. 이력은 30일 동안 남아요.
  • 비밀키 재발급을 하면 24시간 동안은 새 키와 이전 키로 함께 서명해요. 받는 쪽 설정을 바꾸는 동안에도 확인이 끊기지 않아요. 이전 키가 새어 나갔다면 이전 키 지금 끊기로 바로 끊어요.
  • 조직마다 웹훅은 10개까지 등록할 수 있어요.

요금제가 바뀌면

Pro에서 내려가도 만들어 둔 키와 웹훅은 지우지 않아요. Pro가 아닌 동안 키로 오는 요청은 거절되고, 웹훅은 보내지 않은 채 이력에 이유를 남겨요. 폐기·끄기·삭제는 계속 할 수 있어요. 다시 Pro가 되면 그대로 이어져요. 요금제가 바뀐 뒤 반영까지는 1분쯤 걸릴 수 있어요.

가이드 검색

검색 목록을 불러오고 있어요.