커피 한 잔, 버스표 한 장, 공책 한 권. 스프레드시트를 열 때쯤이면 이런 작은 구매는 잊기 쉽습니다. Telegram 메시지 하나로 구매를 기록하고, 메시지 하나를 더 보내 이번 달 내역을 확인할 수 있다면 어떨까요?
이 튜토리얼에서는 Telegram과 Google Sheets로 만드는 지출 기록 봇, Pocket Ledger를 구축합니다. 구매 내용을 보내고, 제안된 세부 정보를 확인한 다음, 월별 합계를 물어보세요. 스프레드시트는 행을 보관하고 계산을 수행하며, 봇은 대화를 담당합니다. 완성된 결과부터 보겠습니다.

스프레드시트에서도 같은 결과를 확인할 수 있습니다. EUR 4.50짜리 커피를 추가하면 EUR 7.70이 EUR 12.20이 되고, USD 6.00은 별도로 유지됩니다.
스크린샷은 가상의 지출로 실제 실행한 데모를 보여줍니다. 저장된 행을 Inbox의 Action 호출과 대조한 뒤, Telegram 답변 두 개를 Google Sheets가 반환한 값과 비교했습니다. 게시된 캡처에서는 개인 식별 정보와 인증 정보를 가렸습니다.
첫 번째 목표는 커피 한 잔 저장하기입니다. 두 번째는 스프레드시트에서 검증할 수 있는 합계 조회하기입니다. 채팅의 “저장했습니다”라는 답변만으로는 증거가 절반뿐인 이유도 알아봅니다.
Pocket Ledger 설정 키트를 다운로드하면 서식이 적용된 시작용 통합 문서, 아바타, 프롬프트, Action 설정, 테스트 시트를 받을 수 있습니다. Quickchat AI가 만든 스프레드시트에 통합 문서를 가져온 다음 아래 단계를 따르세요. 복사 가능한 예시는 모두 영어와 2026년 11월을 사용하므로 결과를 스크린샷과 비교할 수 있습니다.
Telegram 지출 기록 봇을 만들려면 무엇이 필요한가요?
Telegram, Google 계정, Quickchat AI 계정이 필요합니다. 대시보드 설정과 스프레드시트 수식을 사용하므로 별도로 호스팅할 프로그램은 없습니다.
- Quickchat AI 계정을 만들고 인증을 완료한 다음,
Pocket Ledger라는 Agent를 만드세요. - 새 스프레드시트에 사용할 Google 계정을 준비하세요. 먼저 아래 가상 기록으로 시작합니다.
- 이 실습에는 새 Telegram 봇을 사용하세요. 마지막 접근 테스트를 위해 신뢰할 수 있는 두 번째 Telegram 계정도 준비하세요.
Quickchat AI의 Free 요금제는 개인의 비상업적 학습용이며 사용량이 제한됩니다. AI 대화와 Simulation Testing은 크레딧을 사용합니다. 계속 사용할 요금제를 선택하기 전에 현재 요금제와 사용 한도를 확인하세요.
두 방향, 두 Actions입니다. 행을 저장할 수 있다고 해서 Agent가 이전 합계까지 읽을 수 있는 것은 아닙니다.
1단계: 개인 Telegram 봇은 어떻게 연결하나요?
BotFather는 봇의 신원을 만듭니다. Quickchat AI는 봇 메시지에 답하는 Agent를 제공합니다.
공식 @BotFather를 열고 /newbot을 보내세요. 봇 이름을 Pocket Ledger로 지정하고 bot으로 끝나는 사용 가능한 사용자 이름을 선택하세요. /setuserpic으로 키트에 있는 아바타를 업로드하세요. 토큰은 비공개로 보관하고 Quickchat AI에 직접 붙여 넣으세요.

Quickchat AI에서 External Apps → Telegram → Your own bot을 여세요. Connect to Telegram을 선택하고 인증 정보를 Bot Token에 붙여 넣은 뒤 대화상자를 제출하세요. Enable your own bot을 켜고 Save를 선택하세요. BotFather 가이드에서 각 화면을 자세히 설명합니다.
연결된 봇에는 Telegram에서 보게 될 이름과 같은 Pocket Ledger가 표시됩니다.
Telegram에서 새 봇의 링크를 열고 비공개 채팅으로 /start를 보낸 다음 Hello를 보내세요. /start는 환영 메시지를 보내며, 일반 메시지를 보내야 아래 단계에 필요한 Inbox 대화와 발신자 메타데이터가 생성됩니다. 설정 중에는 개인 데이터를 다루는 Actions를 비활성 상태로 두세요.

Quickchat AI의 Inbox → Details → Visitor에서 이 대화를 여세요. Telegram User Id와 Telegram Chat Type을 찾으세요. 메타데이터 키는 telegram_user_id와 telegram_chat_type입니다. 마우스를 올리면 나타나는 복사 버튼으로 숫자 사용자 ID를 복사하고 채팅 유형이 private인지 확인하세요.
이 필드에서 본인의 발신자 ID를 가져오세요. 스크린샷에서는 개인 식별 정보를 가렸으므로 본인의 실제 값을 사용해야 합니다.
이 ID는 Telegram의 발신자 메타데이터에서 가져옵니다. 사용자 이름, 메시지에 입력한 숫자, 봇 자신의 ID는 각각 다른 값입니다. 다음 단계에서는 발신자 ID로 두 Action의 접근을 제한합니다.
2단계: Google 스프레드시트는 어떻게 준비하나요?
Google Sheets 연동은 스프레드시트와 초기 Action을 만듭니다. Action과 Google 권한이 같은 리소스를 가리키도록 이 파일을 그대로 사용하세요.
- Actions & MCPs → Add Action → Google Sheets를 열고 Google 계정을 승인하세요. Google Sheets 연결 가이드에서 동의 절차와 초기 설정을 설명합니다.
- 초기 Action을 즉시 끄세요. 이 Action은 활성 상태로 생성됩니다. 다시 연결할 때 이 이름으로 찾으므로
log_lead_to_google_sheet라는 이름은 유지하세요. 용도만 지출 저장으로 바꿀 것입니다. - 생성된 스프레드시트를 열고 이름을
Pocket Ledger demo로 지정하세요. 이 새 데모 파일에서 File → Import → Upload를 선택하고, 키트의pocket-ledger-starter.xlsx를 고른 다음 Replace spreadsheet를 선택한 다음 Import data를 클릭하세요. 그러면 Quickchat AI가 접근할 수 있는 파일에Expenses와Summary가 모두 준비됩니다. 이 옵션은 새 데모 스프레드시트에서만 사용하세요. - 아래의 시작용 행 세 개를 확인하세요.
Summary의 초기 합계는 EUR 7.70과 USD 6.00이어야 합니다. 6단계에서 수식을 설명하고 읽기 Action을 연결합니다.
Google Sheets 연결부터 시작하세요. 연결을 승인하면 두 Action이 사용할 스프레드시트가 생성됩니다.
탭을 직접 만들고 싶으신가요? 시작 탭의 이름을 Expenses로 바꾸세요. 이 영어 예시에서는 File → Settings → Locale → United States로 설정하세요. A:D와 F:H는 Plain text, E는 소수점 이하 두 자리의 Number로 지정한 뒤 아래 블록을 A1에 붙여 넣으세요. 헤더를 고정하고 열 너비를 늘리세요. 6단계에 따라 Summary를 추가하세요. Google에서도 기존 스프레드시트에 Excel 통합 문서를 가져오는 방법을 설명합니다.
초기 지출 세 건 복사하기
date month item category amount currency note conversation_url
2026-11-01 2026-11 coffee food 4.50 EUR synthetic example
2026-11-02 2026-11 bus ticket transport 3.20 EUR synthetic example
2026-11-03 2026-11 notebook stationery 6.00 USD synthetic example
네 번째 지출을 받을 준비가 된 시작용 지출 세 건입니다. E의 금액은 숫자이고 F의 통화 코드는 별도의 텍스트 값입니다.
conversation_url 열은 각 새 지출을 해당 대화에 연결합니다. 수동으로 입력한 예시 세 건은 비워두세요. Google의 drive.file 권한은 앱이 만들었거나 명시적으로 접근 권한을 받은 파일에 적용됩니다. 이 설정은 연동으로 생성한 스프레드시트를 사용하며 Drive 전체에 대한 접근을 허용하지 않습니다.
3단계: 본인의 채팅만 지출에 접근하도록 어떻게 제한하나요?
장부를 읽거나 쓰는 모든 Action에 Run only when을 설정하세요. 두 조건이 모두 일치해야 하므로 그룹 채팅에서는 본인 ID만으로 충분하지 않습니다.
| 메타데이터 키 | 비교 | 값 |
|---|---|---|
telegram_user_id | equals | 1단계에서 확인한 실제 숫자 발신자 ID |
telegram_chat_type | equals | private |
- 비활성 상태의
log_lead_to_google_sheetAction을 열고 Run only when을 찾으세요. - 위의 두 조건을 모두 추가하세요. 정확한 메타데이터 키와 본인 ID의 숫자를 사용하고, 사용자 이름이나
@접두사는 넣지 마세요. - Action을 비활성 상태로 유지하면서 저장하세요. 6단계에서 읽기 Action을 만들 때도 같은 조건을 적용하세요.
로컬 데모에 설정된 저장 Action의 조건입니다. 가상 ID를 실제 발신자 ID로 바꾸고, 읽기 Action에도 두 조건을 모두 적용하세요.
두 Action 모두에 두 조건을 넣어야 합니다. 다른 발신자나 그룹 채팅은 Google Sheets에 HTTP 요청이 도달하기 전에 검사에서 차단되어야 합니다.
이는 서버에서 적용되는 Action 조건입니다. 프롬프트에 “나에게만 답해”라고 쓰는 것은 접근 검사가 아닙니다. 스프레드시트 공유 설정과 Quickchat AI 계정 접근도 제한하세요.
4단계: 봇이 확인된 지출을 저장하도록 어떻게 설정하나요?
초기 Action이 스프레드시트 열 순서대로 행 하나를 추가하도록 변경하세요. 확인을 기다릴 수 있게 When to run → AI decides로 설정하세요. 그런 다음 활성화하기 전에 Agent에 확인 규칙을 부여하세요.
지출 필드 구성하기
What to ask the user first에서 잠재 고객 필드를 아래 매개변수로 바꾸세요. 매개변수 이름은 표시된 그대로 유지하세요.
| 매개변수 | 형식 | 필수 여부 | 입력할 설명 |
|---|---|---|---|
date | Text | 예 | 소유자가 확인한 YYYY-MM-DD 형식의 지출 날짜. 없으면 질문합니다. |
month | Text | 예 | 확인된 날짜에서 가져온 YYYY-MM. |
item | Text | 예 | 구매 품목의 짧은 이름. |
category | Text | 예 | 음식이나 교통처럼 소유자와 합의한 간단한 분류. |
amount | Decimal Number | 예 | 통화 기호를 제외한 양수 금액. |
currency | Text | 예 | EUR 또는 USD처럼 확인된 ISO 통화 코드. 모호한 기호는 명확히 확인합니다. |
note | Text | 아니요 | 선택 메모. 제공되지 않았다면 비워둡니다. |
기존 API Endpoint의 실제 스프레드시트 ID를 유지하세요. 범위를 Expenses!A:H로 바꾸고 POST 메서드는 유지하세요. Query Params는 valueInputOption=RAW와 insertDataOption=INSERT_ROWS로 설정하세요. URL에 이미 같은 쿼리 설정이 있다면 중복을 제거하세요.
행 추가 요청 참고값 복사하기
POST https://sheets.googleapis.com/v4/spreadsheets/YOUR_CREATED_SHEET_ID/values/Expenses!A:H:append
Query Params:
valueInputOption = RAW
insertDataOption = INSERT_ROWS
Headers:
Authorization = Bearer {{google_sheets_access_token}}
Content-Type = application/json
YOUR_CREATED_SHEET_ID는 설명을 위한 자리표시자입니다. 초기 URL에 이미 있는 실제 ID를 유지하고 그 위에 자리표시자를 붙여 넣지 마세요. Authorization 값에서는 기존 Google Sheets System Token을 선택하고, 본문에서는 내장된 대화 URL 변수를 선택하세요.
Body 탭에 다음을 입력하세요.
{"values":[["{{date}}","{{month}}","{{item}}","{{category}}","{{amount}}","{{currency}}","{{note}}","{{conversation_url}}"]]}
로컬 지출 Action 설정입니다. 본문은 셀 순서를 정의하고, 금액 매개변수의 형식은 숫자 유형을 정의합니다.
편집기에서 {{amount}}를 둘러싼 따옴표를 유지하세요. 이 정확한 자리표시자가 Decimal Number 매개변수를 참조하므로 치환하면 4.5 같은 JSON 숫자가 생성됩니다. 따옴표를 지우면 편집기의 JSON이 유효하지 않게 됩니다. 결과 스프레드시트에서 E열이 숫자이며 수식 계산에 포함되는지 확인하세요.
Google의 append API가 행을 추가합니다. RAW는 =로 시작하는 메모 같은 텍스트를 수식으로 계산하지 않고 그대로 유지합니다. 숫자 매개변수가 금액의 유형을 제공합니다.
저장 Action 설명 복사하기
Save one personal expense to the configured Google Sheet. Call only after the owner explicitly confirms the proposed date, item, category, amount and currency. Ask for missing or ambiguous fields before saving. After confirmation, append one row once. Report success only after a successful API response. If the outcome is uncertain, tell the owner to inspect the Sheet before submitting again.
Pocket Ledger에 지침 제공하기
Identity → Main Prompt를 열고 다음 내용을 붙여 넣으세요. 두 Action의 이름이 모두 들어 있으므로 요약 읽기 Action을 추가하면 두 번째 목표도 작동합니다.
Main Prompt는 Identity에 있습니다. 이 로컬 스크린샷은 필드의 위치를 보여줍니다. 아래의 복사 가능한 전체 블록을 사용하세요.
확인 규칙 덕분에 잠시 검토할 수 있습니다. 구매를 승인하기 전에 “EUR 4.50”을 “EUR 5.00”으로 수정할 수 있으며, Agent는 제안을 갱신하고 다시 확인을 요청해야 합니다.
Pocket Ledger Main Prompt 복사하기
You are Pocket Ledger, a personal expense notebook.
For an expense, collect its date, item, positive amount and ISO currency code. Suggest a simple category and include an optional note only when supplied. Ask for an explicit YYYY-MM-DD date if it is missing or relative; do not guess today's date or the owner's timezone. Clarify ambiguous currency symbols. Derive month as YYYY-MM from the confirmed date.
Show the proposed date, item, category, amount and currency. Wait for explicit confirmation. Apply corrections and ask for confirmation again. Only then call log_lead_to_google_sheet once for that expense. Do not claim it was saved unless the Action succeeds. If a request fails or its outcome is uncertain, explain that and ask the owner to inspect the Sheet before retrying.
For monthly totals, ask for an explicit month and currency when unclear, then call read_expense_summary. Quote the matching month, currency and total returned from the Sheet. Keep currencies separate. A missing summary row is unavailable, not zero. Never calculate totals from remembered conversation messages.
Personal-data Actions are restricted to the owner's private Telegram chat. If a condition blocks an Action, do not claim success or suggest changing identity values in chat. This notebook handles typed expenses, not bank accounts, voice transcription or PDF receipts.
프롬프트를 저장하고 두 실행 조건을 다시 확인한 뒤 지출 Action을 활성화하세요. 이름은 여전히 log_lead_to_google_sheet지만, 새 매개변수와 설명, 본문이 이제 지출 기록 흐름을 정의합니다.
5단계: 첫 지출은 어떻게 저장하나요?
이제 수첩에 첫 번째 새 항목을 추가하세요. Telegram, Inbox, 스프레드시트를 모두 열어 두고 같은 커피가 세 곳을 거치는 과정을 살펴보겠습니다.
- 비공개 Telegram 채팅에서
Coffee, 4.50 euros on 2026-11-04를 보내세요. - 제안을 확인하세요. 날짜는
2026-11-04, 항목은Coffee, 카테고리는Food, 금액은4.50, 통화는EUR입니다. Action은 행을 저장할 때month값을2026-11로 도출합니다. - 확인하기 전에
Expenses를 점검하세요. 초기 세 행만 그대로 있어야 합니다.


Save it을 한 번 보낸 다음 Quickchat AI Inbox에서 대화를 여세요. 저장 확인 답변에는 펼칠 수 있는 1 action called 항목이 있습니다. 열어 보면 짧은 Telegram 답변 뒤에서 어떤 일이 일어났는지 확인할 수 있습니다.
Inbox에 있는 같은 확인 답변입니다. 여기서 Action을 살펴볼 수 있습니다.
Result → Show full을 펼치세요. 날짜, 도출된 월, 숫자 금액, 통화, HTTP 상태를 확인하세요. 이 실제 실행에서 Google은 HTTP 200, updatedRows: 1, updatedRange: Expenses!A5:H5를 반환했습니다.
저장 Action은 금액 4.5를 숫자로 보내고 행 하나를 기록했습니다. 비공개 식별 정보는 가렸지만 반환된 범위와 결과는 보입니다.
마지막으로 Expenses를 여세요. 5행에 같은 커피가 있어야 하며, 월 열에는 2026-11, 금액에는 4.50, 통화에는 EUR이 들어갑니다. 마지막 열은 Inbox 대화로 연결되므로 항목을 만든 메시지까지 추적할 수 있습니다.
네 번째 지출은 Telegram을 통해 들어왔습니다. 게시된 이미지에서는 비공개 Inbox 링크를 가렸습니다.
이제 보내고, 확인하고, 점검하는 유용한 일상 습관이 생겼습니다. 다음으로는 한 달 동안 어디에 돈을 썼는지 물을 때 봇이 읽을 수 있는 믿을 만한 자료를 제공합니다.
6단계: 월별 합계는 어떻게 물어보나요?
Google Sheets가 합계를 계산하고 읽기 Action이 그 결과를 가져오게 하세요. 계산을 스프레드시트에 두면 대화가 끝난 후에도 답을 검증할 수 있습니다.
Summary 탭 추가하기
시작용 통합 문서를 가져왔다면 Summary와 수식은 이미 준비되어 있습니다. 초기 값은 EUR 7.70과 USD 6.00이며, 커피를 저장하면 EUR 행만 바뀝니다. 스프레드시트를 직접 만드는 경우 아래 단계를 따르세요.
시작 상태입니다. 통화 두 개에 각각 독립적인 합계가 있습니다.
Summary라는 탭을 만드세요. A:B 열을 Plain text로 설정한 다음 A1:C1에month,currency,total을 입력하세요.- A2:B2에
2026-11과EUR를, A3:B3에2026-11과USD를 입력하세요. - C2에 아래 수식을 입력하고 C3까지 채우세요. C열은 소수점 이하 두 자리의 숫자로 표시하세요.
=SUMIFS(Expenses!$E$2:$E$501,Expenses!$B$2:$B$501,A2,Expenses!$F$2:$F$501,B2)
SUMIFS 함수는 월과 통화가 요약 행과 일치하는 금액을 더합니다. 스프레드시트의 지역 설정이 인수 사이에 세미콜론을 요구한다면 수식의 쉼표를 세미콜론으로 바꾸세요. JSON 요청의 숫자는 여전히 소수점으로 마침표를 사용합니다.
C2를 선택하면 EUR 12.20을 계산한 수식을 볼 수 있습니다. USD 행은 6.00을 유지합니다.
초기 EUR 7.70에 새 커피 EUR 4.50을 더하면 EUR 12.20입니다. USD 6.00짜리 노트는 별도의 합계에 속합니다.
시작용 수식은 2행부터 501행까지 포함합니다. 캡처한 실행에서는 새 행을 삽입한 뒤 세 범위가 모두 502행에서 끝납니다. Sheets는 행을 삽입할 때 참조를 조정할 수 있습니다. 세 Expenses 범위가 계속 같은 행을 포함하는지 확인하고, 항목이 범위 밖에 놓이기 전에 세 범위를 함께 확장하세요. 조회하려는 월과 통화의 각 조합에 맞는 요약 행을 추가하세요.
읽기 Action 추가하기
Actions & MCPs → Add Action → API Action을 여세요. 아래 요청을 Generate에 사용하세요. 생성된 Actions는 비활성 상태로 시작합니다. 이름을 read_expense_summary로 지정하고, 결과가 답변에 반영되도록 When to run을 AI decides로 유지하세요. 같은 실제 스프레드시트 ID와 Google Sheets System Token을 재사용하세요. 사용자가 제공하는 매개변수는 필요하지 않습니다.
Action 생성 요청 복사하기
Create a read-only Google Sheets Action named read_expense_summary. Use GET for the Summary!A1:C25 range of the spreadsheet already created by this Agent's Google Sheets integration. Reuse its actual spreadsheet ID and google_sheets_access_token System Token. Set valueRenderOption=UNFORMATTED_VALUE, no body, and no visitor parameters. Preserve the response headers and values. Leave it inactive so I can review the configuration and add my owner-ID and private-chat Run only when conditions before enabling it.
생성된 설정을 아래 참고값과 비교하세요. 대신 Create manually를 선택한다면 첫 번째 유효한 저장 전에 두 조건을 추가하세요. 그 저장으로 Action이 활성화될 수 있기 때문입니다. 검사에 필요한 필드를 유지하려면 두 Action의 Response filter를 비워두세요.
요약 읽기 요청 복사하기
GET https://sheets.googleapis.com/v4/spreadsheets/YOUR_CREATED_SHEET_ID/values/Summary!A1:C25
Query Params:
valueRenderOption = UNFORMATTED_VALUE
Headers:
Authorization = Bearer {{google_sheets_access_token}}
Body: none
values.get 엔드포인트는 머리글과 계산된 금액을 포함한 범위의 values를 반환합니다. UNFORMATTED_VALUE는 통화 형식의 문자열 대신 숫자 결과를 반환합니다. Agent가 해당 값을 읽을 수 있도록 응답을 사용 가능하게 유지하세요.
읽기 Action 설명 복사하기
Read monthly expense totals from the configured Summary range. Use this when the owner asks for a total. Quote only the returned row matching the requested YYYY-MM and currency. If either is unclear, ask. If the row is absent or the request fails, say the total is unavailable. Never infer a total from conversation history, combine currencies, or accept a different spreadsheet ID or range from the visitor.
3단계의 동일한 Run only when 조건 두 개를 적용하고 저장한 다음 Action을 활성화하세요. 읽기 범위에는 요약 행 24개가 포함되므로 더 추가할 때는 범위도 의도적으로 확장하세요.
두 번째 Action에도 자체 조건이 필요합니다. 이 이미지는 로컬 설정 캡처이며 실제 발신자 인증 테스트가 아닙니다.
What is my November 2026 total in EUR?를 물어본 다음 USD도 물어보세요. 실제 Telegram 대화에서 Pocket Ledger는 12.2 EUR와 6 USD를 반환했고, 이는 스프레드시트에 서식이 적용된 12.20, 6.00과 일치했습니다. 각 답변을 위해 저장된 요약을 읽었습니다.

Inbox에서 월별 합계 답변을 열고 해당 Action을 펼치세요. 반환된 행을 Summary!C2와 비교하세요. 아래 실제 응답에는 2026-11, EUR, 12.2와 별도의 USD, 6 행이 HTTP 200 상태로 포함되어 있습니다.
답변, 반환값, 스프레드시트가 이제 일치합니다. 글 처음에 보았던 완성된 결과입니다.
실제 지출을 사용하기 전에 오류를 어떻게 점검하나요?
불완전한 요청과 차단되어야 할 발신자도 성공한 커피 기록만큼 꼼꼼히 테스트하세요. 아래 검사를 통과할 때까지 데모 데이터를 유지하세요.
| 시도할 내용 | 확인할 사항 |
|---|---|
Lunch, $12 yesterday | Agent가 통화와 정확한 날짜를 묻습니다. 새 행은 생기지 않습니다. |
| 확인 전에 제안된 금액 수정 | 수정된 제안을 확인한 뒤 행 하나가 추가됩니다. |
| 11월 합계를 EUR로 묻고 이어서 USD로 질문 | 예시 데이터에 대해 EUR 12.20과 USD 6.00이 별도로 나옵니다. |
| 12월 요약 행이 없는 상태에서 2026년 12월 질문 | Agent가 0을 만들어내지 않고 합계를 사용할 수 없다고 답합니다. |
| 두 번째 발신자가 합계를 묻고 지출 저장 시도 | 두 Action 모두 거부되며 개인 값이 공개되지 않습니다. |
| 소유자가 그룹에서 같은 요청 전송 | 비공개 채팅이 아니므로 두 Action 모두 거부됩니다. |
| 저장 실패 또는 시간 초과 | 답변에 실패 또는 불확실성이 표시됩니다. 재시도 전에 스프레드시트를 점검하세요. |
반복 가능한 언어 테스트를 하려면 Testing → Create Dataset → Paste messages를 열고 키트의 메시지와 평가 기준을 사용하세요. 확인 순서는 별도의 전체 대화로 실행하세요. Preview나 Simulation의 메타데이터는 테스트용 데이터입니다. 실제 두 번째 Telegram 발신자가 차단됨을 증명하지는 않습니다.
로컬 데이터셋은 테스트를 위해 준비된 상태입니다. 존재한다는 사실만으로 Simulation이 완료되었거나 Google Sheets에 기록되었다고 볼 수 없습니다.
동작이 잘못되면 관련 지침 하나를 수정한 뒤 같은 입력을 반복하고 호출과 스프레드시트를 다시 점검하세요. 예를 들어 행이 너무 일찍 추가된다면 저장 Action의 확인 문구를 자세히 살펴보세요. 확인은 지침이며 데이터베이스의 고유성 보장은 아닙니다. 시간 초과 후에는 다시 보내기를 누르기보다 스프레드시트를 먼저 점검하는 것이 중요합니다.
전체 과정이 작동하면 가상 지출 행을 지우고 머리글과 수식은 유지하세요. 실제로 사용하는 월과 통화의 요약 행을 추가하세요. 첫 실제 구매도 커피와 같은 간단한 순서로 기록할 수 있습니다.
AI 어시스턴트가 Pocket Ledger 설정을 도와줄 수 있나요?
연결된 계정 관리 어시스턴트는 Agent 준비와 Action 설정 검토를 도울 수 있습니다. Quickchat AI의 ChatGPT 등록 항목 또는 Claude 등록 항목을 사용해 Manage with AI 안내를 따르세요. 설정 키트와 아래 요청을 전달하세요.
Help me configure Pocket Ledger from this setup kit. Inspect the available Quickchat AI tools first. Prepare the Main Prompt and the two HTTP Actions using the exact field names, numeric amount type and fixed ranges. Keep log_lead_to_google_sheet as the starter name. Ask me to complete Google OAuth and Telegram Bot Token setup in the dashboard. Apply both owner/private run conditions before enabling either Action. Do not run credit-consuming tests or append expenses until I ask. Report any setting your tools cannot configure so I can complete it in the dashboard.
Google 동의와 Telegram 연결은 소유자가 완료합니다. 누가 설정을 입력했든 설정을 검토하고 위와 동일한 검사를 수행하세요.
자주 묻는 질문
Telegram과 Google Sheets로 지출을 어떻게 기록하나요?
Telegram 봇을 Quickchat AI Agent에 연결하고 Google Sheets를 승인하세요. 확인 후 지출을 추가하는 Action 하나와 수식으로 계산된 월별 요약을 읽는 Action 하나를 구성하세요. 두 Action 모두 본인의 Telegram 사용자 ID와 비공개 채팅으로 제한하세요.
봇이 이번 달에 얼마를 썼는지 알려줄 수 있나요?
네. 요청한 월과 통화에 해당하는 행이 설정된 Summary 범위에 있을 때 가능합니다. Google Sheets가 SUMIFS로 합계를 계산하고 읽기 Action이 가져옵니다. 행 추가 전용 Action은 합계를 조회할 수 없으며, 요약 행이 없다는 것은 0이라는 뜻이 아닙니다.
다른 사람이 Telegram 봇을 통해 제 지출을 읽을 수 있나요?
개인 데이터를 다루는 두 Action 모두 확인된 본인의 telegram_user_id와 private 값의 telegram_chat_type을 요구해야 합니다. 이 조건은 다른 발신자와 그룹의 호출을 차단합니다. 개인 데이터를 추가하기 전에 두 경우를 모두 테스트하고, 스프레드시트와 Quickchat AI 계정 접근도 제한하세요.
이 Telegram 지출 기록 봇은 무료인가요?
Telegram 봇 생성은 무료입니다. Quickchat AI의 Free 요금제는 제한된 AI 크레딧으로 개인의 비상업적 학습을 지원합니다. AI 답변과 Simulation Testing은 크레딧을 사용하므로 지속적인 사용은 남은 한도와 요금제에 따라 달라집니다.
Apps Script, Python 또는 자동화 서버가 필요한가요?
이 설정은 Quickchat AI Actions와 Google Sheets 수식을 사용합니다. 제공된 요청 설정, JSON 본문, 프롬프트를 대시보드에 붙여 넣으면 됩니다. Apps Script, Python 봇 또는 자동화 서버를 배포하지 않습니다.
기존 지출 스프레드시트를 사용할 수 있나요?
이 설정은 Quickchat AI의 Google Sheets 연동으로 만든 스프레드시트를 사용합니다. drive.file 권한은 Drive에 대한 무제한 접근을 허용하지 않습니다. 스프레드시트 ID를 임의의 기존 파일로 바꾼 뒤 접근 가능하다고 가정하지 마세요.
봇이 영수증 사진이나 음성 메시지를 읽을 수 있나요?
이 튜토리얼은 텍스트로 입력한 지출을 다룹니다. 영수증 추출을 믿고 사용하려면 Telegram 이미지 전달과 확인 절차를 별도로 테스트해야 합니다. 음성 전사와 PDF 영수증 분석은 이 설정에 포함되지 않습니다.
여러 통화와 중복 항목은 어떻게 처리하나요?
각 통화에 별도의 월별 합계가 생기며 통화를 환산하지 않습니다. 확인 절차는 실수로 생기는 항목을 줄이지만 원자적인 중복 방지는 제공하지 않습니다. 저장 중 시간이 초과되면 다시 보내기 전에 스프레드시트를 점검하세요.