/** * Airtable Node - Version 1 * Read, update, write and delete data from Airtable */ export interface AirtableV1Params { authentication?: 'airtableTokenApi' | 'airtableOAuth2Api' | 'airtableApi' | Expression; operation?: 'append' | 'delete' | 'list' | 'read' | 'update'; /** * The Airtable Base in which to operate on * @default {"mode":"url","value":""} */ application?: { __rl: true; mode: 'url' | 'id'; value: string; cachedResultName?: string }; table?: { __rl: true; mode: 'url' | 'id'; value: string; cachedResultName?: string }; /** * Whether all fields should be sent to Airtable or only specific ones * @displayOptions.show { operation: ["append"] } * @default true */ addAllFields?: boolean | Expression; /** * The name of fields for which data should be sent to Airtable * @displayOptions.show { addAllFields: [false], operation: ["append"] } * @default [] */ fields?: string | Expression | PlaceholderValue; /** * ID of the record to delete * @displayOptions.show { operation: ["delete"] } */ id?: string | Expression | PlaceholderValue; /** * Whether to return all results or only up to a given limit * @displayOptions.show { operation: ["list"] } * @default true */ returnAll?: boolean | Expression; /** * Max number of results to return * @displayOptions.show { operation: ["list"], returnAll: [false] } * @default 100 */ limit?: number | Expression; /** * Whether the attachment fields define in 'Download Fields' will be downloaded * @displayOptions.show { operation: ["list"] } * @default false */ downloadAttachments?: boolean | Expression; /** * Name of the fields of type 'attachment' that should be downloaded. Multiple ones can be defined separated by comma. Case sensitive and cannot include spaces after a comma. * @displayOptions.show { operation: ["list"], downloadAttachments: [true] } */ downloadFieldNames?: string | Expression | PlaceholderValue; /** * Additional options which decide which records should be returned * @displayOptions.show { operation: ["list"] } * @default {} */ additionalOptions?: { /** Only data for fields whose names are in this list will be included in the records * @default [] */ fields?: string | Expression | PlaceholderValue; /** A formula used to filter records. The formula will be evaluated for each record, and if the result is not 0, false, "", NaN, [], or #Error! the record will be included in the response. */ filterByFormula?: string | Expression | PlaceholderValue; /** Defines how the returned records should be ordered * @default {} */ sort?: { /** Property */ property?: Array<{ /** Name of the field to sort on */ field?: string | Expression | PlaceholderValue; /** The sort direction * @default asc */ direction?: 'asc' | 'desc' | Expression; }>; }; /** The name or ID of a view in the Stories table. If set, only the records in that view will be returned. The records will be sorted according to the order of the view. */ view?: string | Expression | PlaceholderValue; }; /** * Whether all fields should be sent to Airtable or only specific ones * @displayOptions.show { operation: ["update"] } * @default true */ updateAllFields?: boolean | Expression; /** * Options * @displayOptions.show { operation: ["append", "delete", "update"] } * @default {} */ options?: { /** Number of records to process at once * @default 10 */ bulkSize?: number | Expression; /** Comma-separated list of fields to ignore * @displayOptions.show { /operation: ["update"], /updateAllFields: [true] } */ ignoreFields?: string | Expression | PlaceholderValue; /** Whether the Airtable API should attempt mapping of string values for linked records & select options * @displayOptions.show { /operation: ["append", "update"] } * @default false */ typecast?: boolean | Expression; }; } export interface AirtableV1Credentials { airtableApi: CredentialReference; airtableTokenApi: CredentialReference; airtableOAuth2Api: CredentialReference; } interface AirtableV1NodeBase { type: 'n8n-nodes-base.airtable'; version: 1; credentials?: AirtableV1Credentials; } export type AirtableV1ParamsNode = AirtableV1NodeBase & { config: NodeConfig; }; export type AirtableV1Node = AirtableV1ParamsNode;