Learn/Airtable 入門

在 Airtable 記錄交易匯率

建立 Airtable 資料表與定時自動化,在更新參考匯率估值的同時,保留每筆交易最初記錄的匯率。

ERexchangerate.dev·Sep 29, 2026·閱讀約 7 分鐘

分開儲存原始與最新資料:貨幣及金額準備好後,只寫入一次 Rate at transaction、來源和生效時間。定時自動化則更新 Current rate 及其相關資料,避免市場變動改寫交易的歷史記錄。

重點
明確設定 From、To、Amount、原始來源、最新監測結果及錯誤欄位。
記錄準備好後,透過自動化儲存一次原始匯率及其來源,不再重新計算這些欄位。
透過 At scheduled time 自動化更新估值,並保留 source 及 effective_at。
在 Sync status 與 Sync error 顯示失敗,不寫入零值,也不讓舊數據看似新數據。
Airtable Free 不支援 Run a script;採用此流程前請確認目前的方案限制。

建立 Transactions 表

建立 Transactions 表,加入以下欄位:From、To(single line text);Amount、Rate at transaction、Transaction converted(number);Transaction source、Transaction market session、Transaction effective at;Archived(checkbox);Current rate、Current converted(number);以及 Source、Market session、Effective at、Checked at、Sync status、Sync error。將 Transaction effective at、Effective at、Checked at 設為日期時間欄位,其餘相關資料及狀態欄位使用單行文字。建立 Needs FX refresh 檢視,篩選未勾選 Archived 的記錄,按 Checked at 由舊至新排列,空值放在最前,讓後續執行依次處理其他記錄。

兩組匯率的意思不同。Transaction * 欄位儲存供會計或審計使用的交易快照。沒有該前綴的目前欄位儲存供儀表板或估值使用的新參考觀測值。不要用目前值改寫原始記錄。

儲存原始交易匯率

建立 Airtable 自動化,選擇 When record matches conditions 觸發條件:From、To、Amount 已填寫,而 Rate at transaction 留空。加入 Run a script,將 mode 設為 snapshot,傳入觸發記錄的 recordId,然後貼上下載的指令碼。新增名為 exchangerateApiKey 的 Automation secret;指令碼透過 input.secret 讀取它,沒有密鑰存取權限的編輯者仍可執行自動化,但看不到密鑰值。只有原始匯率留空時,指令碼才寫入 Rate at transaction、Transaction converted、Transaction source、Transaction market session 及 Transaction effective at。重試時若已有數值,所有原始欄位均保持不變。

HTTP request · latest ratecopy
GET https://api.exchangerate.dev/v1/latest/{From}?symbols={To}

Authorization: Bearer EXR_KEY_FROM_A_SERVER_SIDE_SECRET
使用 Automation secret
在兩套自動化的指令碼編輯器 Secrets 區域建立 exchangerateApiKey,保持名稱不變。不要將數值放進資料表欄位、URL、共用描述或程式碼字面值。Airtable 只容許擁有相應密鑰權限的使用者編輯使用這些密鑰的指令碼。

定時更新目前估值

建立第二個自動化,選擇 At scheduled time。將 mode 設為 refresh,留空 recordId,以處理 Needs FX refresh 的首 25 筆記錄,並貼上完整的 Airtable 指令碼。每次執行最多發出 25 個 HTTP 請求,低於 Airtable 的 50 次 fetch 限制;每批最多寫入 50 筆記錄。此範例適合小型報表資料庫;較大的表需要規劃佇列及合併請求。若每天查詢 25 個不同貨幣對,30 天最多約需 750 個 API 請求,另加初始快照及重試。

重新整理只更新 Current rate、Current converted、Source、Market session、Effective at 及 Checked at,不會更新任何 Transaction * 欄位。HTTP 失敗或回應格式錯誤時,指令碼將 Sync status 設為 Error,並保留上次成功取得的目前值。

清楚顯示失敗狀態

401 表示需要檢查 Automation secret;429 表示需要檢查執行頻率或帳戶限制;缺少貨幣代碼表示貨幣對無效或不可用。保留上次成功值及原有 Checked at,並透過 Sync error 向操作人員提供診斷。不要將失敗變成匯率為零的記錄。

檢查 Airtable 方案限制

Airtable 的 Run a script 文件說明了內置 Automation secrets 及編輯權限保護。自動化限制指出 Free 方案不支援 Run a script,失敗的執行亦計入用量。報表通常每天更新便足夠;提高頻率並不能把每日參考匯率變成即日報價。

僅供參考的匯率
這些觀測值適合估算、報表及分析。付款或受監管交易必須使用相關服務供應商提供的可執行報價及結算記錄。
ER
exchangerate.dev
為使用外匯數據的開發者提供整合指南。

延伸閱讀

Reference匯率 API 入門閱讀 Tutorial在 Zapier 取得匯率閱讀 Tutorial將匯率載入 Power BI閱讀
更多比較Fixer vs exchangerate.devOpen Exchange Rates vs exchangerate.devCurrencylayer vs exchangerate.dev
學習用 JavaScript 同 Node.js 做貨幣換算用 Python 攞匯率嘅方法喺 Next.js 同 TypeScript 攞匯率
即時匯率EUR/USDGBP/USDUSD/JPY