AddThisFeature

Airtable Record Sync

Create and update Airtable records with mapped fields, links, and attachments intact.

involved Integrations

What it adds

A configured sync of app records into a selected base and table, resolving linked records and transferring attachments.

What your agent is told to do

5
  1. 1

    Read the selected table's fields and their types at setup, and read them again before a mapping is used, rather than trusting a mapping saved months ago against a schema somebody has since changed.

  2. 2

    Validate every value against its destination field type before sending, and check option values against that field's current choices so a write neither fails nor quietly expands the list.

  3. 3

    Resolve linked records by looking up the related table first and reusing the match. Create a related record only when the lookup finds nothing, never once per write.

  4. 4

    Serve attachments from a signed URL that lives only long enough for the provider to fetch the file, and revoke it once the fetch is confirmed. Do not make the file publicly readable to complete the transfer.

  5. 5

    Carry a stable app identifier in a dedicated field and upsert on it. Google Sheets Row Sync and Notion Database Sync solve the same mapping and idempotency problem against other destinations, so share the mapping and queue layer and vary only the destination adapter.

Edge cases it handles

8
  • A value of the wrong type is rejected outright, and a single-select value absent from the field's options either fails or expands the list. Validate before sending, and make expanding a list a deliberate setting rather than a side effect.
  • Linked-record fields take record identifiers, not text. Writing the display name creates a new related record every time, and a month later the related table is full of near-duplicates.
  • Fields get renamed, retyped, and deleted by whoever owns the base. A mapping must be revalidated, and when it no longer resolves the destination pauses with a message naming the field rather than skipping it silently.
  • Attachments are fetched by the provider from a URL the app supplies. That URL must be signed, short-lived, and revoked after the fetch, or the app has published a permanent public link to customer data.
  • Rate limits are enforced per base and are low. A backfill must pace itself, batch records, and back off when refused rather than saturating the limit and starving ordinary writes.
  • Without an upsert key a retried job creates a second record. The key belongs in its own field on the destination, not inferred from a name or an email address.
  • Bases enforce record and attachment size limits. A record that exceeds them must be reported as too large rather than retried indefinitely.
  • If the connection is revoked or the base is deleted, the destination must be disabled and the owner told, not left retrying against a base that no longer exists.

Definition of done

8
  • Field types and option values are validated against the live schema before every send.
  • Linked records resolve to existing rows and are created only when no match exists.
  • A stable key field makes repeated runs idempotent, and no retry produces a duplicate record.
  • Attachment URLs are signed, short-lived, and revoked after the provider fetches them.
  • Backfills stay within the provider's rate limits and back off instead of failing.
  • Schema changes and revoked access pause the destination with a message naming the cause.
  • The feature matches the existing design system.
  • No existing functionality is broken.

Related features

How it works

  1. 1

    Copy the link

    Grab the Markdown instruction URL for this feature.

  2. 2

    Give it to your AI

    Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.

  3. 3

    It inspects, then implements

    Your agent reads your existing app first, then adds the feature to fit it.

Works with your stack

These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.

Need it tighter than that? Customize the feature and tell it exactly what you're running.