Hooks

Airtable

7 hooks fired by Airtable: 7 filters and 0 actions across 7 call sites.

7 hooks fired by Airtable: 7 filters and 0 actions across 7 call sites. 7 of the 7 call sites are described by a docblock, at the call or on the constant that names the hook; the rest are listed with their signature and call sites only. Paths are relative to the plugin directory.

xpac-forms-after-settings-modal-content

Filter · 3 arguments · 1 call site

Content appended inside a settings panel's item modal.

applyFilters( 'xpac-forms-after-settings-modal-content', [], { value: options, onChange: onUpdate, }, `xpac-${ID}` )

Fired from:

  • assets/packages/airtable/Components/Modal.js:784

xpac_airtable_max_rate_limit_wait

Filter · 2 arguments · 1 call site

Filters how long a record call waits out Airtable's Retry-After, in seconds.

Above this the call is refused with Airtable's own number rather than slept off, and the delivery queue retries it on its backoff. Zero refuses every rate limit immediately.

apply_filters( 'xpac_airtable_max_rate_limit_wait', self::MAX_RATE_LIMIT_WAIT, $baseId )
  • $seconds (float) — Longest wait. Default 30.
  • $baseId (string) — Base the call is for.

Fired from:

  • packages/Airtable/Client.php:280

xpac_airtable_request_timeout

Filter · 1 argument · 1 call site

Filters how long to wait for Airtable before giving up, in seconds.

WordPress defaults to 5, which is short for a metadata call over a cold connection. Deliveries treats a timeout as transient and retries on its own backoff, so raising this trades a slower failure for fewer retries. File uploads have their own, longer timeout; see xpac_airtable_upload_timeout.

apply_filters( 'xpac_airtable_request_timeout', 10 )
  • $timeout (int) — Timeout in seconds. Default 10.

Fired from:

  • packages/Airtable/Client.php:248

xpac_airtable_site_is_fetchable

Filter · 1 argument · 1 call site

Filters whether Airtable can fetch files from this site's URLs.

Null leaves it to be worked out, which costs one name lookup. Answer it to skip that, or to correct it on a site whose public address is not the one WordPress resolves — a reverse proxy, say.

apply_filters( 'xpac_airtable_site_is_fetchable', null )
  • $fetchable (bool|null) — Whether Airtable can reach this site.

Fired from:

  • packages/Airtable/Addon.php:1387

xpac_airtable_typecast

Filter · 2 arguments · 1 call site

Filters whether to let Airtable convert submitted values to the column's type.

Every value a form submits is a string. Airtable's own validation is strict by default, so "5" is rejected by a Number column and "2026-08-13" by a Date one — and because a record is validated as a whole, that one key takes the rest of the record down with it. On, the types a form can actually fill go from text-only to all of them.

The cost is that typecast also creates Single select and Multiple selects options that do not exist yet, and a record in the linked table for a Link to another record column, so a free-text answer mapped to a select column adds an option to the base. The action's own toggle is the default here; return false to have Airtable reject those values for every action regardless.

apply_filters( 'xpac_airtable_typecast', false !== ($data['typecast'] ?? true), $data )
  • $typecast (bool) — Whether to send typecast: true. Default true.
  • $data (array) — Record data: baseId, tableId and fields.

Fired from:

  • packages/Airtable/Client.php:674

xpac_airtable_upload_attachments

Filter · 1 argument · 1 call site

Filters whether to post attachment bytes to Airtable.

Off, every file reaches the base as a URL for Airtable to fetch: fine on a public site, silently empty on one Airtable cannot reach. Files above 5 MB take the URL route either way, because the upload endpoint rejects them.

apply_filters( 'xpac_airtable_upload_attachments', true )
  • $upload (bool) — Whether to upload file contents. Default true.

Fired from:

  • packages/Airtable/Addon.php:1301

xpac_airtable_upload_timeout

Filter · 2 arguments · 1 call site

Filters how long a file upload waits for Airtable, in seconds.

The file travels base64-encoded inside the request, so a 5 MB file is a 7 MB request. The default allows 30 seconds plus 10 for every started megabyte of the encoded file, and never less than xpac_airtable_request_timeout.

apply_filters( 'xpac_airtable_upload_timeout', max($this->defaultTimeout(), 30 + 10 * (int) ceil($encodedBytes / 1048576)), $encodedBytes )
  • $timeout (int) — Timeout in seconds.
  • $bytes (int) — Size of the encoded file, in bytes.

Fired from:

  • packages/Airtable/Client.php:948

On this page