원본 필드와 현재 필드를 분리하세요. Rate at transaction과 source, effective timestamp는 통화와 금액이 준비될 때 한 번 저장하고, Current rate와 메타데이터는 예약 자동화로 갱신합니다. 이후 시장 변동이 거래 이력을 덮어쓰지 않습니다.
Transactions 테이블 만들기
Transactions 테이블에 From(한 줄 텍스트), To(한 줄 텍스트), Amount(숫자), Rate at transaction(숫자), Transaction converted(숫자), Transaction source, Transaction market session, Transaction effective at, Archived(체크박스), Current rate(숫자), Current converted(숫자), Source, Market session, Effective at, Checked at, Sync status, Sync error를 추가합니다. 날짜/시간 필드는 날짜/시간으로, 나머지 메타데이터와 상태는 한 줄 텍스트로 만듭니다. Needs FX refresh 뷰에서 Archived가 해제된 레코드만 필터링하고 Checked at을 빈 값 우선 오래된 순으로 정렬합니다.
두 환율 그룹은 의미가 다릅니다. Transaction *은 회계 또는 감사 스냅샷이고, 접두사 없는 현재 필드는 대시보드나 추정에 쓰는 새 관측값입니다. 현재 필드로 원본을 다시 쓰지 마세요.
거래 원래 환율 저장하기
When record matches conditions 트리거를 사용해 From, To, Amount가 채워지고 Rate at transaction이 비어 있을 때 실행합니다. Run a script에서 mode를 snapshot으로 설정하고 트리거 레코드의 recordId와 exchangerateApiKey Automation secret을 전달합니다. 스크립트는 input.secret으로 읽으므로 secret 권한이 없는 편집자도 값을 보지 않고 실행할 수 있습니다. 원본 환율이 비어 있을 때만 쓰며 재시도해도 원본 필드는 유지합니다.
exchangerateApiKey를 만들고 이름을 유지하세요. 값을 필드, URL, 공유 설명, 코드에 넣지 마세요.예약으로 현재 추정값 갱신하기
두 번째 자동화를 At scheduled time으로 만들고 mode=refresh, 빈 recordId로 Needs FX refresh의 처음 25개를 처리합니다. 전체 Airtable 스크립트는 fetch를 최대 25회로 제한하고 50개 이하로 배치합니다. 25개 쌍을 매일 갱신하면 30일에 최대 750 API 요청입니다.
Refresh는 Current rate, Current converted, Source, Market session, Effective at, Checked at만 갱신하며 Transaction 필드는 건드리지 않습니다. HTTP 오류나 잘못된 응답은 Error로 표시하고 마지막 성공값을 유지합니다.
오류 표시하기
401은 Automation secret을, 429는 일정이나 계정 한도를, 없는 symbol은 잘못되거나 지원되지 않는 쌍을 확인해야 한다는 뜻입니다. 이전 Checked at을 유지하고 실패를 0 환율로 바꾸지 않습니다.
Airtable 플랜 한도 확인하기
Airtable의 Run a script 문서는 Automation secret과 편집자 보호를 설명합니다. 자동화 한도는 Free에서 Run a script를 사용할 수 없고 실패 실행도 계산된다고 설명합니다. 일일 갱신은 일일 기준값을 장중 시세로 바꾸지 않습니다.
