แยกข้อมูลเดิมออกจากข้อมูลปัจจุบัน: กรอก Rate at transaction แหล่งที่มา และเวลาที่มีผลเพียงครั้งเดียวเมื่อสกุลเงินและจำนวนพร้อม จากนั้นระบบตามเวลาจะอัปเดต Current rate และ metadata โดยไม่เขียนทับประวัติธุรกรรมเมื่อราคาตลาดเปลี่ยน
สร้างตาราง 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 ใช้ date/time กับฟิลด์เวลา และ single line text กับ metadata และสถานะ สร้าง view Needs FX refresh กรองรายการที่ยังไม่ Archived และเรียง Checked at จากเก่าไปใหม่ โดยให้ค่าว่างอยู่ก่อน
อัตราสองกลุ่มมีความหมายต่างกัน ฟิลด์ Transaction * คือ snapshot สำหรับบัญชีหรือ audit ส่วนฟิลด์ปัจจุบันคือ observation ใหม่สำหรับ dashboard หรือการประมาณ อย่าใช้ค่าปัจจุบันเขียนทับข้อมูลเดิม
บันทึกอัตราธุรกรรมเดิม
สร้าง Airtable automation ด้วย When record matches conditions เมื่อ From, To และ Amount มีค่า แต่ Rate at transaction ยังว่าง เพิ่ม Run a script ตั้ง mode เป็น snapshot ส่ง recordId ของรายการที่กระตุ้น และวางสคริปต์ที่ดาวน์โหลดมา เพิ่ม Automation secret ชื่อ exchangerateApiKey; สคริปต์อ่านผ่าน input.secret ทำให้ผู้แก้ไขที่ไม่มีสิทธิ์ไม่เห็นค่า snapshot จะเขียนฟิลด์เดิมเฉพาะเมื่ออัตรายังว่าง และการ retry จะรักษาค่าเดิมไว้
exchangerateApiKey ในส่วน Secrets ของตัวแก้ไขสคริปต์สำหรับทั้งสอง automation และอย่าเปลี่ยนชื่อ อย่าใส่ค่าในฟิลด์ ตาราง URL คำอธิบายที่แชร์ หรือ literal ในโค้ด Airtable จำกัดการแก้ไขสคริปต์ที่ใช้ secret ให้ผู้มีสิทธิ์เข้าถึง secretอัปเดตค่าประมาณตามเวลา
สร้าง automation ที่สองด้วย At scheduled time ตั้ง mode เป็น refresh และเว้น recordId เพื่อประมวลผล 25 รายการแรกใน Needs FX refresh จากนั้นวาง สคริปต์ Airtable ฉบับเต็ม แต่ละครั้งส่ง HTTP ได้ไม่เกิน 25 ครั้ง ต่ำกว่าขีดจำกัด fetch 50 ครั้ง และเขียนครั้งละไม่เกิน 50 รายการ ตารางใหญ่ควรมี queue และการรวมคำขอ หากตรวจ 25 คู่ต่างกันวันละครั้ง ให้เผื่อ API สูงสุด 750 ครั้งต่อ 30 วัน บวก snapshot และ retry
refresh อัปเดตเฉพาะ Current rate, Current converted, Source, Market session, Effective at และ Checked at ไม่แก้ฟิลด์ Transaction * ความล้มเหลวของ HTTP หรือ response ที่ผิดรูปแบบจะตั้ง Sync status เป็น Error และเก็บค่าปัจจุบันล่าสุดที่สำเร็จ
แสดงข้อผิดพลาดอย่างชัดเจน
401 หมายถึงต้องตรวจ Automation secret, 429 หมายถึงต้องตรวจตารางเวลาหรือขีดจำกัดบัญชี และ symbol ที่หายไปหมายถึงคู่เงินไม่ถูกต้องหรือไม่มีข้อมูล เก็บค่าที่สำเร็จล่าสุดกับ Checked at เดิม และใช้ Sync error เพื่อวินิจฉัย อย่าเปลี่ยนความล้มเหลวเป็นแถวอัตราศูนย์
ตรวจสอบข้อจำกัดแพ็กเกจ Airtable
เอกสาร Run a script ของ Airtable อธิบาย Automation secrets และการป้องกันผู้แก้ไข ส่วน ข้อจำกัด automation ระบุว่า Free ใช้ Run a script ไม่ได้และการรันที่ล้มเหลวก็ถูกนับ การอัปเดตรายวันมักเพียงพอสำหรับตารางรายงาน และไม่ได้ทำให้อัตราอ้างอิงรายวันกลายเป็นราคา intraday
