airtable-webhook-types
v1.3.0
Published
Typescript and Zod types for Airtable webhooks
Downloads
24
Maintainers
Readme
Airtable Webhook Types
TypeScript and Zod type definitions for Airtable webhooks
About
The goal of this library is to provide all types used by Airtable webhooks, as detailed in the Airtable developer docs.
Relevant Airtable Docs
- https://airtable.com/developers/web/api/webhooks-overview (everything listed under the webhooks sidebar section)
- https://airtable.com/developers/web/api/model/webhooks-action (everything webhook-related listed under the models sidebar section)
Installation
If want to use the Zod schemas and the TypeScript types
npm install airtable-webhook-types
If you only want to use the TypeScript types
npm install --save-dev airtable-webhook-types
Example Usage
Using Zod schemas
import { listWebhookPayloadsResponseSchema } from 'airtable-webhook-types'
const response = await fetch(`https://api.airtable.com/v0/bases/${params.baseId}/webhooks`, {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.AIRTABLE_API_KEY}`,
'Content-Type': 'application/json',
},
})
// responseData will have type ListWebhookPayloadsResponse
const responseData = listWebhookPayloadsResponseSchema.parse(await response.json())
Using TypeScript types
import { CreateWebhookRequestBody, CreateWebhookPathParams, CreateWebhookResponse } from 'airtable-webhook-types'
const params: CreateWebhookPathParams = {
baseId: 'abc123'
}
const body: CreateWebhookRequestBody = {
notificationUrl: 'https://example.com',
specification: {
options: {
filters: {
dataTypes: ['tableData']
},
includes: {
includeCellValuesInFieldIds: 'all',
includePreviousCellValues: true,
}
}
}
}
const response = await fetch(`https://api.airtable.com/v0/bases/${params.baseId}/webhooks`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.AIRTABLE_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(body),
})
const responseData: CreateWebhookResponse = await response.json()
Contributing
Create feature requests and bug reports by opening an issue.
Vote on issues by reacting with a thumbs up to the issues that affect you. Reaction counts are used to prioritize tasks.
Pull requests are welcome!