Skip to main content

All of our Notion integrations started erroring today. I looks like the Zapier integration now only points to the unstructured part a Notion page, not finding the structured fields. This means that all of our page field fill operations return errors. Has anyone figured out a way to deal with this? 

It is probably related to a change in Notion:
 

Databases just got more powerful! Now supporting multiple data sources and linked views in a single database, creating a unified hub for your workflows.

This comes with an important API update for customers using internal integrations. Our new API version 2025-09-03 separates "databases" from "data sources,” unlocking powerful new organizational capabilities.

You are receiving this email because we detected that your workspace, CarbonDrop, has had at least one API call in the last 30 days that may be impacted by this functionality.

What you need to do:

Update your integrations to the new API version 2025-09-03 to support multiple data sources
We're introducing the concept of API versioning to integration webhooks as well
[Recommended] Restrict permissions on mission-critical databases to prevent users from adding new data sources before API migration is complete.

Start upgrading your integrations now to ensure a smooth transition when your team is ready to add new data sources to your workflows.

 

​Hi ​@CarbonNick 

I’ve seen other users mention issues with Notion Zaps today.

I recommend opening a ticket with Zapier Support: https://zapier.com/app/get-help


@CarbonNick 

TIP:

  • Make sure you are using the updated Notion Zap app integration version: 2.20.0
  • Make sure you are using a Notion app account connection that is for the Notion Zap app integration version: 2.20.0
  • Make sure you are using both of these in the Notion Zap step

Hey ​@CarbonNick,

Can you share screenshots of Data In and Data Out as well as how each Zap step is configured to have more context?

You may want to delete your existing connection and reconnecting it again so it defaults to latest version of Notion that is v2.20.0. After that, configure the fields again and try clicking on the Retest step to see if it fixes it. Hope it helps!


Thanks all. I raised a ticket with Zapier support and they are investigating. They identified the issue as: 

“a bug where the Update Database Item step in Notion only shows a single field called contents after refreshing fields, and attempts to update other properties fail with the error “Cannot read properties of undefined.” It should instead display all of the editable properties from your Notion database so you can map and update them successfully.”

They are investigating why the editable properties from Notion are not being displayed by the Zapier function. Will update. 
 


Hey ​@CarbonNick, actually, don’t upgrade your Notion integration to the latest version, as it doesn’t work for creating or updating items in multi-source databases. Unless you haven’t yet converted any of your databases to multi-source, in which case it’s fine.

The issue is that, starting with API version `2025-09-03`, API requests need to specify a `data_source_id`, as the `database_id` alone is not sufficient when a single database has multiple databases nested inside it. So if you’ve converted any of your Notion databases already, just keep your Zapier integration on a legacy version for now (you may need to roll updated Zaps back to an earlier version if you’ve already updated them).

Alternatively, while Zapier works on a fix for this breaking change, I built a Custom Agent to allow me to update one particular database that I already upgraded, and set a few property values (including a Relation type property, which the older versions of the Notion integration don’t allow you to update). Creating a Custom Action is a bit fussy because you have to update the JSON to match the schema of the data source you want to work with, but I’m using this for now while I wait for the official fix, which is supposed to be coming next week.

 

export async function createNotionPage({
internalAttendees,
startDate,
endDate,
googleCalendarEventId,
clayContacts,
description,
callLink,
title,
markdownContent
}: {
internalAttendees: string;
startDate: string;
endDate: string;
googleCalendarEventId: string;
clayContacts: string;
description?: string; // Optional
callLink?: string; // Optional
title: string;
markdownContent?: string; // Optional markdown content
}): Promise<{ result: object }> {
// Convert the comma-separated string of user IDs into an array
const attendeesArray = internalAttendees.split(',').map(id => id.trim());

// Convert the comma-separated string of page IDs into an array for Clay Contacts
const clayContactsArray = clayContacts.split(',').map(id => id.trim());

// Construct the request body with the provided inputs
const requestBody: any = {
parent: { data_source_id: "19891b07-11ac-8137-9d62-000b75fab86e" },
properties: {
"Internal Attendees": {
people: attendeesArray.map(id => ({ object: "user", id }))
},
"Date": {
date: { start: startDate, end: endDate }
},
"Google Calendar Event ID": {
rich_text: [{ type: "text", text: { content: googleCalendarEventId } }]
},
"Clay Contacts": {
relation: clayContactsArray.map(id => ({ id }))
},
"Title": {
title: [{ type: "text", text: { content: title } }]
}
},
children: [] // Initialize children for markdown content
};

// Add optional properties if they are provided
if (description) {
requestBody.properties["Description"] = {
rich_text: [{ type: "text", text: { content: description } }]
};
}

if (callLink) {
requestBody.properties["Call Link"] = {
url: callLink
};
}

// Add markdown content if provided
if (markdownContent) {
// Split markdown content into lines and create paragraph blocks
const markdownLines = markdownContent.split('\n');
requestBody.children = markdownLines.map(line => ({
object: "block",
type: "paragraph",
paragraph: {
rich_text: [{ type: "text", text: { content: line } }]
}
}));
}

// Make the API request to create a page in Notion
const response = await fetchWithZapier("https://api.notion.com/v1/pages/", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Notion-Version": "2025-09-03"
},
body: JSON.stringify(requestBody)
});

// Throw an error if the response is not ok
await response.throwErrorIfNotOk();

// Return the response as a result object
return { result: await response.json() };
}

 


Hi ​@CarbonNick,

Ali here from Zapier support. It seems you might be coming across a recently reported bug with the Notion app.

I would recommend reaching out to our support team so they can specifically review your Zap and once they can confirm it is a bug, they can add you to our bug tracker so you can be notified as soon a fix is launched.

Thank you,


Now, are you too gonna switch to the new Notion API?