Pisahkan field asli dan terbaru: Rate at transaction, sumber, dan waktu efektifnya diisi sekali setelah mata uang dan jumlah siap. Current rate beserta metadatanya diperbarui melalui otomasi terjadwal. Pergerakan pasar tidak akan menulis ulang nilai historis transaksi.
Buat tabel Transactions
Buat tabel Transactions dengan field From dan To (single line text), Amount, Rate at transaction, Transaction converted (number), Transaction source, Transaction market session, Transaction effective at, Archived (checkbox), Current rate dan Current converted (number), Source, Market session, Effective at, Checked at, Sync status, dan Sync error. Gunakan date/time untuk Transaction effective at, Effective at, dan Checked at; gunakan single line text untuk metadata dan status lainnya. Buat view Needs FX refresh, filter Archived yang belum dicentang, lalu urutkan Checked at dari yang paling lama, dengan nilai kosong terlebih dahulu. Proses berikutnya akan menangani record berikutnya.
Kedua kelompok kurs memiliki arti berbeda. Field Transaction * merupakan snapshot transaksi untuk akuntansi atau audit. Field terbaru tanpa awalan itu merupakan pengamatan indikatif baru untuk dasbor atau estimasi. Jangan gunakan nilai terbaru untuk mengubah catatan asli.
Simpan kurs transaksi asli
Buat otomasi Airtable dengan trigger When record matches conditions: From, To, dan Amount sudah diisi, sedangkan Rate at transaction masih kosong. Tambahkan Run a script, isi mode dengan snapshot, masukkan recordId dari record pemicu, lalu tempel skrip unduhan. Tambahkan Automation secret bernama exchangerateApiKey; skrip membacanya melalui input.secret, sehingga editor tanpa akses secret dapat menjalankan otomasi tanpa melihat nilainya. Skrip hanya mengisi Rate at transaction, Transaction converted, Transaction source, Transaction market session, dan Transaction effective at saat kurs asli kosong. Saat dijalankan ulang, nilai yang sudah ada membuat semua field asli tetap utuh.
exchangerateApiKey di bagian Secrets pada editor skrip untuk kedua otomasi. Pertahankan namanya. Jangan menaruh nilainya di field tabel, URL, deskripsi bersama, atau literal kode; Airtable membatasi pengeditan skrip yang memakai secret kepada pengguna dengan akses ke secret tersebut.Perbarui estimasi secara terjadwal
Buat otomasi kedua dengan trigger At scheduled time. Isi mode dengan refresh, kosongkan recordId untuk memproses 25 record pertama pada Needs FX refresh, lalu tempel skrip Airtable lengkap. Setiap proses membuat maksimal 25 permintaan HTTP, di bawah batas 50 fetch Airtable, dan menulis dalam kelompok maksimal 50 record. Contoh ini untuk basis pelaporan kecil; tabel besar membutuhkan antrean dan pengelompokan permintaan yang direncanakan. Untuk 25 pasangan berbeda sekali sehari, sediakan hingga 750 permintaan API per 30 hari, ditambah snapshot awal dan percobaan ulang.
Refresh hanya memperbarui Current rate, Current converted, Source, Market session, Effective at, dan Checked at. Tidak ada field Transaction * yang diubah. Kegagalan HTTP atau respons tidak valid mengisi Sync status dengan Error dan mempertahankan nilai terbaru yang terakhir berhasil.
Tampilkan kegagalan dengan jelas
401 menandakan Automation secret perlu diperiksa; 429 menandakan jadwal atau batas akun perlu diperiksa; simbol yang hilang menandakan pasangan tidak valid atau tidak tersedia. Pertahankan nilai terakhir yang berhasil bersama Checked at sebelumnya, lalu gunakan Sync error untuk diagnosis operator. Jangan mengubah kegagalan menjadi baris berkurs nol.
Periksa batas paket Airtable
Dokumentasi Run a script Airtable menjelaskan Automation secrets bawaan dan perlindungannya terhadap editor. Batas otomasi menyatakan Run a script tidak tersedia pada Free dan proses yang gagal juga dihitung. Pembaruan harian biasanya cukup untuk tabel laporan; jadwal lebih sering tidak mengubah mata uang referensi harian menjadi kurs intrahari.
