@bubblelab/bubble-core 0.1.119 → 0.1.123
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 +97 -97
- package/dist/bubbles/service-bubble/agi-inc.d.ts +20 -20
- package/dist/bubbles/service-bubble/ai-agent.d.ts +74 -74
- package/dist/bubbles/service-bubble/airtable.d.ts +76 -76
- package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +2 -2
- package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +8 -8
- package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +2 -2
- package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +22 -22
- package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +52 -52
- package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +6 -6
- package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +12 -12
- package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
- package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +88 -88
- package/dist/bubbles/service-bubble/apify/apify.d.ts +18 -18
- package/dist/bubbles/service-bubble/ashby/ashby.d.ts +2 -2
- package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +2 -2
- package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +1 -1
- package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +1 -1
- package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +10 -10
- package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +24 -24
- package/dist/bubbles/service-bubble/firecrawl.d.ts +338 -338
- package/dist/bubbles/service-bubble/followupboss.d.ts +4 -4
- package/dist/bubbles/service-bubble/github.d.ts +60 -60
- package/dist/bubbles/service-bubble/gmail.d.ts +164 -164
- package/dist/bubbles/service-bubble/google-calendar.d.ts +6 -6
- package/dist/bubbles/service-bubble/google-drive.d.ts +8 -8
- package/dist/bubbles/service-bubble/http.d.ts +2 -2
- package/dist/bubbles/service-bubble/insforge-db.d.ts +8 -8
- package/dist/bubbles/service-bubble/jira/jira.d.ts +30 -30
- package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +36 -36
- package/dist/bubbles/service-bubble/notion/notion.d.ts +164 -164
- package/dist/bubbles/service-bubble/notion/notion.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/notion/notion.js +2 -1
- package/dist/bubbles/service-bubble/notion/notion.js.map +1 -1
- package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +8 -8
- package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
- package/dist/bubbles/service-bubble/resend.d.ts +4 -4
- package/dist/bubbles/service-bubble/slack/slack.d.ts +330 -330
- package/dist/bubbles/service-bubble/slack/slack.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/slack/slack.js +3 -2
- package/dist/bubbles/service-bubble/slack/slack.js.map +1 -1
- package/dist/bubbles/service-bubble/stripe/stripe.d.ts +24 -24
- package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +28 -28
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +6 -6
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +8 -8
- package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +28 -28
- package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +317 -317
- package/dist/bubbles/tool-bubble/people-search-tool.d.ts +44 -44
- package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +10 -10
- package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +60 -60
- package/dist/bubbles/tool-bubble/twitter-tool.d.ts +134 -134
- package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +36 -36
- package/dist/bubbles/tool-bubble/youtube-tool.d.ts +20 -20
- package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +12 -12
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +24 -24
- package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +2 -2
- package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +18 -18
- package/dist/bubbles.json +7 -3
- package/package.json +2 -2
- package/dist/bubbles/service-bubble/salesforce/index.d.ts +0 -4
- package/dist/bubbles/service-bubble/salesforce/index.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/salesforce/index.js +0 -4
- package/dist/bubbles/service-bubble/salesforce/index.js.map +0 -1
- package/dist/bubbles/service-bubble/salesforce/salesforce.d.ts +0 -1331
- package/dist/bubbles/service-bubble/salesforce/salesforce.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/salesforce/salesforce.js +0 -618
- package/dist/bubbles/service-bubble/salesforce/salesforce.js.map +0 -1
- package/dist/bubbles/service-bubble/salesforce/salesforce.schema.d.ts +0 -1445
- package/dist/bubbles/service-bubble/salesforce/salesforce.schema.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/salesforce/salesforce.schema.js +0 -609
- package/dist/bubbles/service-bubble/salesforce/salesforce.schema.js.map +0 -1
- package/dist/bubbles/service-bubble/salesforce/salesforce.utils.d.ts +0 -87
- package/dist/bubbles/service-bubble/salesforce/salesforce.utils.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/salesforce/salesforce.utils.js +0 -181
- package/dist/bubbles/service-bubble/salesforce/salesforce.utils.js.map +0 -1
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-08T07:26:49.916Z",
|
|
4
4
|
"totalCount": 60,
|
|
5
5
|
"bubbles": [
|
|
6
6
|
{
|
|
@@ -4484,7 +4484,8 @@
|
|
|
4484
4484
|
},
|
|
4485
4485
|
"usageExample": "// Send Message example\nconst slack_send_message = new SlackBubble({\n operation: \"send_message\", // Send a message to a Slack channel or DM. Required scopes: chat:write (add chat:write.public for public channels bot has not joined, add im:write to send DMs to users)\n channel: \"example string\", // Channel ID (e.g., C1234567890), channel name (e.g., general or #general), or user ID for DM (e.g., U1234567890 - requires im:write scope)\n text: \"example string\", // Message text content\n username: \"example string\", // Override bot username for this message\n icon_emoji: \"example string\", // Override bot icon with emoji (e.g., :robot_face:)\n icon_url: \"example string\", // Override bot icon with custom image URL\n attachments: [{ color: \"example string\" // Color bar accent (hex color or good/warning/danger), pretext: \"example string\" // Text that appears before the main attachment content, author_name: \"example string\" // Author name displayed at the top, author_link: \"example string\" // URL to link the author name, author_icon: \"example string\" // Author icon image URL, title: \"example string\" // Attachment title text, title_link: \"example string\" // URL to link the title, text: \"example string\" // Main attachment text content, fields: [{ title: \"example string\" // Field title, value: \"example string\" // Field value, short: true // Whether field should be displayed side-by-side }] // Array of field objects for structured data, image_url: \"example string\" // URL of image to display, thumb_url: \"example string\" // URL of thumbnail image, footer: \"example string\" // Footer text, footer_icon: \"example string\" // Footer icon URL, ts: 42 // Timestamp for the attachment }], // Legacy message attachments\n blocks: [{ type: \"example string\" // Block element type (section, divider, button, etc.), text: { type: \"plain_text\" // options: \"plain_text\", \"mrkdwn\" // Text formatting type, text: \"example string\" // The actual text content, emoji: true, verbatim: true } // Text object for the block element, elements: [{ type: \"plain_text\" // options: \"plain_text\", \"mrkdwn\", \"image\" // Element type, text: \"example string\" // Text content, image_url: \"example string\" // Image URL for image elements, alt_text: \"example string\" // Alt text for image elements, emoji: true, verbatim: true }] // Elements array for context blocks }], // Block Kit structured message blocks\n thread_ts: \"example string\", // Timestamp of parent message to reply in thread\n reply_broadcast: false // default, // Broadcast thread reply to channel\n unfurl_links: true // default, // Enable automatic link unfurling\n unfurl_media: true // default, // Enable automatic media unfurling\n});\n\nconst result = await slack_send_message.action();\n// outputSchema for result.data when operation === 'send_message':\n// {\n// operation: \"send_message\" // Send a message to a Slack channel or DM,\n// ok: boolean // Whether the Slack API call was successful,\n// channel: string | undefined // Channel ID where the message was sent,\n// ts: string | undefined // Timestamp of the sent message,\n// message: { type: string // Message type (usually \"message\"), ts: string | undefined // Message timestamp (unique identifier), user: string | undefined // User ID who sent the message, bot_id: string | undefined // Bot ID if message was sent by a bot, bot_profile: { name: string | undefined // Bot display name } | undefined // Bot profile information if message was sent by a bot, username: string | undefined // Username of the bot or user who sent the message, text: string | undefined // Message text content, thread_ts: string | undefined // Timestamp of parent message if this is a thread reply, parent_user_id: string | undefined // User ID of thread parent message author, reply_count: number | undefined // Number of replies in this thread, reply_users_count: number | undefined // Number of unique users who replied in thread, latest_reply: string | undefined // Timestamp of most recent reply in thread, reply_users: string[] | undefined // Array of user IDs who replied in thread, is_locked: boolean | undefined // True if thread is locked, subscribed: boolean | undefined // True if current user is subscribed to thread, attachments: unknown[] | undefined // Legacy message attachments, blocks: unknown[] | undefined // Block Kit structured content, reactions: { name: string // Emoji name without colons, users: string[] // User IDs who reacted with this emoji, count: number // Total count of this reaction }[] | undefined // Array of emoji reactions on this message, files: { id: string // Unique file identifier, name: string | undefined // Filename, title: string | undefined // File title, mimetype: string | undefined // MIME type of the file, filetype: string | undefined // File type extension, size: number | undefined // File size in bytes, user: string | undefined // User ID who uploaded the file, url_private: string | undefined // Private URL to access file, url_private_download: string | undefined // Private download URL, thumb_64: string | undefined // 64px thumbnail URL, thumb_360: string | undefined // 360px thumbnail URL, thumb_480: string | undefined // 480px thumbnail URL, original_w: number | undefined // Original image width, original_h: number | undefined // Original image height, permalink: string | undefined // Permanent link to file }[] | undefined // Array of files attached to this message } | undefined // Details of the sent message,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// List Channels example\nconst slack_list_channels = new SlackBubble({\n operation: \"list_channels\", // List all channels in the Slack workspace. Required scopes: channels:read (public), groups:read (private), im:read (DMs), mpim:read (group DMs)\n types: [\"public_channel\",\"private_channel\"] // default, // Types of channels to include in results\n exclude_archived: true // default, // Exclude archived channels from results\n limit: 50 // default, // Maximum number of channels to return (1-1000)\n cursor: \"example string\", // Cursor for pagination to get next set of results\n});\n\nconst result = await slack_list_channels.action();\n// outputSchema for result.data when operation === 'list_channels':\n// {\n// operation: \"list_channels\" // List all channels in the Slack workspace,\n// ok: boolean // Whether the Slack API call was successful,\n// channels: { id: string // Unique channel identifier, name: string // Channel name without # prefix, is_channel: boolean | undefined // True if this is a public channel, is_group: boolean | undefined // True if this is a private channel, is_im: boolean | undefined // True if this is a direct message, is_mpim: boolean | undefined // True if this is a multi-person direct message, is_private: boolean | undefined // True if this is a private channel, created: number // Unix timestamp when channel was created, is_archived: boolean // True if channel is archived, is_general: boolean | undefined // True if this is the #general channel, unlinked: number | undefined // Unix timestamp when channel was unlinked, name_normalized: string | undefined // Normalized channel name, is_shared: boolean | undefined // True if channel is shared with other workspaces, is_ext_shared: boolean | undefined // True if channel is shared externally, is_org_shared: boolean | undefined // True if channel is shared across organization, shared_team_ids: string[] | undefined // IDs of teams this channel is shared with, pending_shared: string[] | undefined // Pending shared connections, pending_connected_team_ids: string[] | undefined // Pending team connection IDs, is_pending_ext_shared: boolean | undefined // True if external sharing is pending, is_member: boolean | undefined // True if the bot is a member of this channel, is_open: boolean | undefined // True if the channel is open, topic: { value: string // Topic text, creator: string // User ID who set the topic, last_set: number // Unix timestamp when topic was last set } | undefined // Channel topic information, purpose: { value: string // Purpose text, creator: string // User ID who set the purpose, last_set: number // Unix timestamp when purpose was last set } | undefined // Channel purpose information, num_members: number | undefined // Number of members in the channel }[] | undefined // Array of channel objects,\n// response_metadata: { next_cursor: string // Cursor for pagination to get next set of results } | undefined // Metadata for pagination,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// Get Channel Info example\nconst slack_get_channel_info = new SlackBubble({\n operation: \"get_channel_info\", // Get detailed information about a specific channel. Required scopes: channels:read (public), groups:read (private), im:read (DMs), mpim:read (group DMs)\n channel: \"example string\", // Channel ID (e.g., C1234567890) or channel name (e.g., general or #general)\n include_locale: false // default, // Include locale information in the response\n});\n\nconst result = await slack_get_channel_info.action();\n// outputSchema for result.data when operation === 'get_channel_info':\n// {\n// operation: \"get_channel_info\" // Get detailed information about a specific channel,\n// ok: boolean // Whether the Slack API call was successful,\n// channel: { id: string // Unique channel identifier, name: string // Channel name without # prefix, is_channel: boolean | undefined // True if this is a public channel, is_group: boolean | undefined // True if this is a private channel, is_im: boolean | undefined // True if this is a direct message, is_mpim: boolean | undefined // True if this is a multi-person direct message, is_private: boolean | undefined // True if this is a private channel, created: number // Unix timestamp when channel was created, is_archived: boolean // True if channel is archived, is_general: boolean | undefined // True if this is the #general channel, unlinked: number | undefined // Unix timestamp when channel was unlinked, name_normalized: string | undefined // Normalized channel name, is_shared: boolean | undefined // True if channel is shared with other workspaces, is_ext_shared: boolean | undefined // True if channel is shared externally, is_org_shared: boolean | undefined // True if channel is shared across organization, shared_team_ids: string[] | undefined // IDs of teams this channel is shared with, pending_shared: string[] | undefined // Pending shared connections, pending_connected_team_ids: string[] | undefined // Pending team connection IDs, is_pending_ext_shared: boolean | undefined // True if external sharing is pending, is_member: boolean | undefined // True if the bot is a member of this channel, is_open: boolean | undefined // True if the channel is open, topic: { value: string // Topic text, creator: string // User ID who set the topic, last_set: number // Unix timestamp when topic was last set } | undefined // Channel topic information, purpose: { value: string // Purpose text, creator: string // User ID who set the purpose, last_set: number // Unix timestamp when purpose was last set } | undefined // Channel purpose information, num_members: number | undefined // Number of members in the channel } | undefined // Channel information object,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// Get User Info example\nconst slack_get_user_info = new SlackBubble({\n operation: \"get_user_info\", // Get detailed information about a specific user. Required scopes: users:read (add users:read.email to access email field)\n user: \"example string\", // User ID to get information about\n include_locale: false // default, // Include locale information in the response\n});\n\nconst result = await slack_get_user_info.action();\n// outputSchema for result.data when operation === 'get_user_info':\n// {\n// operation: \"get_user_info\" // Get detailed information about a specific user,\n// ok: boolean // Whether the Slack API call was successful,\n// user: { id: string // Unique user identifier, team_id: string | undefined // Team/workspace ID, name: string // Username (handle without @), deleted: boolean | undefined // True if user account is deleted, color: string | undefined // Color code for user in UI, real_name: string | undefined // Users real name, tz: string | undefined // Timezone identifier, tz_label: string | undefined // Human-readable timezone label, tz_offset: number | undefined // Timezone offset from UTC in seconds, profile: { title: string | undefined // Job title, phone: string | undefined // Phone number, skype: string | undefined // Skype username, real_name: string | undefined // Real name from profile, real_name_normalized: string | undefined // Normalized real name, display_name: string | undefined // Display name, display_name_normalized: string | undefined // Normalized display name, fields: Record<string, unknown> | undefined // Custom profile fields, status_text: string | undefined // Current status text, status_emoji: string | undefined // Current status emoji, status_expiration: number | undefined // Unix timestamp when status expires, avatar_hash: string | undefined // Hash for avatar image, image_original: string | undefined // URL of original avatar image, is_custom_image: boolean | undefined // True if using custom avatar, email: string | undefined // Email address, first_name: string | undefined // First name, last_name: string | undefined // Last name, image_24: string | undefined // 24x24 pixel avatar URL, image_32: string | undefined // 32x32 pixel avatar URL, image_48: string | undefined // 48x48 pixel avatar URL, image_72: string | undefined // 72x72 pixel avatar URL, image_192: string | undefined // 192x192 pixel avatar URL, image_512: string | undefined // 512x512 pixel avatar URL, image_1024: string | undefined // 1024x1024 pixel avatar URL } | undefined // User profile information, is_admin: boolean | undefined // True if user is workspace admin, is_owner: boolean | undefined // True if user is workspace owner, is_primary_owner: boolean | undefined // True if user is primary workspace owner, is_restricted: boolean | undefined // True if user is restricted (single-channel guest), is_ultra_restricted: boolean | undefined // True if user is ultra restricted (multi-channel guest), is_bot: boolean | undefined // True if this is a bot user, is_app_user: boolean | undefined // True if this is an app user, updated: number | undefined // Unix timestamp when user was last updated, has_2fa: boolean | undefined // True if user has two-factor authentication enabled } | undefined // User information object,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// List Users example\nconst slack_list_users = new SlackBubble({\n operation: \"list_users\", // List all users in the Slack workspace. Required scopes: users:read (add users:read.email to access email field)\n limit: 50 // default, // Maximum number of users to return (1-1000)\n cursor: \"example string\", // Cursor for pagination to get next set of results\n include_locale: false // default, // Include locale information in the response\n});\n\nconst result = await slack_list_users.action();\n// outputSchema for result.data when operation === 'list_users':\n// {\n// operation: \"list_users\" // List all users in the Slack workspace,\n// ok: boolean // Whether the Slack API call was successful,\n// members: { id: string // Unique user identifier, team_id: string | undefined // Team/workspace ID, name: string // Username (handle without @), deleted: boolean | undefined // True if user account is deleted, color: string | undefined // Color code for user in UI, real_name: string | undefined // Users real name, tz: string | undefined // Timezone identifier, tz_label: string | undefined // Human-readable timezone label, tz_offset: number | undefined // Timezone offset from UTC in seconds, profile: { title: string | undefined // Job title, phone: string | undefined // Phone number, skype: string | undefined // Skype username, real_name: string | undefined // Real name from profile, real_name_normalized: string | undefined // Normalized real name, display_name: string | undefined // Display name, display_name_normalized: string | undefined // Normalized display name, fields: Record<string, unknown> | undefined // Custom profile fields, status_text: string | undefined // Current status text, status_emoji: string | undefined // Current status emoji, status_expiration: number | undefined // Unix timestamp when status expires, avatar_hash: string | undefined // Hash for avatar image, image_original: string | undefined // URL of original avatar image, is_custom_image: boolean | undefined // True if using custom avatar, email: string | undefined // Email address, first_name: string | undefined // First name, last_name: string | undefined // Last name, image_24: string | undefined // 24x24 pixel avatar URL, image_32: string | undefined // 32x32 pixel avatar URL, image_48: string | undefined // 48x48 pixel avatar URL, image_72: string | undefined // 72x72 pixel avatar URL, image_192: string | undefined // 192x192 pixel avatar URL, image_512: string | undefined // 512x512 pixel avatar URL, image_1024: string | undefined // 1024x1024 pixel avatar URL } | undefined // User profile information, is_admin: boolean | undefined // True if user is workspace admin, is_owner: boolean | undefined // True if user is workspace owner, is_primary_owner: boolean | undefined // True if user is primary workspace owner, is_restricted: boolean | undefined // True if user is restricted (single-channel guest), is_ultra_restricted: boolean | undefined // True if user is ultra restricted (multi-channel guest), is_bot: boolean | undefined // True if this is a bot user, is_app_user: boolean | undefined // True if this is an app user, updated: number | undefined // Unix timestamp when user was last updated, has_2fa: boolean | undefined // True if user has two-factor authentication enabled }[] | undefined // Array of user objects,\n// response_metadata: { next_cursor: string // Cursor for pagination to get next set of results } | undefined // Metadata for pagination,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// Get Conversation History example\nconst slack_get_conversation_history = new SlackBubble({\n operation: \"get_conversation_history\", // Retrieve message history from a channel or direct message. Required scopes: channels:history (public), groups:history (private), im:history (DMs), mpim:history (group DMs)\n channel: \"example string\", // Channel ID (e.g., C1234567890) or channel name (e.g., general or #general)\n latest: \"example string\", // End of time range of messages to include (timestamp)\n oldest: \"example string\", // Start of time range of messages to include (timestamp)\n inclusive: false // default, // Include messages with latest or oldest timestamps in results\n limit: 20 // default, // Maximum number of messages to return (1-1000)\n cursor: \"example string\", // Cursor for pagination to get next set of results\n});\n\nconst result = await slack_get_conversation_history.action();\n// outputSchema for result.data when operation === 'get_conversation_history':\n// {\n// operation: \"get_conversation_history\" // Retrieve message history from a channel or direct message,\n// ok: boolean // Whether the Slack API call was successful,\n// messages: { type: string // Message type (usually \"message\"), ts: string | undefined // Message timestamp (unique identifier), user: string | undefined // User ID who sent the message, bot_id: string | undefined // Bot ID if message was sent by a bot, bot_profile: { name: string | undefined // Bot display name } | undefined // Bot profile information if message was sent by a bot, username: string | undefined // Username of the bot or user who sent the message, text: string | undefined // Message text content, thread_ts: string | undefined // Timestamp of parent message if this is a thread reply, parent_user_id: string | undefined // User ID of thread parent message author, reply_count: number | undefined // Number of replies in this thread, reply_users_count: number | undefined // Number of unique users who replied in thread, latest_reply: string | undefined // Timestamp of most recent reply in thread, reply_users: string[] | undefined // Array of user IDs who replied in thread, is_locked: boolean | undefined // True if thread is locked, subscribed: boolean | undefined // True if current user is subscribed to thread, attachments: unknown[] | undefined // Legacy message attachments, blocks: unknown[] | undefined // Block Kit structured content, reactions: { name: string // Emoji name without colons, users: string[] // User IDs who reacted with this emoji, count: number // Total count of this reaction }[] | undefined // Array of emoji reactions on this message, files: { id: string // Unique file identifier, name: string | undefined // Filename, title: string | undefined // File title, mimetype: string | undefined // MIME type of the file, filetype: string | undefined // File type extension, size: number | undefined // File size in bytes, user: string | undefined // User ID who uploaded the file, url_private: string | undefined // Private URL to access file, url_private_download: string | undefined // Private download URL, thumb_64: string | undefined // 64px thumbnail URL, thumb_360: string | undefined // 360px thumbnail URL, thumb_480: string | undefined // 480px thumbnail URL, original_w: number | undefined // Original image width, original_h: number | undefined // Original image height, permalink: string | undefined // Permanent link to file }[] | undefined // Array of files attached to this message }[] | undefined // Array of message objects,\n// has_more: boolean | undefined // Whether there are more messages to retrieve,\n// response_metadata: { next_cursor: string // Cursor for pagination to get next set of results } | undefined // Metadata for pagination,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// Get Thread Replies example\nconst slack_get_thread_replies = new SlackBubble({\n operation: \"get_thread_replies\", // Retrieve all replies to a thread in a channel. Required scopes: channels:history (public), groups:history (private), im:history (DMs), mpim:history (group DMs)\n channel: \"example string\", // Channel ID where the thread exists\n ts: \"example string\", // Timestamp of the parent message to get replies for\n latest: \"example string\", // End of time range of messages to include (timestamp)\n oldest: \"example string\", // Start of time range of messages to include (timestamp)\n inclusive: false // default, // Include messages with latest or oldest timestamps in results\n limit: 100 // default, // Maximum number of messages to return (1-1000)\n cursor: \"example string\", // Cursor for pagination to get next set of results\n});\n\nconst result = await slack_get_thread_replies.action();\n// outputSchema for result.data when operation === 'get_thread_replies':\n// {\n// operation: \"get_thread_replies\" // Retrieve all replies to a thread in a channel,\n// ok: boolean // Whether the Slack API call was successful,\n// messages: { type: string // Message type (usually \"message\"), ts: string | undefined // Message timestamp (unique identifier), user: string | undefined // User ID who sent the message, bot_id: string | undefined // Bot ID if message was sent by a bot, bot_profile: { name: string | undefined // Bot display name } | undefined // Bot profile information if message was sent by a bot, username: string | undefined // Username of the bot or user who sent the message, text: string | undefined // Message text content, thread_ts: string | undefined // Timestamp of parent message if this is a thread reply, parent_user_id: string | undefined // User ID of thread parent message author, reply_count: number | undefined // Number of replies in this thread, reply_users_count: number | undefined // Number of unique users who replied in thread, latest_reply: string | undefined // Timestamp of most recent reply in thread, reply_users: string[] | undefined // Array of user IDs who replied in thread, is_locked: boolean | undefined // True if thread is locked, subscribed: boolean | undefined // True if current user is subscribed to thread, attachments: unknown[] | undefined // Legacy message attachments, blocks: unknown[] | undefined // Block Kit structured content, reactions: { name: string // Emoji name without colons, users: string[] // User IDs who reacted with this emoji, count: number // Total count of this reaction }[] | undefined // Array of emoji reactions on this message, files: { id: string // Unique file identifier, name: string | undefined // Filename, title: string | undefined // File title, mimetype: string | undefined // MIME type of the file, filetype: string | undefined // File type extension, size: number | undefined // File size in bytes, user: string | undefined // User ID who uploaded the file, url_private: string | undefined // Private URL to access file, url_private_download: string | undefined // Private download URL, thumb_64: string | undefined // 64px thumbnail URL, thumb_360: string | undefined // 360px thumbnail URL, thumb_480: string | undefined // 480px thumbnail URL, original_w: number | undefined // Original image width, original_h: number | undefined // Original image height, permalink: string | undefined // Permanent link to file }[] | undefined // Array of files attached to this message }[] | undefined // Array of message objects in the thread,\n// has_more: boolean | undefined // Whether there are more messages to retrieve,\n// response_metadata: { next_cursor: string // Cursor for pagination to get next set of results } | undefined // Metadata for pagination,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// Update Message example\nconst slack_update_message = new SlackBubble({\n operation: \"update_message\", // Update an existing message in a channel. Required scopes: chat:write\n channel: \"example string\", // Channel ID (e.g., C1234567890) or channel name (e.g., general or #general) where the message is located\n ts: \"example string\", // Timestamp of the message to update\n text: \"example string\", // New text content for the message\n attachments: [{ color: \"example string\" // Color bar accent (hex color or good/warning/danger), pretext: \"example string\" // Text that appears before the main attachment content, author_name: \"example string\" // Author name displayed at the top, author_link: \"example string\" // URL to link the author name, author_icon: \"example string\" // Author icon image URL, title: \"example string\" // Attachment title text, title_link: \"example string\" // URL to link the title, text: \"example string\" // Main attachment text content, fields: [{ title: \"example string\" // Field title, value: \"example string\" // Field value, short: true // Whether field should be displayed side-by-side }] // Array of field objects for structured data, image_url: \"example string\" // URL of image to display, thumb_url: \"example string\" // URL of thumbnail image, footer: \"example string\" // Footer text, footer_icon: \"example string\" // Footer icon URL, ts: 42 // Timestamp for the attachment }], // New legacy message attachments\n blocks: [{ type: \"example string\" // Block element type (section, divider, button, etc.), text: { type: \"plain_text\" // options: \"plain_text\", \"mrkdwn\" // Text formatting type, text: \"example string\" // The actual text content, emoji: true, verbatim: true } // Text object for the block element, elements: [{ type: \"plain_text\" // options: \"plain_text\", \"mrkdwn\", \"image\" // Element type, text: \"example string\" // Text content, image_url: \"example string\" // Image URL for image elements, alt_text: \"example string\" // Alt text for image elements, emoji: true, verbatim: true }] // Elements array for context blocks }], // New Block Kit structured message blocks\n});\n\nconst result = await slack_update_message.action();\n// outputSchema for result.data when operation === 'update_message':\n// {\n// operation: \"update_message\" // Update an existing message in a channel,\n// ok: boolean // Whether the Slack API call was successful,\n// channel: string | undefined // Channel ID where the message was updated,\n// ts: string | undefined // Timestamp of the updated message,\n// text: string | undefined // Updated text content of the message,\n// message: { type: string // Message type (usually \"message\"), ts: string | undefined // Message timestamp (unique identifier), user: string | undefined // User ID who sent the message, bot_id: string | undefined // Bot ID if message was sent by a bot, bot_profile: { name: string | undefined // Bot display name } | undefined // Bot profile information if message was sent by a bot, username: string | undefined // Username of the bot or user who sent the message, text: string | undefined // Message text content, thread_ts: string | undefined // Timestamp of parent message if this is a thread reply, parent_user_id: string | undefined // User ID of thread parent message author, reply_count: number | undefined // Number of replies in this thread, reply_users_count: number | undefined // Number of unique users who replied in thread, latest_reply: string | undefined // Timestamp of most recent reply in thread, reply_users: string[] | undefined // Array of user IDs who replied in thread, is_locked: boolean | undefined // True if thread is locked, subscribed: boolean | undefined // True if current user is subscribed to thread, attachments: unknown[] | undefined // Legacy message attachments, blocks: unknown[] | undefined // Block Kit structured content, reactions: { name: string // Emoji name without colons, users: string[] // User IDs who reacted with this emoji, count: number // Total count of this reaction }[] | undefined // Array of emoji reactions on this message, files: { id: string // Unique file identifier, name: string | undefined // Filename, title: string | undefined // File title, mimetype: string | undefined // MIME type of the file, filetype: string | undefined // File type extension, size: number | undefined // File size in bytes, user: string | undefined // User ID who uploaded the file, url_private: string | undefined // Private URL to access file, url_private_download: string | undefined // Private download URL, thumb_64: string | undefined // 64px thumbnail URL, thumb_360: string | undefined // 360px thumbnail URL, thumb_480: string | undefined // 480px thumbnail URL, original_w: number | undefined // Original image width, original_h: number | undefined // Original image height, permalink: string | undefined // Permanent link to file }[] | undefined // Array of files attached to this message } | undefined // Details of the updated message,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// Delete Message example\nconst slack_delete_message = new SlackBubble({\n operation: \"delete_message\", // Delete a message from a channel. Required scopes: chat:write. Note: Bot tokens can only delete messages posted by the bot; user tokens can delete any message the user has permission to delete\n channel: \"example string\", // Channel ID (e.g., C1234567890) or channel name (e.g., general or #general) where the message is located\n ts: \"example string\", // Timestamp of the message to delete\n});\n\nconst result = await slack_delete_message.action();\n// outputSchema for result.data when operation === 'delete_message':\n// {\n// operation: \"delete_message\" // Delete a message from a channel,\n// ok: boolean // Whether the Slack API call was successful,\n// channel: string | undefined // Channel ID where the message was deleted,\n// ts: string | undefined // Timestamp of the deleted message,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// Add Reaction example\nconst slack_add_reaction = new SlackBubble({\n operation: \"add_reaction\", // Add an emoji reaction to a message. Required scopes: reactions:write\n name: \"example string\", // Emoji name without colons (e.g., thumbsup, heart)\n channel: \"example string\", // Channel ID (e.g., C1234567890) or channel name (e.g., general or #general) where the message is located\n timestamp: \"example string\", // Timestamp of the message to react to\n});\n\nconst result = await slack_add_reaction.action();\n// outputSchema for result.data when operation === 'add_reaction':\n// {\n// operation: \"add_reaction\" // Add an emoji reaction to a message,\n// ok: boolean // Whether the Slack API call was successful,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// Remove Reaction example\nconst slack_remove_reaction = new SlackBubble({\n operation: \"remove_reaction\", // Remove an emoji reaction from a message. Required scopes: reactions:write\n name: \"example string\", // Emoji name without colons (e.g., thumbsup, heart)\n channel: \"example string\", // Channel ID (e.g., C1234567890) or channel name (e.g., general or #general) where the message is located\n timestamp: \"example string\", // Timestamp of the message to remove reaction from\n});\n\nconst result = await slack_remove_reaction.action();\n// outputSchema for result.data when operation === 'remove_reaction':\n// {\n// operation: \"remove_reaction\" // Remove an emoji reaction from a message,\n// ok: boolean // Whether the Slack API call was successful,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// Join Channel example\nconst slack_join_channel = new SlackBubble({\n operation: \"join_channel\", // Join a public Slack channel. Required scopes: channels:join (bot token) or channels:write (user token)\n channel: \"example string\", // Channel ID (e.g., C1234567890) or channel name (e.g., general or #general) to join\n});\n\nconst result = await slack_join_channel.action();\n// outputSchema for result.data when operation === 'join_channel':\n// {\n// operation: \"join_channel\" // Join a public Slack channel,\n// ok: boolean // Whether the Slack API call was successful,\n// channel: { id: string // Unique channel identifier, name: string // Channel name without # prefix, is_channel: boolean | undefined // True if this is a public channel, is_group: boolean | undefined // True if this is a private channel, is_im: boolean | undefined // True if this is a direct message, is_mpim: boolean | undefined // True if this is a multi-person direct message, is_private: boolean | undefined // True if this is a private channel, created: number // Unix timestamp when channel was created, is_archived: boolean // True if channel is archived, is_general: boolean | undefined // True if this is the #general channel, unlinked: number | undefined // Unix timestamp when channel was unlinked, name_normalized: string | undefined // Normalized channel name, is_shared: boolean | undefined // True if channel is shared with other workspaces, is_ext_shared: boolean | undefined // True if channel is shared externally, is_org_shared: boolean | undefined // True if channel is shared across organization, shared_team_ids: string[] | undefined // IDs of teams this channel is shared with, pending_shared: string[] | undefined // Pending shared connections, pending_connected_team_ids: string[] | undefined // Pending team connection IDs, is_pending_ext_shared: boolean | undefined // True if external sharing is pending, is_member: boolean | undefined // True if the bot is a member of this channel, is_open: boolean | undefined // True if the channel is open, topic: { value: string // Topic text, creator: string // User ID who set the topic, last_set: number // Unix timestamp when topic was last set } | undefined // Channel topic information, purpose: { value: string // Purpose text, creator: string // User ID who set the purpose, last_set: number // Unix timestamp when purpose was last set } | undefined // Channel purpose information, num_members: number | undefined // Number of members in the channel } | undefined // Channel information object after joining,\n// already_in_channel: boolean | undefined // Whether the bot was already a member of the channel,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// Upload File example\nconst slack_upload_file = new SlackBubble({\n operation: \"upload_file\", // Upload a file to a Slack channel. Required scopes: files:write\n channel: \"example string\", // Channel ID (e.g., C1234567890), channel name (e.g., general or #general), or user ID for DM\n file_path: \"example string\", // Local file path to upload (provide either file_path or content)\n content: \"example string\", // Base64-encoded file content to upload (provide either file_path or content)\n filename: \"example string\", // Override filename for the upload\n title: \"example string\", // Title for the file\n initial_comment: \"example string\", // Initial comment to post with the file\n thread_ts: \"example string\", // Timestamp of parent message to upload file in thread\n});\n\nconst result = await slack_upload_file.action();\n// outputSchema for result.data when operation === 'upload_file':\n// {\n// operation: \"upload_file\" // Upload a file to a Slack channel,\n// ok: boolean // Whether the Slack API call was successful,\n// file: { id: string // Unique file identifier, created: number // Unix timestamp when file was created, timestamp: number // Unix timestamp when file was uploaded, name: string // Original filename, title: string | undefined // File title, mimetype: string // MIME type of the file, filetype: string // File type extension, pretty_type: string // Human-readable file type, user: string // User ID who uploaded the file, editable: boolean // Whether the file is editable, size: number // File size in bytes, mode: string // File sharing mode, is_external: boolean // Whether file is from external source, external_type: string // External file type if applicable, is_public: boolean // Whether file is publicly accessible, public_url_shared: boolean // Whether public URL is shared, display_as_bot: boolean // Whether file is displayed as uploaded by bot, username: string // Username of uploader, url_private: string // Private URL to access file, url_private_download: string // Private download URL, permalink: string // Permanent link to file, permalink_public: string | undefined // Public permanent link, shares: { public: Record<string, { reply_users: string[] // User IDs who replied, reply_users_count: number // Number of unique users who replied, reply_count: number // Total number of replies, ts: string // Timestamp of the share, channel_name: string // Name of the channel, team_id: string // Team ID }[]> | undefined // Public channel shares, private: Record<string, { reply_users: string[] // User IDs who replied, reply_users_count: number // Number of unique users who replied, reply_count: number // Total number of replies, ts: string // Timestamp of the share, channel_name: string // Name of the channel, team_id: string // Team ID }[]> | undefined // Private channel shares } | undefined // Information about where file is shared, channels: string[] | undefined // Channel IDs where file is shared, groups: string[] | undefined // Private group IDs where file is shared, ims: string[] | undefined // Direct message IDs where file is shared, has_rich_preview: boolean | undefined // Whether file has rich preview } | undefined // File information object,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// Schedule Message example\nconst slack_schedule_message = new SlackBubble({\n operation: \"schedule_message\", // Schedule a message to be sent at a future time. Required scopes: chat:write. Max 120 days in advance.\n channel: \"example string\", // Channel ID (e.g., C1234567890), channel name (e.g., general or #general), or user ID for DM\n text: \"example string\", // Message text content\n post_at: 42, // Unix timestamp (seconds) for when to send the message. Must be within 120 days from now.\n thread_ts: \"example string\", // Timestamp of parent message to reply in thread\n blocks: [{ type: \"example string\" // Block element type (section, divider, button, etc.), text: { type: \"plain_text\" // options: \"plain_text\", \"mrkdwn\" // Text formatting type, text: \"example string\" // The actual text content, emoji: true, verbatim: true } // Text object for the block element, elements: [{ type: \"plain_text\" // options: \"plain_text\", \"mrkdwn\", \"image\" // Element type, text: \"example string\" // Text content, image_url: \"example string\" // Image URL for image elements, alt_text: \"example string\" // Alt text for image elements, emoji: true, verbatim: true }] // Elements array for context blocks }], // Block Kit structured message blocks\n unfurl_links: true // default, // Enable automatic link unfurling\n unfurl_media: true // default, // Enable automatic media unfurling\n});\n\nconst result = await slack_schedule_message.action();\n// outputSchema for result.data when operation === 'schedule_message':\n// {\n// operation: \"schedule_message\" // Schedule a message to be sent at a future time,\n// ok: boolean // Whether the Slack API call was successful,\n// channel: string | undefined // Channel ID where message will be posted,\n// scheduled_message_id: string | undefined // Unique identifier for the scheduled message,\n// post_at: number | undefined // Unix timestamp when message will be posted,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// Get File Info example\nconst slack_get_file_info = new SlackBubble({\n operation: \"get_file_info\", // Get detailed information about a file. Required scopes: files:read. Use this to get file URLs from a file_id (e.g., from file_shared events).\n file_id: \"example string\", // The file ID to get information about (e.g., F1234567890)\n});\n\nconst result = await slack_get_file_info.action();\n// outputSchema for result.data when operation === 'get_file_info':\n// {\n// operation: \"get_file_info\" // Get detailed information about a file,\n// ok: boolean // Whether the Slack API call was successful,\n// file: { id: string // Unique file identifier, name: string // Filename, title: string | undefined // File title, mimetype: string // MIME type of the file, filetype: string // File type extension, size: number // File size in bytes, user: string | undefined // User ID who uploaded the file, url_private: string | undefined // Private URL to access file, url_private_download: string | undefined // Private download URL, thumb_64: string | undefined // 64px thumbnail URL, thumb_360: string | undefined // 360px thumbnail URL, thumb_480: string | undefined // 480px thumbnail URL, original_w: number | undefined // Original image width, original_h: number | undefined // Original image height, permalink: string | undefined // Permanent link to file } | undefined // File information object,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// Download File example\nconst slack_download_file = new SlackBubble({\n operation: \"download_file\", // Download a file from Slack. Required scopes: files:read. Returns the file content as base64 encoded string.\n file_url: \"example string\", // The url_private or url_private_download URL to download (e.g., https://files.slack.com/files-pri/...)\n file_id: \"example string\", // The file ID to download. If provided without file_url, will first fetch file info to get the URL.\n});\n\nconst result = await slack_download_file.action();\n// outputSchema for result.data when operation === 'download_file':\n// {\n// operation: \"download_file\" // Download a file from Slack,\n// ok: boolean // Whether the download was successful,\n// content: string | undefined // Base64 encoded file content,\n// filename: string | undefined // Original filename,\n// mimetype: string | undefined // MIME type of the file,\n// size: number | undefined // File size in bytes,\n// error: string // Error message if operation failed,\n// success: boolean // Whether the operation was successful\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`slack failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
4486
4486
|
"requiredCredentials": [
|
|
4487
|
-
"SLACK_CRED"
|
|
4487
|
+
"SLACK_CRED",
|
|
4488
|
+
"SLACK_API"
|
|
4488
4489
|
]
|
|
4489
4490
|
},
|
|
4490
4491
|
{
|
|
@@ -31371,7 +31372,8 @@
|
|
|
31371
31372
|
},
|
|
31372
31373
|
"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 workspace\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\n database_id: \"example string\", // UUID of the Notion database\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\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);",
|
|
31373
31374
|
"requiredCredentials": [
|
|
31374
|
-
"NOTION_OAUTH_TOKEN"
|
|
31375
|
+
"NOTION_OAUTH_TOKEN",
|
|
31376
|
+
"NOTION_API"
|
|
31375
31377
|
]
|
|
31376
31378
|
},
|
|
31377
31379
|
{
|
|
@@ -31674,6 +31676,7 @@
|
|
|
31674
31676
|
"usageExample": "// Example usage of slack-notifier bubble\nconst slackNotifier = new SlackNotifierWorkflowBubble({\n contentToFormat: \"example string\", // Raw content or data to format for Slack,\n originalUserQuery: \"example string\", // Original user question or context,\n targetChannel: \"example string\", // Slack channel name (without #) or channel ID,\n messageTitle: \"example string\", // Custom title for the Slack message,\n messageStyle: \"professional\" // options: \"professional\", \"casual\", \"technical\", \"concise\", \"detailed\", // Style and tone for message formatting,\n includeFormatting: true // default, // Include emojis and rich Slack formatting,\n maxMessageLength: 3000 // default, // Maximum message length for Slack,\n aiModel: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\", temperature: 0.3 // default, maxTokens: 50000 // default }, // AI model settings for content formatting,\n});\n\nconst result = await slackNotifier.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// success: boolean,\n// error: string,\n// messageInfo: { messageTimestamp: string | undefined, channelId: string | undefined, channelName: string | undefined, formattedMessage: string | undefined, messageLength: number | undefined } | undefined,\n// formattingInfo: { modelUsed: string | undefined, wasTruncated: boolean, originalLength: number | undefined } | undefined\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
31675
31677
|
"requiredCredentials": [
|
|
31676
31678
|
"SLACK_CRED",
|
|
31679
|
+
"SLACK_API",
|
|
31677
31680
|
"OPENAI_CRED",
|
|
31678
31681
|
"GOOGLE_GEMINI_CRED",
|
|
31679
31682
|
"ANTHROPIC_CRED"
|
|
@@ -31932,6 +31935,7 @@
|
|
|
31932
31935
|
"requiredCredentials": [
|
|
31933
31936
|
"DATABASE_CRED",
|
|
31934
31937
|
"SLACK_CRED",
|
|
31938
|
+
"SLACK_API",
|
|
31935
31939
|
"OPENAI_CRED",
|
|
31936
31940
|
"GOOGLE_GEMINI_CRED",
|
|
31937
31941
|
"ANTHROPIC_CRED"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bubblelab/bubble-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.123",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"puppeteer-core": "^24.10.0",
|
|
41
41
|
"resend": "^4.8.0",
|
|
42
42
|
"zod": "^3.24.1",
|
|
43
|
-
"@bubblelab/shared-schemas": "0.1.
|
|
43
|
+
"@bubblelab/shared-schemas": "0.1.123"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/node": "^20.12.12",
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { SalesforceBubble } from './salesforce.js';
|
|
2
|
-
export { SalesforceParamsSchema, SalesforceResultSchema, SalesforceAccountSchema, SalesforceContactSchema, SalesforceLeadSchema, SalesforceOpportunitySchema, SalesforceUserInfoSchema, SoqlQueryResultSchema, type SalesforceParams, type SalesforceParamsInput, type SalesforceResult, } from './salesforce.schema.js';
|
|
3
|
-
export { isValidSalesforceId, to18CharId, formatSalesforceDate, toSalesforceDate, escapeSoql, buildSoqlQuery, enhanceSalesforceErrorMessage, buildApiUrl, getSalesforceApiVersion, } from './salesforce.utils.js';
|
|
4
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/salesforce/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,6BAA6B,EAC7B,WAAW,EACX,uBAAuB,GACxB,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { SalesforceBubble } from './salesforce.js';
|
|
2
|
-
export { SalesforceParamsSchema, SalesforceResultSchema, SalesforceAccountSchema, SalesforceContactSchema, SalesforceLeadSchema, SalesforceOpportunitySchema, SalesforceUserInfoSchema, SoqlQueryResultSchema, } from './salesforce.schema.js';
|
|
3
|
-
export { isValidSalesforceId, to18CharId, formatSalesforceDate, toSalesforceDate, escapeSoql, buildSoqlQuery, enhanceSalesforceErrorMessage, buildApiUrl, getSalesforceApiVersion, } from './salesforce.utils.js';
|
|
4
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/salesforce/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,GAItB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,6BAA6B,EAC7B,WAAW,EACX,uBAAuB,GACxB,MAAM,uBAAuB,CAAC"}
|