@bubblelab/bubble-core 0.1.146 → 0.1.147
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bubble-bundle.d.ts +76 -76
- package/dist/bubbles/service-bubble/agi-inc.d.ts +28 -28
- package/dist/bubbles/service-bubble/ai-agent.d.ts +60 -60
- package/dist/bubbles/service-bubble/airtable.d.ts +112 -112
- package/dist/bubbles/service-bubble/apify/apify.d.ts +18 -18
- package/dist/bubbles/service-bubble/ashby/ashby.d.ts +72 -72
- package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +37 -37
- package/dist/bubbles/service-bubble/confluence/confluence.d.ts +21 -21
- package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +88 -88
- package/dist/bubbles/service-bubble/eleven-labs.d.ts +4 -4
- package/dist/bubbles/service-bubble/firecrawl.d.ts +394 -394
- package/dist/bubbles/service-bubble/followupboss.d.ts +84 -84
- package/dist/bubbles/service-bubble/fullenrich/fullenrich.d.ts +60 -60
- package/dist/bubbles/service-bubble/github.d.ts +210 -210
- package/dist/bubbles/service-bubble/gmail.d.ts +410 -410
- package/dist/bubbles/service-bubble/google-calendar.d.ts +2 -2
- package/dist/bubbles/service-bubble/google-drive.d.ts +48 -48
- package/dist/bubbles/service-bubble/http.d.ts +8 -8
- package/dist/bubbles/service-bubble/insforge-db.d.ts +10 -10
- package/dist/bubbles/service-bubble/jira/jira.d.ts +18 -18
- package/dist/bubbles/service-bubble/notion/notion.d.ts +13738 -9223
- package/dist/bubbles/service-bubble/notion/notion.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/notion/notion.js +55 -2
- package/dist/bubbles/service-bubble/notion/notion.js.map +1 -1
- package/dist/bubbles/service-bubble/postgresql.d.ts +10 -10
- package/dist/bubbles/service-bubble/resend.d.ts +24 -24
- package/dist/bubbles/service-bubble/slack/slack.d.ts +504 -504
- package/dist/bubbles/service-bubble/stripe/stripe.d.ts +25 -25
- package/dist/bubbles/service-bubble/telegram.d.ts +2 -2
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/tool.d.ts +7 -7
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.d.ts +6 -6
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/tool.d.ts +6 -6
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/tool.d.ts +6 -6
- package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +386 -386
- package/dist/bubbles/tool-bubble/list-airtable-bases-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/list-airtable-tables-tool.d.ts +20 -20
- package/dist/bubbles/tool-bubble/list-capabilities-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/people-search-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +14 -14
- package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +60 -60
- package/dist/bubbles/tool-bubble/twitter-tool.d.ts +108 -108
- package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/web-search-tool.d.ts +12 -12
- package/dist/bubbles/tool-bubble/youtube-tool.d.ts +20 -20
- package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +32 -32
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +46 -46
- package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +8 -8
- package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +4 -4
- package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +44 -44
- package/dist/bubbles.json +732 -3
- package/package.json +2 -2
package/dist/bubbles.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "2.0.0",
|
|
3
|
-
"generatedAt": "2026-02-
|
|
3
|
+
"generatedAt": "2026-02-11T01:46:46.947Z",
|
|
4
4
|
"totalCount": 64,
|
|
5
5
|
"bubbles": [
|
|
6
6
|
{
|
|
@@ -20978,6 +20978,34 @@
|
|
|
20978
20978
|
],
|
|
20979
20979
|
"additionalProperties": false
|
|
20980
20980
|
},
|
|
20981
|
+
{
|
|
20982
|
+
"type": "object",
|
|
20983
|
+
"properties": {
|
|
20984
|
+
"operation": {
|
|
20985
|
+
"type": "string",
|
|
20986
|
+
"enum": [
|
|
20987
|
+
"retrieve_data_source"
|
|
20988
|
+
],
|
|
20989
|
+
"description": "Retrieve a data source by its ID to get the schema (properties). Returns the property definitions (names, types, options, etc.) for the data source. NOTE: retrieve_database now auto-fetches this, so you typically don't need this operation."
|
|
20990
|
+
},
|
|
20991
|
+
"data_source_id": {
|
|
20992
|
+
"type": "string",
|
|
20993
|
+
"description": "UUID of the Notion data source. Get this from retrieve_database response (data_sources[0].id)."
|
|
20994
|
+
},
|
|
20995
|
+
"credentials": {
|
|
20996
|
+
"type": "object",
|
|
20997
|
+
"additionalProperties": {
|
|
20998
|
+
"type": "string"
|
|
20999
|
+
},
|
|
21000
|
+
"description": "Object mapping credential types to values"
|
|
21001
|
+
}
|
|
21002
|
+
},
|
|
21003
|
+
"required": [
|
|
21004
|
+
"operation",
|
|
21005
|
+
"data_source_id"
|
|
21006
|
+
],
|
|
21007
|
+
"additionalProperties": false
|
|
21008
|
+
},
|
|
20981
21009
|
{
|
|
20982
21010
|
"type": "object",
|
|
20983
21011
|
"properties": {
|
|
@@ -25918,7 +25946,708 @@
|
|
|
25918
25946
|
"data_sources"
|
|
25919
25947
|
],
|
|
25920
25948
|
"additionalProperties": false,
|
|
25921
|
-
"description": "Retrieved database object"
|
|
25949
|
+
"description": "Retrieved database object (with auto-fetched properties schema from first data source)"
|
|
25950
|
+
}
|
|
25951
|
+
},
|
|
25952
|
+
"required": [
|
|
25953
|
+
"operation",
|
|
25954
|
+
"success",
|
|
25955
|
+
"error"
|
|
25956
|
+
],
|
|
25957
|
+
"additionalProperties": false
|
|
25958
|
+
},
|
|
25959
|
+
{
|
|
25960
|
+
"type": "object",
|
|
25961
|
+
"properties": {
|
|
25962
|
+
"operation": {
|
|
25963
|
+
"type": "string",
|
|
25964
|
+
"enum": [
|
|
25965
|
+
"retrieve_data_source"
|
|
25966
|
+
],
|
|
25967
|
+
"description": "Retrieve data source operation result"
|
|
25968
|
+
},
|
|
25969
|
+
"success": {
|
|
25970
|
+
"type": "boolean",
|
|
25971
|
+
"description": "Whether the operation succeeded"
|
|
25972
|
+
},
|
|
25973
|
+
"error": {
|
|
25974
|
+
"type": "string",
|
|
25975
|
+
"description": "Error message if operation failed"
|
|
25976
|
+
},
|
|
25977
|
+
"data_source": {
|
|
25978
|
+
"type": "object",
|
|
25979
|
+
"properties": {
|
|
25980
|
+
"object": {
|
|
25981
|
+
"type": "string",
|
|
25982
|
+
"enum": [
|
|
25983
|
+
"data_source"
|
|
25984
|
+
],
|
|
25985
|
+
"description": "Object type"
|
|
25986
|
+
},
|
|
25987
|
+
"id": {
|
|
25988
|
+
"type": "string",
|
|
25989
|
+
"description": "Data source ID"
|
|
25990
|
+
},
|
|
25991
|
+
"created_time": {
|
|
25992
|
+
"type": "string",
|
|
25993
|
+
"description": "ISO 8601 datetime"
|
|
25994
|
+
},
|
|
25995
|
+
"last_edited_time": {
|
|
25996
|
+
"type": "string",
|
|
25997
|
+
"description": "ISO 8601 datetime"
|
|
25998
|
+
},
|
|
25999
|
+
"created_by": {
|
|
26000
|
+
"type": "object",
|
|
26001
|
+
"properties": {
|
|
26002
|
+
"object": {
|
|
26003
|
+
"type": "string",
|
|
26004
|
+
"enum": [
|
|
26005
|
+
"user"
|
|
26006
|
+
],
|
|
26007
|
+
"description": "Object type"
|
|
26008
|
+
},
|
|
26009
|
+
"id": {
|
|
26010
|
+
"type": "string",
|
|
26011
|
+
"description": "User ID"
|
|
26012
|
+
},
|
|
26013
|
+
"type": {
|
|
26014
|
+
"type": "string",
|
|
26015
|
+
"enum": [
|
|
26016
|
+
"person",
|
|
26017
|
+
"bot"
|
|
26018
|
+
],
|
|
26019
|
+
"description": "User type"
|
|
26020
|
+
},
|
|
26021
|
+
"name": {
|
|
26022
|
+
"type": "string",
|
|
26023
|
+
"description": "User name"
|
|
26024
|
+
},
|
|
26025
|
+
"avatar_url": {
|
|
26026
|
+
"type": "string",
|
|
26027
|
+
"nullable": true,
|
|
26028
|
+
"description": "Avatar URL"
|
|
26029
|
+
},
|
|
26030
|
+
"person": {
|
|
26031
|
+
"type": "object",
|
|
26032
|
+
"properties": {
|
|
26033
|
+
"email": {
|
|
26034
|
+
"type": "string",
|
|
26035
|
+
"format": "email",
|
|
26036
|
+
"description": "Email address"
|
|
26037
|
+
}
|
|
26038
|
+
},
|
|
26039
|
+
"additionalProperties": false,
|
|
26040
|
+
"description": "Person details"
|
|
26041
|
+
},
|
|
26042
|
+
"bot": {
|
|
26043
|
+
"type": "object",
|
|
26044
|
+
"properties": {
|
|
26045
|
+
"owner": {
|
|
26046
|
+
"type": "object",
|
|
26047
|
+
"properties": {
|
|
26048
|
+
"type": {
|
|
26049
|
+
"type": "string",
|
|
26050
|
+
"enum": [
|
|
26051
|
+
"workspace",
|
|
26052
|
+
"user"
|
|
26053
|
+
],
|
|
26054
|
+
"description": "Owner type"
|
|
26055
|
+
},
|
|
26056
|
+
"workspace": {
|
|
26057
|
+
"type": "boolean"
|
|
26058
|
+
}
|
|
26059
|
+
},
|
|
26060
|
+
"required": [
|
|
26061
|
+
"type"
|
|
26062
|
+
],
|
|
26063
|
+
"additionalProperties": false
|
|
26064
|
+
},
|
|
26065
|
+
"workspace_name": {
|
|
26066
|
+
"type": "string",
|
|
26067
|
+
"description": "Workspace name"
|
|
26068
|
+
}
|
|
26069
|
+
},
|
|
26070
|
+
"additionalProperties": false,
|
|
26071
|
+
"description": "Bot details"
|
|
26072
|
+
}
|
|
26073
|
+
},
|
|
26074
|
+
"required": [
|
|
26075
|
+
"object",
|
|
26076
|
+
"id"
|
|
26077
|
+
],
|
|
26078
|
+
"additionalProperties": false,
|
|
26079
|
+
"description": "User who created the data source"
|
|
26080
|
+
},
|
|
26081
|
+
"last_edited_by": {
|
|
26082
|
+
"type": "object",
|
|
26083
|
+
"properties": {
|
|
26084
|
+
"object": {
|
|
26085
|
+
"type": "string",
|
|
26086
|
+
"enum": [
|
|
26087
|
+
"user"
|
|
26088
|
+
],
|
|
26089
|
+
"description": "Object type"
|
|
26090
|
+
},
|
|
26091
|
+
"id": {
|
|
26092
|
+
"type": "string",
|
|
26093
|
+
"description": "User ID"
|
|
26094
|
+
},
|
|
26095
|
+
"type": {
|
|
26096
|
+
"type": "string",
|
|
26097
|
+
"enum": [
|
|
26098
|
+
"person",
|
|
26099
|
+
"bot"
|
|
26100
|
+
],
|
|
26101
|
+
"description": "User type"
|
|
26102
|
+
},
|
|
26103
|
+
"name": {
|
|
26104
|
+
"type": "string",
|
|
26105
|
+
"description": "User name"
|
|
26106
|
+
},
|
|
26107
|
+
"avatar_url": {
|
|
26108
|
+
"type": "string",
|
|
26109
|
+
"nullable": true,
|
|
26110
|
+
"description": "Avatar URL"
|
|
26111
|
+
},
|
|
26112
|
+
"person": {
|
|
26113
|
+
"type": "object",
|
|
26114
|
+
"properties": {
|
|
26115
|
+
"email": {
|
|
26116
|
+
"type": "string",
|
|
26117
|
+
"format": "email",
|
|
26118
|
+
"description": "Email address"
|
|
26119
|
+
}
|
|
26120
|
+
},
|
|
26121
|
+
"additionalProperties": false,
|
|
26122
|
+
"description": "Person details"
|
|
26123
|
+
},
|
|
26124
|
+
"bot": {
|
|
26125
|
+
"type": "object",
|
|
26126
|
+
"properties": {
|
|
26127
|
+
"owner": {
|
|
26128
|
+
"type": "object",
|
|
26129
|
+
"properties": {
|
|
26130
|
+
"type": {
|
|
26131
|
+
"type": "string",
|
|
26132
|
+
"enum": [
|
|
26133
|
+
"workspace",
|
|
26134
|
+
"user"
|
|
26135
|
+
],
|
|
26136
|
+
"description": "Owner type"
|
|
26137
|
+
},
|
|
26138
|
+
"workspace": {
|
|
26139
|
+
"type": "boolean"
|
|
26140
|
+
}
|
|
26141
|
+
},
|
|
26142
|
+
"required": [
|
|
26143
|
+
"type"
|
|
26144
|
+
],
|
|
26145
|
+
"additionalProperties": false
|
|
26146
|
+
},
|
|
26147
|
+
"workspace_name": {
|
|
26148
|
+
"type": "string",
|
|
26149
|
+
"description": "Workspace name"
|
|
26150
|
+
}
|
|
26151
|
+
},
|
|
26152
|
+
"additionalProperties": false,
|
|
26153
|
+
"description": "Bot details"
|
|
26154
|
+
}
|
|
26155
|
+
},
|
|
26156
|
+
"required": [
|
|
26157
|
+
"object",
|
|
26158
|
+
"id"
|
|
26159
|
+
],
|
|
26160
|
+
"additionalProperties": false,
|
|
26161
|
+
"description": "User who last edited the data source"
|
|
26162
|
+
},
|
|
26163
|
+
"properties": {
|
|
26164
|
+
"type": "object",
|
|
26165
|
+
"additionalProperties": {},
|
|
26166
|
+
"description": "Data source properties"
|
|
26167
|
+
},
|
|
26168
|
+
"parent": {
|
|
26169
|
+
"type": "object",
|
|
26170
|
+
"properties": {
|
|
26171
|
+
"type": {
|
|
26172
|
+
"type": "string",
|
|
26173
|
+
"enum": [
|
|
26174
|
+
"database_id"
|
|
26175
|
+
]
|
|
26176
|
+
},
|
|
26177
|
+
"database_id": {
|
|
26178
|
+
"type": "string"
|
|
26179
|
+
}
|
|
26180
|
+
},
|
|
26181
|
+
"required": [
|
|
26182
|
+
"type",
|
|
26183
|
+
"database_id"
|
|
26184
|
+
],
|
|
26185
|
+
"additionalProperties": true,
|
|
26186
|
+
"description": "Parent database"
|
|
26187
|
+
},
|
|
26188
|
+
"database_parent": {
|
|
26189
|
+
"type": "object",
|
|
26190
|
+
"additionalProperties": {},
|
|
26191
|
+
"description": "Database parent information"
|
|
26192
|
+
},
|
|
26193
|
+
"archived": {
|
|
26194
|
+
"type": "boolean",
|
|
26195
|
+
"description": "Whether the data source is archived"
|
|
26196
|
+
},
|
|
26197
|
+
"in_trash": {
|
|
26198
|
+
"type": "boolean",
|
|
26199
|
+
"description": "Whether data source is in trash"
|
|
26200
|
+
},
|
|
26201
|
+
"is_inline": {
|
|
26202
|
+
"type": "boolean",
|
|
26203
|
+
"description": "Whether displayed inline"
|
|
26204
|
+
},
|
|
26205
|
+
"icon": {
|
|
26206
|
+
"anyOf": [
|
|
26207
|
+
{
|
|
26208
|
+
"type": "object",
|
|
26209
|
+
"properties": {
|
|
26210
|
+
"type": {
|
|
26211
|
+
"type": "string",
|
|
26212
|
+
"enum": [
|
|
26213
|
+
"emoji"
|
|
26214
|
+
],
|
|
26215
|
+
"description": "Emoji icon"
|
|
26216
|
+
},
|
|
26217
|
+
"emoji": {
|
|
26218
|
+
"type": "string",
|
|
26219
|
+
"description": "Emoji character"
|
|
26220
|
+
}
|
|
26221
|
+
},
|
|
26222
|
+
"required": [
|
|
26223
|
+
"type",
|
|
26224
|
+
"emoji"
|
|
26225
|
+
],
|
|
26226
|
+
"additionalProperties": false
|
|
26227
|
+
},
|
|
26228
|
+
{
|
|
26229
|
+
"type": "object",
|
|
26230
|
+
"properties": {
|
|
26231
|
+
"type": {
|
|
26232
|
+
"type": "string",
|
|
26233
|
+
"enum": [
|
|
26234
|
+
"external"
|
|
26235
|
+
],
|
|
26236
|
+
"description": "External icon"
|
|
26237
|
+
},
|
|
26238
|
+
"external": {
|
|
26239
|
+
"type": "object",
|
|
26240
|
+
"properties": {
|
|
26241
|
+
"url": {
|
|
26242
|
+
"type": "string",
|
|
26243
|
+
"format": "uri",
|
|
26244
|
+
"description": "URL of the external icon"
|
|
26245
|
+
}
|
|
26246
|
+
},
|
|
26247
|
+
"required": [
|
|
26248
|
+
"url"
|
|
26249
|
+
],
|
|
26250
|
+
"additionalProperties": false
|
|
26251
|
+
}
|
|
26252
|
+
},
|
|
26253
|
+
"required": [
|
|
26254
|
+
"type",
|
|
26255
|
+
"external"
|
|
26256
|
+
],
|
|
26257
|
+
"additionalProperties": false
|
|
26258
|
+
},
|
|
26259
|
+
{
|
|
26260
|
+
"type": "object",
|
|
26261
|
+
"properties": {
|
|
26262
|
+
"type": {
|
|
26263
|
+
"type": "string",
|
|
26264
|
+
"enum": [
|
|
26265
|
+
"file"
|
|
26266
|
+
],
|
|
26267
|
+
"description": "File icon"
|
|
26268
|
+
},
|
|
26269
|
+
"file": {
|
|
26270
|
+
"type": "object",
|
|
26271
|
+
"properties": {
|
|
26272
|
+
"url": {
|
|
26273
|
+
"type": "string",
|
|
26274
|
+
"format": "uri",
|
|
26275
|
+
"description": "URL of the file icon"
|
|
26276
|
+
},
|
|
26277
|
+
"expiry_time": {
|
|
26278
|
+
"type": "string",
|
|
26279
|
+
"description": "Expiry time of the URL"
|
|
26280
|
+
}
|
|
26281
|
+
},
|
|
26282
|
+
"required": [
|
|
26283
|
+
"url",
|
|
26284
|
+
"expiry_time"
|
|
26285
|
+
],
|
|
26286
|
+
"additionalProperties": false
|
|
26287
|
+
}
|
|
26288
|
+
},
|
|
26289
|
+
"required": [
|
|
26290
|
+
"type",
|
|
26291
|
+
"file"
|
|
26292
|
+
],
|
|
26293
|
+
"additionalProperties": false
|
|
26294
|
+
}
|
|
26295
|
+
],
|
|
26296
|
+
"nullable": true,
|
|
26297
|
+
"description": "Data source icon"
|
|
26298
|
+
},
|
|
26299
|
+
"cover": {
|
|
26300
|
+
"anyOf": [
|
|
26301
|
+
{
|
|
26302
|
+
"type": "object",
|
|
26303
|
+
"properties": {
|
|
26304
|
+
"type": {
|
|
26305
|
+
"type": "string",
|
|
26306
|
+
"enum": [
|
|
26307
|
+
"file"
|
|
26308
|
+
],
|
|
26309
|
+
"description": "Notion-hosted file type"
|
|
26310
|
+
},
|
|
26311
|
+
"file": {
|
|
26312
|
+
"type": "object",
|
|
26313
|
+
"properties": {
|
|
26314
|
+
"url": {
|
|
26315
|
+
"type": "string",
|
|
26316
|
+
"format": "uri",
|
|
26317
|
+
"description": "Authenticated HTTP GET URL to the file"
|
|
26318
|
+
},
|
|
26319
|
+
"expiry_time": {
|
|
26320
|
+
"type": "string",
|
|
26321
|
+
"description": "ISO 8601 date time when the link expires"
|
|
26322
|
+
}
|
|
26323
|
+
},
|
|
26324
|
+
"required": [
|
|
26325
|
+
"url",
|
|
26326
|
+
"expiry_time"
|
|
26327
|
+
],
|
|
26328
|
+
"additionalProperties": false,
|
|
26329
|
+
"description": "File object for Notion-hosted files"
|
|
26330
|
+
}
|
|
26331
|
+
},
|
|
26332
|
+
"required": [
|
|
26333
|
+
"type",
|
|
26334
|
+
"file"
|
|
26335
|
+
],
|
|
26336
|
+
"additionalProperties": false
|
|
26337
|
+
},
|
|
26338
|
+
{
|
|
26339
|
+
"type": "object",
|
|
26340
|
+
"properties": {
|
|
26341
|
+
"type": {
|
|
26342
|
+
"type": "string",
|
|
26343
|
+
"enum": [
|
|
26344
|
+
"file_upload"
|
|
26345
|
+
],
|
|
26346
|
+
"description": "File uploaded via API type"
|
|
26347
|
+
},
|
|
26348
|
+
"file_upload": {
|
|
26349
|
+
"type": "object",
|
|
26350
|
+
"properties": {
|
|
26351
|
+
"id": {
|
|
26352
|
+
"type": "string",
|
|
26353
|
+
"description": "ID of a File Upload object"
|
|
26354
|
+
}
|
|
26355
|
+
},
|
|
26356
|
+
"required": [
|
|
26357
|
+
"id"
|
|
26358
|
+
],
|
|
26359
|
+
"additionalProperties": false,
|
|
26360
|
+
"description": "File upload object"
|
|
26361
|
+
}
|
|
26362
|
+
},
|
|
26363
|
+
"required": [
|
|
26364
|
+
"type",
|
|
26365
|
+
"file_upload"
|
|
26366
|
+
],
|
|
26367
|
+
"additionalProperties": false
|
|
26368
|
+
},
|
|
26369
|
+
{
|
|
26370
|
+
"type": "object",
|
|
26371
|
+
"properties": {
|
|
26372
|
+
"type": {
|
|
26373
|
+
"type": "string",
|
|
26374
|
+
"enum": [
|
|
26375
|
+
"external"
|
|
26376
|
+
],
|
|
26377
|
+
"description": "External file type"
|
|
26378
|
+
},
|
|
26379
|
+
"external": {
|
|
26380
|
+
"type": "object",
|
|
26381
|
+
"properties": {
|
|
26382
|
+
"url": {
|
|
26383
|
+
"type": "string",
|
|
26384
|
+
"format": "uri",
|
|
26385
|
+
"description": "Link to externally hosted content"
|
|
26386
|
+
}
|
|
26387
|
+
},
|
|
26388
|
+
"required": [
|
|
26389
|
+
"url"
|
|
26390
|
+
],
|
|
26391
|
+
"additionalProperties": false,
|
|
26392
|
+
"description": "External file object"
|
|
26393
|
+
}
|
|
26394
|
+
},
|
|
26395
|
+
"required": [
|
|
26396
|
+
"type",
|
|
26397
|
+
"external"
|
|
26398
|
+
],
|
|
26399
|
+
"additionalProperties": false
|
|
26400
|
+
}
|
|
26401
|
+
],
|
|
26402
|
+
"nullable": true,
|
|
26403
|
+
"description": "Data source cover"
|
|
26404
|
+
},
|
|
26405
|
+
"title": {
|
|
26406
|
+
"type": "array",
|
|
26407
|
+
"items": {
|
|
26408
|
+
"type": "object",
|
|
26409
|
+
"properties": {
|
|
26410
|
+
"type": {
|
|
26411
|
+
"type": "string",
|
|
26412
|
+
"enum": [
|
|
26413
|
+
"text",
|
|
26414
|
+
"mention",
|
|
26415
|
+
"equation"
|
|
26416
|
+
],
|
|
26417
|
+
"description": "Type of rich text"
|
|
26418
|
+
},
|
|
26419
|
+
"text": {
|
|
26420
|
+
"type": "object",
|
|
26421
|
+
"properties": {
|
|
26422
|
+
"content": {
|
|
26423
|
+
"type": "string",
|
|
26424
|
+
"description": "The actual text content"
|
|
26425
|
+
},
|
|
26426
|
+
"link": {
|
|
26427
|
+
"type": "object",
|
|
26428
|
+
"properties": {
|
|
26429
|
+
"url": {
|
|
26430
|
+
"type": "string",
|
|
26431
|
+
"format": "uri",
|
|
26432
|
+
"description": "URL for the link"
|
|
26433
|
+
}
|
|
26434
|
+
},
|
|
26435
|
+
"required": [
|
|
26436
|
+
"url"
|
|
26437
|
+
],
|
|
26438
|
+
"additionalProperties": false,
|
|
26439
|
+
"nullable": true,
|
|
26440
|
+
"description": "Optional link object"
|
|
26441
|
+
}
|
|
26442
|
+
},
|
|
26443
|
+
"required": [
|
|
26444
|
+
"content"
|
|
26445
|
+
],
|
|
26446
|
+
"additionalProperties": false,
|
|
26447
|
+
"description": "Text object (when type is \"text\")"
|
|
26448
|
+
},
|
|
26449
|
+
"annotations": {
|
|
26450
|
+
"type": "object",
|
|
26451
|
+
"properties": {
|
|
26452
|
+
"bold": {
|
|
26453
|
+
"type": "boolean",
|
|
26454
|
+
"default": false,
|
|
26455
|
+
"description": "Whether text is bolded"
|
|
26456
|
+
},
|
|
26457
|
+
"italic": {
|
|
26458
|
+
"type": "boolean",
|
|
26459
|
+
"default": false,
|
|
26460
|
+
"description": "Whether text is italicized"
|
|
26461
|
+
},
|
|
26462
|
+
"strikethrough": {
|
|
26463
|
+
"type": "boolean",
|
|
26464
|
+
"default": false,
|
|
26465
|
+
"description": "Whether text is struck through"
|
|
26466
|
+
},
|
|
26467
|
+
"underline": {
|
|
26468
|
+
"type": "boolean",
|
|
26469
|
+
"default": false,
|
|
26470
|
+
"description": "Whether text is underlined"
|
|
26471
|
+
},
|
|
26472
|
+
"code": {
|
|
26473
|
+
"type": "boolean",
|
|
26474
|
+
"default": false,
|
|
26475
|
+
"description": "Whether text is code style"
|
|
26476
|
+
},
|
|
26477
|
+
"color": {
|
|
26478
|
+
"type": "string",
|
|
26479
|
+
"enum": [
|
|
26480
|
+
"default",
|
|
26481
|
+
"gray",
|
|
26482
|
+
"brown",
|
|
26483
|
+
"orange",
|
|
26484
|
+
"yellow",
|
|
26485
|
+
"green",
|
|
26486
|
+
"blue",
|
|
26487
|
+
"purple",
|
|
26488
|
+
"pink",
|
|
26489
|
+
"red"
|
|
26490
|
+
],
|
|
26491
|
+
"default": "default",
|
|
26492
|
+
"description": "Color of the text"
|
|
26493
|
+
}
|
|
26494
|
+
},
|
|
26495
|
+
"additionalProperties": false,
|
|
26496
|
+
"description": "Styling information for the rich text"
|
|
26497
|
+
},
|
|
26498
|
+
"plain_text": {
|
|
26499
|
+
"type": "string",
|
|
26500
|
+
"description": "Plain text without annotations"
|
|
26501
|
+
},
|
|
26502
|
+
"href": {
|
|
26503
|
+
"type": "string",
|
|
26504
|
+
"nullable": true,
|
|
26505
|
+
"description": "URL of any link"
|
|
26506
|
+
}
|
|
26507
|
+
},
|
|
26508
|
+
"required": [
|
|
26509
|
+
"type"
|
|
26510
|
+
],
|
|
26511
|
+
"additionalProperties": false
|
|
26512
|
+
},
|
|
26513
|
+
"default": [],
|
|
26514
|
+
"description": "Data source title (can be empty array)"
|
|
26515
|
+
},
|
|
26516
|
+
"description": {
|
|
26517
|
+
"type": "array",
|
|
26518
|
+
"items": {
|
|
26519
|
+
"type": "object",
|
|
26520
|
+
"properties": {
|
|
26521
|
+
"type": {
|
|
26522
|
+
"type": "string",
|
|
26523
|
+
"enum": [
|
|
26524
|
+
"text",
|
|
26525
|
+
"mention",
|
|
26526
|
+
"equation"
|
|
26527
|
+
],
|
|
26528
|
+
"description": "Type of rich text"
|
|
26529
|
+
},
|
|
26530
|
+
"text": {
|
|
26531
|
+
"type": "object",
|
|
26532
|
+
"properties": {
|
|
26533
|
+
"content": {
|
|
26534
|
+
"type": "string",
|
|
26535
|
+
"description": "The actual text content"
|
|
26536
|
+
},
|
|
26537
|
+
"link": {
|
|
26538
|
+
"type": "object",
|
|
26539
|
+
"properties": {
|
|
26540
|
+
"url": {
|
|
26541
|
+
"type": "string",
|
|
26542
|
+
"format": "uri",
|
|
26543
|
+
"description": "URL for the link"
|
|
26544
|
+
}
|
|
26545
|
+
},
|
|
26546
|
+
"required": [
|
|
26547
|
+
"url"
|
|
26548
|
+
],
|
|
26549
|
+
"additionalProperties": false,
|
|
26550
|
+
"nullable": true,
|
|
26551
|
+
"description": "Optional link object"
|
|
26552
|
+
}
|
|
26553
|
+
},
|
|
26554
|
+
"required": [
|
|
26555
|
+
"content"
|
|
26556
|
+
],
|
|
26557
|
+
"additionalProperties": false,
|
|
26558
|
+
"description": "Text object (when type is \"text\")"
|
|
26559
|
+
},
|
|
26560
|
+
"annotations": {
|
|
26561
|
+
"type": "object",
|
|
26562
|
+
"properties": {
|
|
26563
|
+
"bold": {
|
|
26564
|
+
"type": "boolean",
|
|
26565
|
+
"default": false,
|
|
26566
|
+
"description": "Whether text is bolded"
|
|
26567
|
+
},
|
|
26568
|
+
"italic": {
|
|
26569
|
+
"type": "boolean",
|
|
26570
|
+
"default": false,
|
|
26571
|
+
"description": "Whether text is italicized"
|
|
26572
|
+
},
|
|
26573
|
+
"strikethrough": {
|
|
26574
|
+
"type": "boolean",
|
|
26575
|
+
"default": false,
|
|
26576
|
+
"description": "Whether text is struck through"
|
|
26577
|
+
},
|
|
26578
|
+
"underline": {
|
|
26579
|
+
"type": "boolean",
|
|
26580
|
+
"default": false,
|
|
26581
|
+
"description": "Whether text is underlined"
|
|
26582
|
+
},
|
|
26583
|
+
"code": {
|
|
26584
|
+
"type": "boolean",
|
|
26585
|
+
"default": false,
|
|
26586
|
+
"description": "Whether text is code style"
|
|
26587
|
+
},
|
|
26588
|
+
"color": {
|
|
26589
|
+
"type": "string",
|
|
26590
|
+
"enum": [
|
|
26591
|
+
"default",
|
|
26592
|
+
"gray",
|
|
26593
|
+
"brown",
|
|
26594
|
+
"orange",
|
|
26595
|
+
"yellow",
|
|
26596
|
+
"green",
|
|
26597
|
+
"blue",
|
|
26598
|
+
"purple",
|
|
26599
|
+
"pink",
|
|
26600
|
+
"red"
|
|
26601
|
+
],
|
|
26602
|
+
"default": "default",
|
|
26603
|
+
"description": "Color of the text"
|
|
26604
|
+
}
|
|
26605
|
+
},
|
|
26606
|
+
"additionalProperties": false,
|
|
26607
|
+
"description": "Styling information for the rich text"
|
|
26608
|
+
},
|
|
26609
|
+
"plain_text": {
|
|
26610
|
+
"type": "string",
|
|
26611
|
+
"description": "Plain text without annotations"
|
|
26612
|
+
},
|
|
26613
|
+
"href": {
|
|
26614
|
+
"type": "string",
|
|
26615
|
+
"nullable": true,
|
|
26616
|
+
"description": "URL of any link"
|
|
26617
|
+
}
|
|
26618
|
+
},
|
|
26619
|
+
"required": [
|
|
26620
|
+
"type"
|
|
26621
|
+
],
|
|
26622
|
+
"additionalProperties": false
|
|
26623
|
+
},
|
|
26624
|
+
"description": "Data source description"
|
|
26625
|
+
},
|
|
26626
|
+
"url": {
|
|
26627
|
+
"type": "string",
|
|
26628
|
+
"format": "uri",
|
|
26629
|
+
"description": "URL of the data source"
|
|
26630
|
+
},
|
|
26631
|
+
"public_url": {
|
|
26632
|
+
"type": "string",
|
|
26633
|
+
"format": "uri",
|
|
26634
|
+
"nullable": true,
|
|
26635
|
+
"description": "Public shareable URL of the data source"
|
|
26636
|
+
}
|
|
26637
|
+
},
|
|
26638
|
+
"required": [
|
|
26639
|
+
"object",
|
|
26640
|
+
"id",
|
|
26641
|
+
"created_time",
|
|
26642
|
+
"last_edited_time",
|
|
26643
|
+
"created_by",
|
|
26644
|
+
"last_edited_by",
|
|
26645
|
+
"properties",
|
|
26646
|
+
"parent",
|
|
26647
|
+
"archived"
|
|
26648
|
+
],
|
|
26649
|
+
"additionalProperties": true,
|
|
26650
|
+
"description": "Retrieved data source object with properties schema"
|
|
25922
26651
|
}
|
|
25923
26652
|
},
|
|
25924
26653
|
"required": [
|
|
@@ -31374,7 +32103,7 @@
|
|
|
31374
32103
|
}
|
|
31375
32104
|
]
|
|
31376
32105
|
},
|
|
31377
|
-
"usageExample": "// Create Page example\nconst notion_create_page = new NotionBubble({\n operation: \"create_page\", // Create a new page in Notion\n parent: { type: \"page_id\", page_id: \"example string\" }, // Parent page, database, or data source. IMPORTANT: To add a row to a database, use type \"data_source_id\" with the data_source_id (NOT the database_id). If you pass type \"database_id\", it will be auto-resolved to the correct data_source_id via an extra API call. Get the data_source_id from retrieve_database response (data_sources[0].id).\n properties: {}, // Page properties (required if parent is a data source)\n children: [], // Array of block objects for page content\n icon: { type: \"emoji\", emoji: \"example string\" // Emoji character }, // Page icon (emoji or file)\n cover: { type: \"file\", file: { url: \"example string\" // Authenticated HTTP GET URL to the file, expiry_time: \"example string\" // ISO 8601 date time when the link expires } }, // Page cover image\n});\n\nconst result = await notion_create_page.action();\n// outputSchema for result.data when operation === 'create_page':\n// {\n// operation: \"create_page\" // Create page operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// page: { object: \"page\" // Object type, id: string // Page ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the page, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the page, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Page cover image, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Page icon, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } // Parent of the page, archived: boolean // Whether the page is archived, in_trash: boolean | undefined // Whether the page is in trash, properties: Record<string, unknown> // Page properties, url: string // Public URL of the page, public_url: string | null | undefined // Public shareable URL } | undefined // Created page object\n// }\n\n\n// Retrieve Page example\nconst notion_retrieve_page = new NotionBubble({\n operation: \"retrieve_page\", // Retrieve a page by its ID\n page_id: \"example string\", // UUID of the Notion page\n filter_properties: [\"example string\"], // Limit response to specific property IDs\n});\n\nconst result = await notion_retrieve_page.action();\n// outputSchema for result.data when operation === 'retrieve_page':\n// {\n// operation: \"retrieve_page\" // Retrieve page operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// page: { object: \"page\" // Object type, id: string // Page ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the page, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the page, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Page cover image, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Page icon, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } // Parent of the page, archived: boolean // Whether the page is archived, in_trash: boolean | undefined // Whether the page is in trash, properties: Record<string, unknown> // Page properties, url: string // Public URL of the page, public_url: string | null | undefined // Public shareable URL } | undefined // Retrieved page object\n// }\n\n\n// Update Page example\nconst notion_update_page = new NotionBubble({\n operation: \"update_page\", // Update an existing page\n page_id: \"example string\", // UUID of the Notion page\n properties: {}, // Page properties to update\n icon: { type: \"emoji\", emoji: \"example string\" }, // Page icon (emoji or file, null to remove)\n cover: { type: \"file\", file: { url: \"example string\" // Authenticated HTTP GET URL to the file, expiry_time: \"example string\" // ISO 8601 date time when the link expires } }, // Page cover image (null to remove)\n archived: true, // Set to true to archive the page\n in_trash: true, // Set to true to move page to trash\n is_locked: true, // Control if page can be edited in Notion UI\n});\n\nconst result = await notion_update_page.action();\n// outputSchema for result.data when operation === 'update_page':\n// {\n// operation: \"update_page\" // Update page operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// page: { object: \"page\" // Object type, id: string // Page ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the page, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the page, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Page cover image, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Page icon, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } // Parent of the page, archived: boolean // Whether the page is archived, in_trash: boolean | undefined // Whether the page is in trash, properties: Record<string, unknown> // Page properties, url: string // Public URL of the page, public_url: string | null | undefined // Public shareable URL } | undefined // Updated page object\n// }\n\n\n// Retrieve Database example\nconst notion_retrieve_database = new NotionBubble({\n operation: \"retrieve_database\", // Retrieve a database by its ID. The response includes a data_sources array — use data_sources[0].id as the data_source_id for query_data_source and create_page operations. In Notion API v2025+, database_id and data_source_id are different UUIDs.\n database_id: \"example string\", // UUID of the Notion database (the 32-character hex ID from the Notion URL)\n});\n\nconst result = await notion_retrieve_database.action();\n// outputSchema for result.data when operation === 'retrieve_database':\n// {\n// operation: \"retrieve_database\" // Retrieve database operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// database: { object: \"database\" // Object type, id: string // Database ID, To find a database ID, navigate to the database URL in your Notion workspace. The ID is the string of characters in the URL that is between the slash following the workspace name (if applicable) and the question mark. The ID is a 32 characters alphanumeric string., created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, title: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] // Database title, description: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] | undefined // Database description, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Database icon, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Database cover, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } // Parent of the database, is_inline: boolean | undefined // Whether displayed inline, in_trash: boolean | undefined // Whether in trash, is_locked: boolean | undefined // Whether locked from editing, data_sources: { id: string // Data source ID, name: string // Data source name, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined }[] // Array of data sources in this database, url: string | undefined // URL of the database, public_url: string | null | undefined } | undefined // Retrieved database object\n// }\n\n\n// Query Data Source example\nconst notion_query_data_source = new NotionBubble({\n operation: \"query_data_source\", // Query a data source to retrieve pages\n data_source_id: \"example string\", // UUID of the Notion data source (NOT the database ID). In Notion API v2025+, databases are containers and data sources are the queryable tables inside them — they have different IDs. You can get the data_source_id from retrieve_database response (data_sources[0].id) or from a search result. If you only have a database_id, pass it via the database_id parameter instead and it will be resolved automatically.\n database_id: \"example string\", // UUID of the Notion database (from the URL). If provided instead of data_source_id, the bubble will automatically resolve the correct data_source_id by calling retrieve_database. This is a convenience parameter — using data_source_id directly is more efficient as it avoids an extra API call.\n filter: {}, // Filter object for querying\n sorts: [], // Array of sort objects\n start_cursor: \"example string\", // Cursor for pagination\n page_size: 100 // default, // Number of results per page (1-100)\n filter_properties: [\"example string\"], // Limit response to specific property IDs\n result_type: \"page\" // options: \"page\", \"data_source\", // Filter results to page or data_source\n});\n\nconst result = await notion_query_data_source.action();\n// outputSchema for result.data when operation === 'query_data_source':\n// {\n// operation: \"query_data_source\" // Query data source operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// results: { object: \"page\" | \"data_source\" // Object type (page or data_source), id: string // Object ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, url: string | undefined // URL of the object, properties: Record<string, unknown> | undefined // Object properties, title: { plain_text: string | undefined }[] | undefined // Title (for data sources), parent: Record<string, unknown> | undefined // Parent of the object, archived: boolean | undefined // Whether the object is archived, in_trash: boolean | undefined // Whether the object is in trash }[] | undefined // Array of pages or data sources from query,\n// next_cursor: string | null | undefined // Cursor for pagination,\n// has_more: boolean | undefined // Whether more results exist\n// }\n\n\n// Create Data Source example\nconst notion_create_data_source = new NotionBubble({\n operation: \"create_data_source\", // Create a new data source in an existing database\n parent: { type: \"database_id\" // Parent type, database_id: \"example string\" // ID of the parent database }, // Parent database for the new data source\n properties: {}, // Property schema for the data source (hash map where keys are property names)\n title: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Title of the data source\n icon: { type: \"emoji\", emoji: \"example string\" // Emoji character }, // Data source icon\n});\n\nconst result = await notion_create_data_source.action();\n// outputSchema for result.data when operation === 'create_data_source':\n// {\n// operation: \"create_data_source\" // Create data source operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// dataSource: { object: \"data_source\" // Object type, id: string // Data source ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the data source, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the data source, properties: Record<string, unknown> // Data source properties, parent: { type: \"database_id\", database_id: string } // Parent database, database_parent: Record<string, unknown> | undefined // Database parent information, archived: boolean // Whether the data source is archived, in_trash: boolean | undefined // Whether data source is in trash, is_inline: boolean | undefined // Whether displayed inline, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Data source icon, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Data source cover, title: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] // Data source title (can be empty array), description: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] | undefined // Data source description, url: string | undefined // URL of the data source, public_url: string | null | undefined // Public shareable URL of the data source } | undefined // Created data source object\n// }\n\n\n// Update Data Source example\nconst notion_update_data_source = new NotionBubble({\n operation: \"update_data_source\", // Update a data source\n data_source_id: \"example string\", // UUID of the Notion data source\n properties: {}, // Property schema updates\n title: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Updated title\n description: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Updated description\n icon: { type: \"emoji\", emoji: \"example string\" // Emoji character }, // Updated icon (null to remove)\n in_trash: true, // Set to true to move to trash\n parent: { type: \"database_id\", database_id: \"example string\" // ID of the destination database }, // New parent database to move data source\n});\n\nconst result = await notion_update_data_source.action();\n// outputSchema for result.data when operation === 'update_data_source':\n// {\n// operation: \"update_data_source\" // Update data source operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// dataSource: { object: \"data_source\" // Object type, id: string // Data source ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the data source, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the data source, properties: Record<string, unknown> // Data source properties, parent: { type: \"database_id\", database_id: string } // Parent database, database_parent: Record<string, unknown> | undefined // Database parent information, archived: boolean // Whether the data source is archived, in_trash: boolean | undefined // Whether data source is in trash, is_inline: boolean | undefined // Whether displayed inline, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Data source icon, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Data source cover, title: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] // Data source title (can be empty array), description: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] | undefined // Data source description, url: string | undefined // URL of the data source, public_url: string | null | undefined // Public shareable URL of the data source } | undefined // Updated data source object\n// }\n\n\n// Create Database example\nconst notion_create_database = new NotionBubble({\n operation: \"create_database\", // Create a new database\n initial_data_source: { properties: {} // Property schema for the data source (hash map where keys are property names) }, // Initial data source configuration\n title: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Title of the database\n description: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Description of the database\n icon: { type: \"emoji\", emoji: \"example string\" }, // Database icon\n cover: { type: \"file\", file: { url: \"example string\" // Authenticated HTTP GET URL to the file, expiry_time: \"example string\" // ISO 8601 date time when the link expires } }, // Database cover image\n});\n\nconst result = await notion_create_database.action();\n// outputSchema for result.data when operation === 'create_database':\n// {\n// operation: \"create_database\" // Create database operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// database: { object: \"database\" // Object type, id: string // Database ID, To find a database ID, navigate to the database URL in your Notion workspace. The ID is the string of characters in the URL that is between the slash following the workspace name (if applicable) and the question mark. The ID is a 32 characters alphanumeric string., created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, title: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] // Database title, description: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] | undefined // Database description, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Database icon, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Database cover, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } // Parent of the database, is_inline: boolean | undefined // Whether displayed inline, in_trash: boolean | undefined // Whether in trash, is_locked: boolean | undefined // Whether locked from editing, data_sources: { id: string // Data source ID, name: string // Data source name, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined }[] // Array of data sources in this database, url: string | undefined // URL of the database, public_url: string | null | undefined } | undefined // Created database object\n// }\n\n\n// Update Database example\nconst notion_update_database = new NotionBubble({\n operation: \"update_database\", // Update a database\n database_id: \"example string\", // UUID of the Notion database\n title: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Updated title\n description: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Updated description\n icon: { type: \"emoji\", emoji: \"example string\" }, // Updated icon (null to remove)\n cover: { type: \"file\", file: { url: \"example string\" // Authenticated HTTP GET URL to the file, expiry_time: \"example string\" // ISO 8601 date time when the link expires } }, // Updated cover (null to remove)\n parent: { type: \"page_id\", page_id: \"example string\" }, // New parent to move database\n is_inline: true, // Whether database should be displayed inline\n in_trash: true, // Set to true to move to trash\n is_locked: true, // Set to true to lock from editing\n});\n\nconst result = await notion_update_database.action();\n// outputSchema for result.data when operation === 'update_database':\n// {\n// operation: \"update_database\" // Update database operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// database: { object: \"database\" // Object type, id: string // Database ID, To find a database ID, navigate to the database URL in your Notion workspace. The ID is the string of characters in the URL that is between the slash following the workspace name (if applicable) and the question mark. The ID is a 32 characters alphanumeric string., created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, title: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] // Database title, description: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] | undefined // Database description, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Database icon, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Database cover, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } // Parent of the database, is_inline: boolean | undefined // Whether displayed inline, in_trash: boolean | undefined // Whether in trash, is_locked: boolean | undefined // Whether locked from editing, data_sources: { id: string // Data source ID, name: string // Data source name, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined }[] // Array of data sources in this database, url: string | undefined // URL of the database, public_url: string | null | undefined } | undefined // Updated database object\n// }\n\n\n// Append Block Children example\nconst notion_append_block_children = new NotionBubble({\n operation: \"append_block_children\", // Append children blocks to a parent block or page\n block_id: \"example string\", // UUID of the parent block or page\n children: [], // Array of block objects to append (max 100)\n after: \"example string\", // ID of block to append after\n});\n\nconst result = await notion_append_block_children.action();\n// outputSchema for result.data when operation === 'append_block_children':\n// {\n// operation: \"append_block_children\" // Append block children operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// blocks: { object: \"block\" // Object type, id: string // Block ID, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } | undefined // Parent of the block, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the block, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the block, has_children: boolean // Whether the block has children, archived: boolean // Whether the block is archived, in_trash: boolean | undefined // Whether block is in trash, type: string // Type of block (e.g., paragraph, heading_2, etc.) }[] | undefined // Array of appended block objects,\n// next_cursor: string | null | undefined // Cursor for pagination,\n// has_more: boolean | undefined // Whether more results exist\n// }\n\n\n// Retrieve Block Children example\nconst notion_retrieve_block_children = new NotionBubble({\n operation: \"retrieve_block_children\", // Retrieve children blocks of a parent block\n block_id: \"example string\", // UUID of the parent block\n start_cursor: \"example string\", // Cursor for pagination\n page_size: 100 // default, // Number of items per response (max 100)\n});\n\nconst result = await notion_retrieve_block_children.action();\n// outputSchema for result.data when operation === 'retrieve_block_children':\n// {\n// operation: \"retrieve_block_children\" // Retrieve block children operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// blocks: { object: \"block\" // Object type, id: string // Block ID, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } | undefined // Parent of the block, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the block, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the block, has_children: boolean // Whether the block has children, archived: boolean // Whether the block is archived, in_trash: boolean | undefined // Whether block is in trash, type: string // Type of block (e.g., paragraph, heading_2, etc.) }[] | undefined // Array of block children,\n// next_cursor: string | null | undefined // Cursor for pagination,\n// has_more: boolean | undefined // Whether more results exist\n// }\n\n\n// Retrieve Block example\nconst notion_retrieve_block = new NotionBubble({\n operation: \"retrieve_block\", // Retrieve a block by its ID\n block_id: \"example string\", // UUID of the Notion block\n});\n\nconst result = await notion_retrieve_block.action();\n// outputSchema for result.data when operation === 'retrieve_block':\n// {\n// operation: \"retrieve_block\" // Retrieve block operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// block: { object: \"block\" // Object type, id: string // Block ID, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } | undefined // Parent of the block, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the block, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the block, has_children: boolean // Whether the block has children, archived: boolean // Whether the block is archived, in_trash: boolean | undefined // Whether block is in trash, type: string // Type of block (e.g., paragraph, heading_2, etc.) } | undefined // Retrieved block object\n// }\n\n\n// Update Block example\nconst notion_update_block = new NotionBubble({\n operation: \"update_block\", // Update a block\n block_id: \"example string\", // UUID of the Notion block\n archived: true, // Set to true to archive the block\n});\n\nconst result = await notion_update_block.action();\n// outputSchema for result.data when operation === 'update_block':\n// {\n// operation: \"update_block\" // Update block operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// block: { object: \"block\" // Object type, id: string // Block ID, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } | undefined // Parent of the block, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the block, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the block, has_children: boolean // Whether the block has children, archived: boolean // Whether the block is archived, in_trash: boolean | undefined // Whether block is in trash, type: string // Type of block (e.g., paragraph, heading_2, etc.) } | undefined // Updated block object\n// }\n\n\n// Create Comment example\nconst notion_create_comment = new NotionBubble({\n operation: \"create_comment\", // Create a comment on a page or block\n parent: { page_id: \"example string\" // ID of parent page, block_id: \"example string\" // ID of parent block }, // Parent page or block ID (one of page_id or block_id is required)\n rich_text: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Array of rich text objects for comment content\n attachments: [{ file_upload_id: \"example string\" // File Upload ID, type: \"file_upload\" }], // Array of file attachments (max 3)\n display_name: { type: \"integration\" // options: \"integration\", \"user\", \"custom\" // Type of display name, custom: { name: \"example string\" // Custom name for the comment } // Custom name object (required if type is custom) }, // Custom display name for the comment\n});\n\nconst result = await notion_create_comment.action();\n// outputSchema for result.data when operation === 'create_comment':\n// {\n// operation: \"create_comment\" // Create comment operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// comment: { object: \"comment\" // Object type, id: string // Comment ID, parent: { type: \"page_id\" | \"block_id\", page_id: string | undefined, block_id: string | undefined } // Parent page or block, discussion_id: string // Discussion thread ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the comment, rich_text: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] // Comment content } | undefined // Created comment object\n// }\n\n\n// Retrieve Comment example\nconst notion_retrieve_comment = new NotionBubble({\n operation: \"retrieve_comment\", // Retrieve a comment by its ID\n comment_id: \"example string\", // UUID of the Notion comment\n});\n\nconst result = await notion_retrieve_comment.action();\n// outputSchema for result.data when operation === 'retrieve_comment':\n// {\n// operation: \"retrieve_comment\" // Retrieve comment operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// comment: { object: \"comment\" // Object type, id: string // Comment ID, parent: { type: \"page_id\" | \"block_id\", page_id: string | undefined, block_id: string | undefined } // Parent page or block, discussion_id: string // Discussion thread ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the comment, rich_text: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] // Comment content } | undefined // Retrieved comment object\n// }\n\n\n// List Users example\nconst notion_list_users = new NotionBubble({\n operation: \"list_users\", // List all users in the workspace\n start_cursor: \"example string\", // Cursor for pagination\n page_size: 100 // default, // Number of items per page (max 100)\n});\n\nconst result = await notion_list_users.action();\n// outputSchema for result.data when operation === 'list_users':\n// {\n// operation: \"list_users\" // List users operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// users: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details }[] | undefined // Array of users in the workspace,\n// next_cursor: string | null | undefined // Cursor for pagination,\n// has_more: boolean | undefined // Whether more results exist\n// }\n\n\n// Search example\nconst notion_search = new NotionBubble({\n operation: \"search\", // Search all pages and data sources shared with the integration\n query: \"example string\", // Text to compare against page and data source titles. If not provided, returns all pages and data sources shared with the integration\n sort: { direction: \"ascending\" // options: \"ascending\", \"descending\" // Sort direction, timestamp: \"last_edited_time\" // Timestamp field to sort by (only \"last_edited_time\" is supported) }, // Sort criteria. If not provided, most recently edited results are returned first\n filter: { value: \"page\" // options: \"page\", \"data_source\" // Filter results to only pages or only data sources, property: \"object\" // Property to filter on (only \"object\" is supported) }, // Filter to limit results to either pages or data sources\n start_cursor: \"example string\", // Cursor for pagination (from previous response)\n page_size: 100 // default, // Number of items per page (max 100)\n});\n\nconst result = await notion_search.action();\n// outputSchema for result.data when operation === 'search':\n// {\n// operation: \"search\" // Search operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// results: { object: \"page\" | \"data_source\" // Object type (page or data_source), id: string // Object ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, url: string | undefined // URL of the object, properties: Record<string, unknown> | undefined // Object properties, title: { plain_text: string | undefined }[] | undefined // Title (for data sources), parent: Record<string, unknown> | undefined // Parent of the object, archived: boolean | undefined // Whether the object is archived, in_trash: boolean | undefined // Whether the object is in trash }[] | undefined // Array of pages and/or data sources matching the search query,\n// next_cursor: string | null | undefined // Cursor for pagination,\n// has_more: boolean | undefined // Whether more results exist\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`notion failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
32106
|
+
"usageExample": "// Create Page example\nconst notion_create_page = new NotionBubble({\n operation: \"create_page\", // Create a new page in Notion\n parent: { type: \"page_id\", page_id: \"example string\" }, // Parent page, database, or data source. IMPORTANT: To add a row to a database, use type \"data_source_id\" with the data_source_id (NOT the database_id). If you pass type \"database_id\", it will be auto-resolved to the correct data_source_id via an extra API call. Get the data_source_id from retrieve_database response (data_sources[0].id).\n properties: {}, // Page properties (required if parent is a data source)\n children: [], // Array of block objects for page content\n icon: { type: \"emoji\", emoji: \"example string\" // Emoji character }, // Page icon (emoji or file)\n cover: { type: \"file\", file: { url: \"example string\" // Authenticated HTTP GET URL to the file, expiry_time: \"example string\" // ISO 8601 date time when the link expires } }, // Page cover image\n});\n\nconst result = await notion_create_page.action();\n// outputSchema for result.data when operation === 'create_page':\n// {\n// operation: \"create_page\" // Create page operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// page: { object: \"page\" // Object type, id: string // Page ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the page, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the page, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Page cover image, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Page icon, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } // Parent of the page, archived: boolean // Whether the page is archived, in_trash: boolean | undefined // Whether the page is in trash, properties: Record<string, unknown> // Page properties, url: string // Public URL of the page, public_url: string | null | undefined // Public shareable URL } | undefined // Created page object\n// }\n\n\n// Retrieve Page example\nconst notion_retrieve_page = new NotionBubble({\n operation: \"retrieve_page\", // Retrieve a page by its ID\n page_id: \"example string\", // UUID of the Notion page\n filter_properties: [\"example string\"], // Limit response to specific property IDs\n});\n\nconst result = await notion_retrieve_page.action();\n// outputSchema for result.data when operation === 'retrieve_page':\n// {\n// operation: \"retrieve_page\" // Retrieve page operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// page: { object: \"page\" // Object type, id: string // Page ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the page, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the page, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Page cover image, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Page icon, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } // Parent of the page, archived: boolean // Whether the page is archived, in_trash: boolean | undefined // Whether the page is in trash, properties: Record<string, unknown> // Page properties, url: string // Public URL of the page, public_url: string | null | undefined // Public shareable URL } | undefined // Retrieved page object\n// }\n\n\n// Update Page example\nconst notion_update_page = new NotionBubble({\n operation: \"update_page\", // Update an existing page\n page_id: \"example string\", // UUID of the Notion page\n properties: {}, // Page properties to update\n icon: { type: \"emoji\", emoji: \"example string\" }, // Page icon (emoji or file, null to remove)\n cover: { type: \"file\", file: { url: \"example string\" // Authenticated HTTP GET URL to the file, expiry_time: \"example string\" // ISO 8601 date time when the link expires } }, // Page cover image (null to remove)\n archived: true, // Set to true to archive the page\n in_trash: true, // Set to true to move page to trash\n is_locked: true, // Control if page can be edited in Notion UI\n});\n\nconst result = await notion_update_page.action();\n// outputSchema for result.data when operation === 'update_page':\n// {\n// operation: \"update_page\" // Update page operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// page: { object: \"page\" // Object type, id: string // Page ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the page, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the page, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Page cover image, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Page icon, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } // Parent of the page, archived: boolean // Whether the page is archived, in_trash: boolean | undefined // Whether the page is in trash, properties: Record<string, unknown> // Page properties, url: string // Public URL of the page, public_url: string | null | undefined // Public shareable URL } | undefined // Updated page object\n// }\n\n\n// Retrieve Database example\nconst notion_retrieve_database = new NotionBubble({\n operation: \"retrieve_database\", // Retrieve a database by its ID. The response includes a data_sources array — use data_sources[0].id as the data_source_id for query_data_source and create_page operations. In Notion API v2025+, database_id and data_source_id are different UUIDs.\n database_id: \"example string\", // UUID of the Notion database (the 32-character hex ID from the Notion URL)\n});\n\nconst result = await notion_retrieve_database.action();\n// outputSchema for result.data when operation === 'retrieve_database':\n// {\n// operation: \"retrieve_database\" // Retrieve database operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// database: { object: \"database\" // Object type, id: string // Database ID, To find a database ID, navigate to the database URL in your Notion workspace. The ID is the string of characters in the URL that is between the slash following the workspace name (if applicable) and the question mark. The ID is a 32 characters alphanumeric string., created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, title: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] // Database title, description: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] | undefined // Database description, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Database icon, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Database cover, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } // Parent of the database, is_inline: boolean | undefined // Whether displayed inline, in_trash: boolean | undefined // Whether in trash, is_locked: boolean | undefined // Whether locked from editing, data_sources: { id: string // Data source ID, name: string // Data source name, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined }[] // Array of data sources in this database, url: string | undefined // URL of the database, public_url: string | null | undefined } | undefined // Retrieved database object (with auto-fetched properties schema from first data source)\n// }\n\n\n// Retrieve Data Source example\nconst notion_retrieve_data_source = new NotionBubble({\n operation: \"retrieve_data_source\", // Retrieve a data source by its ID to get the schema (properties). Returns the property definitions (names, types, options, etc.) for the data source. NOTE: retrieve_database now auto-fetches this, so you typically don't need this operation.\n data_source_id: \"example string\", // UUID of the Notion data source. Get this from retrieve_database response (data_sources[0].id).\n});\n\nconst result = await notion_retrieve_data_source.action();\n// outputSchema for result.data when operation === 'retrieve_data_source':\n// {\n// operation: \"retrieve_data_source\" // Retrieve data source operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// data_source: { object: \"data_source\" // Object type, id: string // Data source ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the data source, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the data source, properties: Record<string, unknown> // Data source properties, parent: { type: \"database_id\", database_id: string } // Parent database, database_parent: Record<string, unknown> | undefined // Database parent information, archived: boolean // Whether the data source is archived, in_trash: boolean | undefined // Whether data source is in trash, is_inline: boolean | undefined // Whether displayed inline, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Data source icon, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Data source cover, title: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] // Data source title (can be empty array), description: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] | undefined // Data source description, url: string | undefined // URL of the data source, public_url: string | null | undefined // Public shareable URL of the data source } | undefined // Retrieved data source object with properties schema\n// }\n\n\n// Query Data Source example\nconst notion_query_data_source = new NotionBubble({\n operation: \"query_data_source\", // Query a data source to retrieve pages\n data_source_id: \"example string\", // UUID of the Notion data source (NOT the database ID). In Notion API v2025+, databases are containers and data sources are the queryable tables inside them — they have different IDs. You can get the data_source_id from retrieve_database response (data_sources[0].id) or from a search result. If you only have a database_id, pass it via the database_id parameter instead and it will be resolved automatically.\n database_id: \"example string\", // UUID of the Notion database (from the URL). If provided instead of data_source_id, the bubble will automatically resolve the correct data_source_id by calling retrieve_database. This is a convenience parameter — using data_source_id directly is more efficient as it avoids an extra API call.\n filter: {}, // Filter object for querying\n sorts: [], // Array of sort objects\n start_cursor: \"example string\", // Cursor for pagination\n page_size: 100 // default, // Number of results per page (1-100)\n filter_properties: [\"example string\"], // Limit response to specific property IDs\n result_type: \"page\" // options: \"page\", \"data_source\", // Filter results to page or data_source\n});\n\nconst result = await notion_query_data_source.action();\n// outputSchema for result.data when operation === 'query_data_source':\n// {\n// operation: \"query_data_source\" // Query data source operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// results: { object: \"page\" | \"data_source\" // Object type (page or data_source), id: string // Object ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, url: string | undefined // URL of the object, properties: Record<string, unknown> | undefined // Object properties, title: { plain_text: string | undefined }[] | undefined // Title (for data sources), parent: Record<string, unknown> | undefined // Parent of the object, archived: boolean | undefined // Whether the object is archived, in_trash: boolean | undefined // Whether the object is in trash }[] | undefined // Array of pages or data sources from query,\n// next_cursor: string | null | undefined // Cursor for pagination,\n// has_more: boolean | undefined // Whether more results exist\n// }\n\n\n// Create Data Source example\nconst notion_create_data_source = new NotionBubble({\n operation: \"create_data_source\", // Create a new data source in an existing database\n parent: { type: \"database_id\" // Parent type, database_id: \"example string\" // ID of the parent database }, // Parent database for the new data source\n properties: {}, // Property schema for the data source (hash map where keys are property names)\n title: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Title of the data source\n icon: { type: \"emoji\", emoji: \"example string\" // Emoji character }, // Data source icon\n});\n\nconst result = await notion_create_data_source.action();\n// outputSchema for result.data when operation === 'create_data_source':\n// {\n// operation: \"create_data_source\" // Create data source operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// dataSource: { object: \"data_source\" // Object type, id: string // Data source ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the data source, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the data source, properties: Record<string, unknown> // Data source properties, parent: { type: \"database_id\", database_id: string } // Parent database, database_parent: Record<string, unknown> | undefined // Database parent information, archived: boolean // Whether the data source is archived, in_trash: boolean | undefined // Whether data source is in trash, is_inline: boolean | undefined // Whether displayed inline, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Data source icon, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Data source cover, title: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] // Data source title (can be empty array), description: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] | undefined // Data source description, url: string | undefined // URL of the data source, public_url: string | null | undefined // Public shareable URL of the data source } | undefined // Created data source object\n// }\n\n\n// Update Data Source example\nconst notion_update_data_source = new NotionBubble({\n operation: \"update_data_source\", // Update a data source\n data_source_id: \"example string\", // UUID of the Notion data source\n properties: {}, // Property schema updates\n title: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Updated title\n description: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Updated description\n icon: { type: \"emoji\", emoji: \"example string\" // Emoji character }, // Updated icon (null to remove)\n in_trash: true, // Set to true to move to trash\n parent: { type: \"database_id\", database_id: \"example string\" // ID of the destination database }, // New parent database to move data source\n});\n\nconst result = await notion_update_data_source.action();\n// outputSchema for result.data when operation === 'update_data_source':\n// {\n// operation: \"update_data_source\" // Update data source operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// dataSource: { object: \"data_source\" // Object type, id: string // Data source ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the data source, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the data source, properties: Record<string, unknown> // Data source properties, parent: { type: \"database_id\", database_id: string } // Parent database, database_parent: Record<string, unknown> | undefined // Database parent information, archived: boolean // Whether the data source is archived, in_trash: boolean | undefined // Whether data source is in trash, is_inline: boolean | undefined // Whether displayed inline, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Data source icon, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Data source cover, title: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] // Data source title (can be empty array), description: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] | undefined // Data source description, url: string | undefined // URL of the data source, public_url: string | null | undefined // Public shareable URL of the data source } | undefined // Updated data source object\n// }\n\n\n// Create Database example\nconst notion_create_database = new NotionBubble({\n operation: \"create_database\", // Create a new database\n initial_data_source: { properties: {} // Property schema for the data source (hash map where keys are property names) }, // Initial data source configuration\n title: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Title of the database\n description: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Description of the database\n icon: { type: \"emoji\", emoji: \"example string\" }, // Database icon\n cover: { type: \"file\", file: { url: \"example string\" // Authenticated HTTP GET URL to the file, expiry_time: \"example string\" // ISO 8601 date time when the link expires } }, // Database cover image\n});\n\nconst result = await notion_create_database.action();\n// outputSchema for result.data when operation === 'create_database':\n// {\n// operation: \"create_database\" // Create database operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// database: { object: \"database\" // Object type, id: string // Database ID, To find a database ID, navigate to the database URL in your Notion workspace. The ID is the string of characters in the URL that is between the slash following the workspace name (if applicable) and the question mark. The ID is a 32 characters alphanumeric string., created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, title: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] // Database title, description: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] | undefined // Database description, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Database icon, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Database cover, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } // Parent of the database, is_inline: boolean | undefined // Whether displayed inline, in_trash: boolean | undefined // Whether in trash, is_locked: boolean | undefined // Whether locked from editing, data_sources: { id: string // Data source ID, name: string // Data source name, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined }[] // Array of data sources in this database, url: string | undefined // URL of the database, public_url: string | null | undefined } | undefined // Created database object\n// }\n\n\n// Update Database example\nconst notion_update_database = new NotionBubble({\n operation: \"update_database\", // Update a database\n database_id: \"example string\", // UUID of the Notion database\n title: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Updated title\n description: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Updated description\n icon: { type: \"emoji\", emoji: \"example string\" }, // Updated icon (null to remove)\n cover: { type: \"file\", file: { url: \"example string\" // Authenticated HTTP GET URL to the file, expiry_time: \"example string\" // ISO 8601 date time when the link expires } }, // Updated cover (null to remove)\n parent: { type: \"page_id\", page_id: \"example string\" }, // New parent to move database\n is_inline: true, // Whether database should be displayed inline\n in_trash: true, // Set to true to move to trash\n is_locked: true, // Set to true to lock from editing\n});\n\nconst result = await notion_update_database.action();\n// outputSchema for result.data when operation === 'update_database':\n// {\n// operation: \"update_database\" // Update database operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// database: { object: \"database\" // Object type, id: string // Database ID, To find a database ID, navigate to the database URL in your Notion workspace. The ID is the string of characters in the URL that is between the slash following the workspace name (if applicable) and the question mark. The ID is a 32 characters alphanumeric string., created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, title: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] // Database title, description: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] | undefined // Database description, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined // Database icon, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined // Database cover, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } // Parent of the database, is_inline: boolean | undefined // Whether displayed inline, in_trash: boolean | undefined // Whether in trash, is_locked: boolean | undefined // Whether locked from editing, data_sources: { id: string // Data source ID, name: string // Data source name, icon: { type: \"emoji\" // Emoji icon, emoji: string // Emoji character } | { type: \"external\" // External icon, external: { url: string // URL of the external icon } } | { type: \"file\" // File icon, file: { url: string // URL of the file icon, expiry_time: string // Expiry time of the URL } } | null | undefined, cover: { type: \"file\" // Notion-hosted file type, file: { url: string // Authenticated HTTP GET URL to the file, expiry_time: string // ISO 8601 date time when the link expires } // File object for Notion-hosted files } | { type: \"file_upload\" // File uploaded via API type, file_upload: { id: string // ID of a File Upload object } // File upload object } | { type: \"external\" // External file type, external: { url: string // Link to externally hosted content } // External file object } | null | undefined }[] // Array of data sources in this database, url: string | undefined // URL of the database, public_url: string | null | undefined } | undefined // Updated database object\n// }\n\n\n// Append Block Children example\nconst notion_append_block_children = new NotionBubble({\n operation: \"append_block_children\", // Append children blocks to a parent block or page\n block_id: \"example string\", // UUID of the parent block or page\n children: [], // Array of block objects to append (max 100)\n after: \"example string\", // ID of block to append after\n});\n\nconst result = await notion_append_block_children.action();\n// outputSchema for result.data when operation === 'append_block_children':\n// {\n// operation: \"append_block_children\" // Append block children operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// blocks: { object: \"block\" // Object type, id: string // Block ID, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } | undefined // Parent of the block, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the block, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the block, has_children: boolean // Whether the block has children, archived: boolean // Whether the block is archived, in_trash: boolean | undefined // Whether block is in trash, type: string // Type of block (e.g., paragraph, heading_2, etc.) }[] | undefined // Array of appended block objects,\n// next_cursor: string | null | undefined // Cursor for pagination,\n// has_more: boolean | undefined // Whether more results exist\n// }\n\n\n// Retrieve Block Children example\nconst notion_retrieve_block_children = new NotionBubble({\n operation: \"retrieve_block_children\", // Retrieve children blocks of a parent block\n block_id: \"example string\", // UUID of the parent block\n start_cursor: \"example string\", // Cursor for pagination\n page_size: 100 // default, // Number of items per response (max 100)\n});\n\nconst result = await notion_retrieve_block_children.action();\n// outputSchema for result.data when operation === 'retrieve_block_children':\n// {\n// operation: \"retrieve_block_children\" // Retrieve block children operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// blocks: { object: \"block\" // Object type, id: string // Block ID, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } | undefined // Parent of the block, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the block, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the block, has_children: boolean // Whether the block has children, archived: boolean // Whether the block is archived, in_trash: boolean | undefined // Whether block is in trash, type: string // Type of block (e.g., paragraph, heading_2, etc.) }[] | undefined // Array of block children,\n// next_cursor: string | null | undefined // Cursor for pagination,\n// has_more: boolean | undefined // Whether more results exist\n// }\n\n\n// Retrieve Block example\nconst notion_retrieve_block = new NotionBubble({\n operation: \"retrieve_block\", // Retrieve a block by its ID\n block_id: \"example string\", // UUID of the Notion block\n});\n\nconst result = await notion_retrieve_block.action();\n// outputSchema for result.data when operation === 'retrieve_block':\n// {\n// operation: \"retrieve_block\" // Retrieve block operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// block: { object: \"block\" // Object type, id: string // Block ID, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } | undefined // Parent of the block, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the block, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the block, has_children: boolean // Whether the block has children, archived: boolean // Whether the block is archived, in_trash: boolean | undefined // Whether block is in trash, type: string // Type of block (e.g., paragraph, heading_2, etc.) } | undefined // Retrieved block object\n// }\n\n\n// Update Block example\nconst notion_update_block = new NotionBubble({\n operation: \"update_block\", // Update a block\n block_id: \"example string\", // UUID of the Notion block\n archived: true, // Set to true to archive the block\n});\n\nconst result = await notion_update_block.action();\n// outputSchema for result.data when operation === 'update_block':\n// {\n// operation: \"update_block\" // Update block operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// block: { object: \"block\" // Object type, id: string // Block ID, parent: { type: \"page_id\" // Parent is a page, page_id: string // ID of the parent page } | { type: \"database_id\" // Parent is a database, database_id: string // ID of the parent database } | { type: \"data_source_id\" // Parent is a data source, data_source_id: string // ID of the parent data source, database_id: string | undefined // ID of the database } | { type: \"block_id\" // Parent is a block, block_id: string // ID of the parent block } | { type: \"workspace\" // Parent is the workspace, workspace: true // Workspace parent } | undefined // Parent of the block, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the block, last_edited_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who last edited the block, has_children: boolean // Whether the block has children, archived: boolean // Whether the block is archived, in_trash: boolean | undefined // Whether block is in trash, type: string // Type of block (e.g., paragraph, heading_2, etc.) } | undefined // Updated block object\n// }\n\n\n// Create Comment example\nconst notion_create_comment = new NotionBubble({\n operation: \"create_comment\", // Create a comment on a page or block\n parent: { page_id: \"example string\" // ID of parent page, block_id: \"example string\" // ID of parent block }, // Parent page or block ID (one of page_id or block_id is required)\n rich_text: [{ type: \"text\" // options: \"text\", \"mention\", \"equation\" // Type of rich text, text: { content: \"example string\" // The actual text content, link: { url: \"example string\" // URL for the link } // Optional link object } // Text object (when type is \"text\"), annotations: { bold: false // default // Whether text is bolded, italic: false // default // Whether text is italicized, strikethrough: false // default // Whether text is struck through, underline: false // default // Whether text is underlined, code: false // default // Whether text is code style, color: \"default\" // options: \"default\", \"gray\", \"brown\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"pink\", \"red\" // Color of the text } // Styling information for the rich text, plain_text: \"example string\" // Plain text without annotations, href: \"example string\" // URL of any link }], // Array of rich text objects for comment content\n attachments: [{ file_upload_id: \"example string\" // File Upload ID, type: \"file_upload\" }], // Array of file attachments (max 3)\n display_name: { type: \"integration\" // options: \"integration\", \"user\", \"custom\" // Type of display name, custom: { name: \"example string\" // Custom name for the comment } // Custom name object (required if type is custom) }, // Custom display name for the comment\n});\n\nconst result = await notion_create_comment.action();\n// outputSchema for result.data when operation === 'create_comment':\n// {\n// operation: \"create_comment\" // Create comment operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// comment: { object: \"comment\" // Object type, id: string // Comment ID, parent: { type: \"page_id\" | \"block_id\", page_id: string | undefined, block_id: string | undefined } // Parent page or block, discussion_id: string // Discussion thread ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the comment, rich_text: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] // Comment content } | undefined // Created comment object\n// }\n\n\n// Retrieve Comment example\nconst notion_retrieve_comment = new NotionBubble({\n operation: \"retrieve_comment\", // Retrieve a comment by its ID\n comment_id: \"example string\", // UUID of the Notion comment\n});\n\nconst result = await notion_retrieve_comment.action();\n// outputSchema for result.data when operation === 'retrieve_comment':\n// {\n// operation: \"retrieve_comment\" // Retrieve comment operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// comment: { object: \"comment\" // Object type, id: string // Comment ID, parent: { type: \"page_id\" | \"block_id\", page_id: string | undefined, block_id: string | undefined } // Parent page or block, discussion_id: string // Discussion thread ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, created_by: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details } // User who created the comment, rich_text: { type: \"text\" | \"mention\" | \"equation\" // Type of rich text, text: { content: string // The actual text content, link: { url: string // URL for the link } | null | undefined // Optional link object } | undefined // Text object (when type is \"text\"), annotations: { bold: boolean // Whether text is bolded, italic: boolean // Whether text is italicized, strikethrough: boolean // Whether text is struck through, underline: boolean // Whether text is underlined, code: boolean // Whether text is code style, color: \"default\" | \"gray\" | \"brown\" | \"orange\" | \"yellow\" | \"green\" | \"blue\" | \"purple\" | \"pink\" | \"red\" // Color of the text } | undefined // Styling information for the rich text, plain_text: string | undefined // Plain text without annotations, href: string | null | undefined // URL of any link }[] // Comment content } | undefined // Retrieved comment object\n// }\n\n\n// List Users example\nconst notion_list_users = new NotionBubble({\n operation: \"list_users\", // List all users in the workspace\n start_cursor: \"example string\", // Cursor for pagination\n page_size: 100 // default, // Number of items per page (max 100)\n});\n\nconst result = await notion_list_users.action();\n// outputSchema for result.data when operation === 'list_users':\n// {\n// operation: \"list_users\" // List users operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// users: { object: \"user\" // Object type, id: string // User ID, type: \"person\" | \"bot\" | undefined // User type, name: string | undefined // User name, avatar_url: string | null | undefined // Avatar URL, person: { email: string | undefined // Email address } | undefined // Person details, bot: { owner: { type: \"workspace\" | \"user\" // Owner type, workspace: boolean | undefined } | undefined, workspace_name: string | undefined // Workspace name } | undefined // Bot details }[] | undefined // Array of users in the workspace,\n// next_cursor: string | null | undefined // Cursor for pagination,\n// has_more: boolean | undefined // Whether more results exist\n// }\n\n\n// Search example\nconst notion_search = new NotionBubble({\n operation: \"search\", // Search all pages and data sources shared with the integration\n query: \"example string\", // Text to compare against page and data source titles. If not provided, returns all pages and data sources shared with the integration\n sort: { direction: \"ascending\" // options: \"ascending\", \"descending\" // Sort direction, timestamp: \"last_edited_time\" // Timestamp field to sort by (only \"last_edited_time\" is supported) }, // Sort criteria. If not provided, most recently edited results are returned first\n filter: { value: \"page\" // options: \"page\", \"data_source\" // Filter results to only pages or only data sources, property: \"object\" // Property to filter on (only \"object\" is supported) }, // Filter to limit results to either pages or data sources\n start_cursor: \"example string\", // Cursor for pagination (from previous response)\n page_size: 100 // default, // Number of items per page (max 100)\n});\n\nconst result = await notion_search.action();\n// outputSchema for result.data when operation === 'search':\n// {\n// operation: \"search\" // Search operation result,\n// success: boolean // Whether the operation succeeded,\n// error: string // Error message if operation failed,\n// results: { object: \"page\" | \"data_source\" // Object type (page or data_source), id: string // Object ID, created_time: string // ISO 8601 datetime, last_edited_time: string // ISO 8601 datetime, url: string | undefined // URL of the object, properties: Record<string, unknown> | undefined // Object properties, title: { plain_text: string | undefined }[] | undefined // Title (for data sources), parent: Record<string, unknown> | undefined // Parent of the object, archived: boolean | undefined // Whether the object is archived, in_trash: boolean | undefined // Whether the object is in trash }[] | undefined // Array of pages and/or data sources matching the search query,\n// next_cursor: string | null | undefined // Cursor for pagination,\n// has_more: boolean | undefined // Whether more results exist\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`notion failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
31378
32107
|
"requiredCredentials": [
|
|
31379
32108
|
"NOTION_OAUTH_TOKEN",
|
|
31380
32109
|
"NOTION_API"
|