We simplified the different field types into an easily consumable structure.

While webhooks for New Airtable Records will only every contain the current values of a column. The webhooks for Updated Airtable Records will contain the current and the previous values of a column.
For most use-cases you can simply use our pre-built integrations. They cover all of the aspects mentioned in this guide so you do not have to worry about it.This guide is only necessary if you want to dive deep into the different data types and structures you will receive through the webhooks.
Looking at the data structure this means that New Airtable Records webhooks will look like:
 {
	"id": "20ec590...",				//notification Id 
	"event": "create",				//event Type 
	"recordId": "rec...",			//record Id of new record 
	"tableId": "tbl...",			//table Id of the new record 
	"baseId": "app...",				//base Id of the new record 
	"fieldsById": {
		"fld..": {					//column Id 
			"name":"...", 			//column Name 
			"current":"..." 		//current value as string 
			//the current value can be a string, number, boolean, object or array 
		}				
	}
}
The webhooks for Updated Airtable Records will additionally contain a previous value for the individual columns.
 {
	"id": "20ec590...",				//notification Id 
	"event": "create",				//event Type 
	"recordId": "rec...",			//record Id of new record 
	"tableId": "tbl...",			//table Id of the new record 
	"baseId": "app...",				//base Id of the new record 
	"fieldsById": {
		"fld..": {					//column Id 
			"name":"...",			//column Name 
			"current":"...",		//current value as string 
			"previous":"..."		//previous value as string 
			//the current and previous value can be a string, number, boolean, object or array 
			//the previous value can also be null 
		}				
	}
}
Here is a list of all Airtable column types: Let’s start with the basics and end with the more advanced columns later.

String Columns

All of our webhooks will deliver columns of the type:
Email
Long Text
Phone
Rich Text
URL and
Single Line Text
as simple strings.
"fld...": {										//column Id
	"name": "Test Column", 						//column Name
	"current": "Some random Text" 				//current column Value
}

Date Columns

All of our webhooks will deliver columns of the type:
Date
Last Modified Time
Created Time
as ISO-8601 formatted dates.
"fld...": {										//column Id
	"name": "Test Date Column", 				//column Name
	"current": "2025-07-19T09:08:39.000Z" 		//current column Value
}

Number Columns

All of our webhooks will deliver columns of the type:
Number
Duration
Percent
Count
Auto Number
Rating
Currency
as numbers.
"fld...": {										//column Id
	"name": "Test Number Column", 				//column Name
	"current": 3.4, 							//current column Value
}

Checkbox Columns

Boolean values can be returned by multiple column types but formulas, rollups or lookup columns have varying output formats. Checkbox columns, however, will always be delivered as booleans if the column is true.
If checkbox columns are false, Airtable does not send this information. That’s why empty values for a checkbox column have to be treated as false.
"fld...": {										//column Id
	"name": "Test Checkbox Column", 			//column Name
	"current": true, 							//current column Value
}

Single Collaborator Columns

Columns that only contain a single user such as Last Modified By, Created By or Single User columns will be sent with a single user object:
"fld...": {										//column Id
	"name": "Test Created By Column", 			//column Name
	"current": {
		"email":"test.user@gmail.com",			//user Email
		"id":"usrnwwJUfsBR6EMXl",				//user Id
		"name":"Test User"						//user Name
	}				
}

AI Text Columns

For the newest of the columns the AI Text columns we are able to not only send the value but also the state and if it’s stale (for definitions see here). These additional values might be important to you if you want to know if you can use the value or if you should wait and for an updated value in the AI Text columns. Based on that, the format for AI Text columns will be:
"fld...": {										//column Id
	"name": "Test AI Text Column", 				//column Name
	"current": {
		"state": "loading",						//column State
		"value": "Test Value",					//column Value
		"isStale": false,						//should be recomputed?
	}					
}

Button Columns

A button consists of maximum two parts, a URL and a label. We do transfer both through our webhooks.
"fld...": {													//column Id
	"name": "Test Button Column", 							//column Name
	"current": {
		"url": "https://www.simplified-webhooks.com",		//button URL
		"label": "Receive instant Airtable webhooks"		//button Label
	}					
}

Barcode Columns

Barcode columns contain the data of the code as well as the type. That’s why barcode columns will be sent as the following:
"fld...": {													//column Id
	"name": "Test Barcode Column", 							//column Name
	"current": {
		"type": "ean13",									//barcode Type
		"text": "8000845065440"								//barcode Data
	}					
}

Multiple Select Columns

Now we start to go into more complex column types. Multiple Select columns will be delivered as flat arrays containing the names of the selected options.
"fld...": {										//column Id
	"name": "Test Multiple Select Column", 		//column Name
	"current": [								//current column Value
		"Option1",
		"Option2"
	] 							
}

Linked Record Columns

Linked Record fields will also be delivered as flat arrays but they will contain the record Ids of the linked records.
"fld...": {										//column Id
	"name": "Test Linked Record Column", 		//column Name
	"current": [								//current column Value
		"recRPq7LWatCDsBXm",
		"recsyxrrqFUZ4OWEN"
	] 							
}

Multiple Collaborators Columns

User columns in Airtable can either select one user (which we covered here) or multiple users. For columns with Multiple Collaborators the format will be:
"fld...": {											//column Id
	"name": "Test Mulitple Collaborator Column", 	//column Name
	"current": [									//current column Value
		{
			"email": "test.user@gmail.com",			//user E-Mail
			"id": "usrnwwJUfsBR6EMXl",				//user Id
			"name": "Test User 1"					//user Name
		},
		{
			"email": "test.user2@gmail.com",		//user E-Mail
			"id": "usrnwwJUfsBR6EMXl",				//user Id
			"name": "Test User 2"					//user Name
		}
	] 							
}

Attachment Columns

Columns containing attachments will be sent as follows:
"fld...": {										//column Id
	"name": "Test Attachment Column", 			//column Name
	"current": [								//current column Value
		{
			"id": "...",				//attachment Id
			"url": "...",				//file URL (only valid for 2h)
			"size":,					//file Size
			"type":"",					//file Type
			"filename":""				//file Name
		},
		{
			"id": "...",				//attachment Id
			"url": "...",			//file URL (only valid for 2h)
			"size":,				//file Size
			"type":"",				//file Type
			"filename":""			//file Name
		}
	] 							
}

Formula, Lookup and Rollup Columns

As we’ve already covered most of the columns by now, Airtable offers three columns that have a varying output format based on the evaluation of the input / formula. This means that formula, lookup and rollup columns we be sent in different data types, depending on how you setup the columns. Output formats number, currency and percent will be sent as numbers:
//if output format is number, currency or precent
"fld...": {												//column Id
	"name": "Test Formula/Lookup/Rollup Column", 		//column Name
	"current": 3.4, 									//current column Value
}
Output format checkbox will be sent as boolean values:
//if output format is checkbox
"fld...": {											//column Id
	"name": "Test Formula/Lookup/Rollup Column", 	//column Name
	"current": true, 								//current column Value
}
As for the normal checkbox columns, Airtable does not send anything if the value is false.
Output format date will be sent as a ISO-8601 formatted date string:
//if output format is date
"fld...": {											//column Id
	"name": "Test Formula/Lookup/Rollup Column", 	//column Name
	"current": "2025-07-19T09:08:39.000Z" 			//current column Value
}
Normal text output for formula and lookup columns will be sent as a simple string:
//if the output format is not specified differently
"fld...": {										//column Id
	"name": "Test Fromula/Lookup Column", 		//column Name
	"current": "some random Text" 	//current column Value
}
Rollup columns that result a single line of text deviate from the above structure. An example would be a rollup column that contains Arrayjoin(values) as the formula. These will be sent as an array:
//rollup columns with e.g. "Arrayjoin(values)"
"fld...": {										//column Id
	"name": "Test Rollup Column", 				//column Name
	"current": [								//current column Value
		"Text1"
	] 							
}

//rollup column with simply: "values"
"fld...": {										//column Id
	"name": "Test Rollup Column", 				//column Name
	"current": [								//current column Value
		"Text1",
		"Text2",
		"..."
	] 							
}