Trying to do a POST from retool to Notion

  • Goal: Using Retool UI to create a ask and post it to Notion.

  • Steps: I using the same endpoints in postman an dit works. But trying to set this up in retool and getting error.

Postmane:
URL: https://api.notion.com/v1/pages

Body:
{
"parent": {
"database_id": "databaseID"
},
"properties": {
"Task name": {
"title": [
{
"text": {
"content": "Notion Integration - Project"
}
}
]
},
"Priority": {
"select": {
"name": "Medium"
}
},
"Project": {
"relation": [
{
"id": "4e4d4e64-a99b-4bc1-829f-8dee44eea451" // Replace with the actual ID of the 'Tech Assist' project page
}
]
},
"Description": { // Replace with the actual property name for description in your database
"rich_text": [
{
"text": {
"content": "This is a detailed description of the task." // Your description content here
}
}
]
}
// ... other properties as needed
}
}

Trying to replicate this in retool. I added the header. Now trying to set up body. There is no option to copy paste raw JSON so I am form fields.

Parent: Database ID
Select 'properties' dropdown: for my structure, this is how I should set it up. But the options are very limited in retool.

properties (Key)

  • Task name (Sub-key) [ Add Keys for each property:For example, for the "Task name", you would add a key for the "title" and then within that, a key for the text content.]
    • title (Nested Key)
      • 0 (Nested Sub-key under title)
        • text (Nested Sub-key under 0)
          • content (Nested Key under text): {{ textInput1.value }}

I tried to set up task name using retool properties:

But as soon as I click on "Add title object" I get this error

Hi @amsalzulfiqar,

Try clicking the { } button in the upper right of the body. That will let you insert your JSON body without relying on the UI.

image

1 Like

Thanks!! Now when I enter my RAW JSON in the body and add this under properties

Properties "
{
"Task name": {
"title": [
{
"text": {
"content": "Notion Integration - Project"
}
}
]
},
"Priority": {
"select": {
"name": "Medium"
}
},
"Project": {
"relation": [
{
"id": "4e4d4e64-a99b-4bc1-829f-8dee44eea451"
}
]
},
"Description": { // Replace with the actual property name for description in your database
"rich_text": [
{
"text": {
"content": "This is a detailed description of the task." // Your description content here
}
}
]
}
}
}"

Response back
"{
"object": "error",
"status": 400,
"code": "validation_error",
"message": "Couldn't find editable properties for these identifiers: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650",
"request_id": "f36e276c-2c08-4836-81a7-6ab6c3469638"
}"

Hi there!

:thinking: Looking at the Notion docs, this error comes up when the request body does not match the schema for the expected parameters.

Does this query work outside of Retool (in Postman, for example)?

If you run a get request for the database, do you see the expected properties? Or, if you run a get request for an existing page, does it have these properties?

The json in the most recent message seems like it has an extra } at the end