@bubblelab/bubble-core 0.1.234 → 0.1.236
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 +8 -8
- package/dist/bubbles/service-bubble/capability-pipeline.js +1 -1
- package/dist/bubbles/service-bubble/capability-pipeline.js.map +1 -1
- package/dist/bubbles/service-bubble/gmail.d.ts +67 -0
- package/dist/bubbles/service-bubble/gmail.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/gmail.js +53 -0
- package/dist/bubbles/service-bubble/gmail.js.map +1 -1
- package/dist/bubbles/service-bubble/http.d.ts +23 -0
- package/dist/bubbles/service-bubble/http.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/http.js +87 -12
- package/dist/bubbles/service-bubble/http.js.map +1 -1
- package/dist/bubbles/service-bubble/hubspot/hubspot.d.ts +89 -0
- package/dist/bubbles/service-bubble/hubspot/hubspot.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/hubspot/hubspot.js +38 -1
- package/dist/bubbles/service-bubble/hubspot/hubspot.js.map +1 -1
- package/dist/bubbles/service-bubble/hubspot/hubspot.schema.d.ts +87 -0
- package/dist/bubbles/service-bubble/hubspot/hubspot.schema.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/hubspot/hubspot.schema.js +53 -2
- package/dist/bubbles/service-bubble/hubspot/hubspot.schema.js.map +1 -1
- package/dist/bubbles.json +240 -9
- package/package.json +2 -2
package/dist/bubbles.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "2.0.0",
|
|
3
|
-
"generatedAt": "2026-03-
|
|
3
|
+
"generatedAt": "2026-03-18T02:17:37.820Z",
|
|
4
4
|
"totalCount": 75,
|
|
5
5
|
"bubbles": [
|
|
6
6
|
{
|
|
@@ -8204,7 +8204,7 @@
|
|
|
8204
8204
|
"type": "service",
|
|
8205
8205
|
"shortDescription": "Makes HTTP requests to external APIs and services",
|
|
8206
8206
|
"useCase": "- Calling external REST APIs",
|
|
8207
|
-
"outputSchema": "{\n status: number // HTTP status code,\n statusText: string // HTTP status text,\n headers: Record<string, string> // Response headers,\n body: string // Response body as
|
|
8207
|
+
"outputSchema": "{\n status: number // HTTP status code,\n statusText: string // HTTP status text,\n headers: Record<string, string> // Response headers,\n body: string // Response body. For text responses (HTML, JSON, etc.) this is the raw text. For binary responses (PDFs, images, etc.) this is base64-encoded — check isBase64 to know which.,\n isBase64: boolean // True when body is base64-encoded binary data. When true, pass body directly to tools that accept base64 content (e.g., google_drive upload_file, resend attachment content).,\n contentType: string // Response Content-Type (e.g., application/pdf, text/html). Pass to downstream tools as mimeType/contentType.,\n json: unknown | undefined // Parsed JSON response (if applicable),\n success: boolean // Whether the request was successful (HTTP 2xx status codes),\n error: string // Error message if request failed,\n responseTime: number // Response time in milliseconds,\n size: number // Raw response size in bytes (before base64 encoding, if applicable)\n}",
|
|
8208
8208
|
"inputJsonSchema": {
|
|
8209
8209
|
"type": "object",
|
|
8210
8210
|
"properties": {
|
|
@@ -8275,6 +8275,16 @@
|
|
|
8275
8275
|
"type": "string",
|
|
8276
8276
|
"description": "Custom header name when authType is \"custom\" (e.g., \"X-Custom-Auth\")"
|
|
8277
8277
|
},
|
|
8278
|
+
"responseType": {
|
|
8279
|
+
"type": "string",
|
|
8280
|
+
"enum": [
|
|
8281
|
+
"auto",
|
|
8282
|
+
"text",
|
|
8283
|
+
"binary"
|
|
8284
|
+
],
|
|
8285
|
+
"default": "auto",
|
|
8286
|
+
"description": "How to handle the response body. auto: detects from Content-Type (e.g., application/pdf → base64). text: always returns UTF-8 string. binary: always returns base64-encoded string. Use binary when downloading files like PDFs or images."
|
|
8287
|
+
},
|
|
8278
8288
|
"credentials": {
|
|
8279
8289
|
"type": "object",
|
|
8280
8290
|
"additionalProperties": {
|
|
@@ -8308,7 +8318,15 @@
|
|
|
8308
8318
|
},
|
|
8309
8319
|
"body": {
|
|
8310
8320
|
"type": "string",
|
|
8311
|
-
"description": "Response body
|
|
8321
|
+
"description": "Response body. For text responses (HTML, JSON, etc.) this is the raw text. For binary responses (PDFs, images, etc.) this is base64-encoded — check isBase64 to know which."
|
|
8322
|
+
},
|
|
8323
|
+
"isBase64": {
|
|
8324
|
+
"type": "boolean",
|
|
8325
|
+
"description": "True when body is base64-encoded binary data. When true, pass body directly to tools that accept base64 content (e.g., google_drive upload_file, resend attachment content)."
|
|
8326
|
+
},
|
|
8327
|
+
"contentType": {
|
|
8328
|
+
"type": "string",
|
|
8329
|
+
"description": "Response Content-Type (e.g., application/pdf, text/html). Pass to downstream tools as mimeType/contentType."
|
|
8312
8330
|
},
|
|
8313
8331
|
"json": {
|
|
8314
8332
|
"description": "Parsed JSON response (if applicable)"
|
|
@@ -8327,7 +8345,7 @@
|
|
|
8327
8345
|
},
|
|
8328
8346
|
"size": {
|
|
8329
8347
|
"type": "number",
|
|
8330
|
-
"description": "
|
|
8348
|
+
"description": "Raw response size in bytes (before base64 encoding, if applicable)"
|
|
8331
8349
|
}
|
|
8332
8350
|
},
|
|
8333
8351
|
"required": [
|
|
@@ -8335,6 +8353,8 @@
|
|
|
8335
8353
|
"statusText",
|
|
8336
8354
|
"headers",
|
|
8337
8355
|
"body",
|
|
8356
|
+
"isBase64",
|
|
8357
|
+
"contentType",
|
|
8338
8358
|
"success",
|
|
8339
8359
|
"error",
|
|
8340
8360
|
"responseTime",
|
|
@@ -8342,7 +8362,7 @@
|
|
|
8342
8362
|
],
|
|
8343
8363
|
"additionalProperties": false
|
|
8344
8364
|
},
|
|
8345
|
-
"usageExample": "// Example usage of http bubble\nconst http = new HttpBubble({\n url: \"example string\", // The URL to make the HTTP request to,\n method: \"GET\" // options: \"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"HEAD\", \"OPTIONS\", // HTTP method to use (default: GET),\n headers: { \"example_key\": \"example string\" }, // HTTP headers to include in the request,\n body: \"example string\", // Request body (string or JSON object),\n timeout: 30000 // default, // Request timeout in milliseconds (default: 30000, max: 120000),\n followRedirects: true // default, // Whether to follow HTTP redirects (default: true),\n authType: \"none\" // options: \"none\", \"bearer\", \"basic\", \"api-key\", \"api-key-header\", \"custom\", // Authentication type: none (default), bearer (Authorization: Bearer), basic (Authorization: Basic), api-key (X-API-Key), api-key-header (Api-Key), custom (user-specified header),\n authHeader: \"example string\", // Custom header name when authType is \"custom\" (e.g., \"X-Custom-Auth\"),\n});\n\nconst result = await http.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// status: number // HTTP status code,\n// statusText: string // HTTP status text,\n// headers: Record<string, string> // Response headers,\n// body: string // Response body as
|
|
8365
|
+
"usageExample": "// Example usage of http bubble\nconst http = new HttpBubble({\n url: \"example string\", // The URL to make the HTTP request to,\n method: \"GET\" // options: \"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"HEAD\", \"OPTIONS\", // HTTP method to use (default: GET),\n headers: { \"example_key\": \"example string\" }, // HTTP headers to include in the request,\n body: \"example string\", // Request body (string or JSON object),\n timeout: 30000 // default, // Request timeout in milliseconds (default: 30000, max: 120000),\n followRedirects: true // default, // Whether to follow HTTP redirects (default: true),\n authType: \"none\" // options: \"none\", \"bearer\", \"basic\", \"api-key\", \"api-key-header\", \"custom\", // Authentication type: none (default), bearer (Authorization: Bearer), basic (Authorization: Basic), api-key (X-API-Key), api-key-header (Api-Key), custom (user-specified header),\n authHeader: \"example string\", // Custom header name when authType is \"custom\" (e.g., \"X-Custom-Auth\"),\n responseType: \"auto\" // options: \"auto\", \"text\", \"binary\", // How to handle the response body. auto: detects from Content-Type (e.g., application/pdf → base64). text: always returns UTF-8 string. binary: always returns base64-encoded string. Use binary when downloading files like PDFs or images.,\n});\n\nconst result = await http.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// status: number // HTTP status code,\n// statusText: string // HTTP status text,\n// headers: Record<string, string> // Response headers,\n// body: string // Response body. For text responses (HTML, JSON, etc.) this is the raw text. For binary responses (PDFs, images, etc.) this is base64-encoded — check isBase64 to know which.,\n// isBase64: boolean // True when body is base64-encoded binary data. When true, pass body directly to tools that accept base64 content (e.g., google_drive upload_file, resend attachment content).,\n// contentType: string // Response Content-Type (e.g., application/pdf, text/html). Pass to downstream tools as mimeType/contentType.,\n// json: unknown | undefined // Parsed JSON response (if applicable),\n// success: boolean // Whether the request was successful (HTTP 2xx status codes),\n// error: string // Error message if request failed,\n// responseTime: number // Response time in milliseconds,\n// size: number // Raw response size in bytes (before base64 encoding, if applicable)\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
8346
8366
|
"requiredCredentials": [
|
|
8347
8367
|
"*"
|
|
8348
8368
|
]
|
|
@@ -10896,6 +10916,41 @@
|
|
|
10896
10916
|
"thread_id"
|
|
10897
10917
|
],
|
|
10898
10918
|
"additionalProperties": false
|
|
10919
|
+
},
|
|
10920
|
+
{
|
|
10921
|
+
"type": "object",
|
|
10922
|
+
"properties": {
|
|
10923
|
+
"operation": {
|
|
10924
|
+
"type": "string",
|
|
10925
|
+
"enum": [
|
|
10926
|
+
"get_attachment"
|
|
10927
|
+
],
|
|
10928
|
+
"description": "Download an attachment from an email message"
|
|
10929
|
+
},
|
|
10930
|
+
"message_id": {
|
|
10931
|
+
"type": "string",
|
|
10932
|
+
"minLength": 1,
|
|
10933
|
+
"description": "Gmail message ID that contains the attachment"
|
|
10934
|
+
},
|
|
10935
|
+
"attachment_id": {
|
|
10936
|
+
"type": "string",
|
|
10937
|
+
"minLength": 1,
|
|
10938
|
+
"description": "Attachment ID from the message payload (found in body.attachmentId of attachment parts)"
|
|
10939
|
+
},
|
|
10940
|
+
"credentials": {
|
|
10941
|
+
"type": "object",
|
|
10942
|
+
"additionalProperties": {
|
|
10943
|
+
"type": "string"
|
|
10944
|
+
},
|
|
10945
|
+
"description": "Object mapping credential types to values (injected at runtime)"
|
|
10946
|
+
}
|
|
10947
|
+
},
|
|
10948
|
+
"required": [
|
|
10949
|
+
"operation",
|
|
10950
|
+
"message_id",
|
|
10951
|
+
"attachment_id"
|
|
10952
|
+
],
|
|
10953
|
+
"additionalProperties": false
|
|
10899
10954
|
}
|
|
10900
10955
|
]
|
|
10901
10956
|
},
|
|
@@ -12197,10 +12252,44 @@
|
|
|
12197
12252
|
"error"
|
|
12198
12253
|
],
|
|
12199
12254
|
"additionalProperties": false
|
|
12255
|
+
},
|
|
12256
|
+
{
|
|
12257
|
+
"type": "object",
|
|
12258
|
+
"properties": {
|
|
12259
|
+
"operation": {
|
|
12260
|
+
"type": "string",
|
|
12261
|
+
"enum": [
|
|
12262
|
+
"get_attachment"
|
|
12263
|
+
],
|
|
12264
|
+
"description": "Download an attachment from an email message"
|
|
12265
|
+
},
|
|
12266
|
+
"success": {
|
|
12267
|
+
"type": "boolean",
|
|
12268
|
+
"description": "Whether the attachment was downloaded successfully"
|
|
12269
|
+
},
|
|
12270
|
+
"data": {
|
|
12271
|
+
"type": "string",
|
|
12272
|
+
"description": "Base64-encoded attachment content"
|
|
12273
|
+
},
|
|
12274
|
+
"size": {
|
|
12275
|
+
"type": "number",
|
|
12276
|
+
"description": "Attachment size in bytes"
|
|
12277
|
+
},
|
|
12278
|
+
"error": {
|
|
12279
|
+
"type": "string",
|
|
12280
|
+
"description": "Error message if operation failed"
|
|
12281
|
+
}
|
|
12282
|
+
},
|
|
12283
|
+
"required": [
|
|
12284
|
+
"operation",
|
|
12285
|
+
"success",
|
|
12286
|
+
"error"
|
|
12287
|
+
],
|
|
12288
|
+
"additionalProperties": false
|
|
12200
12289
|
}
|
|
12201
12290
|
]
|
|
12202
12291
|
},
|
|
12203
|
-
"usageExample": "// Send Email example\nconst gmail_send_email = new GmailBubble({\n operation: \"send_email\", // Send an email message\n to: [\"example string\"], // List of recipient email addresses\n cc: [\"example string\"], // List of CC recipient email addresses\n bcc: [\"example string\"], // List of BCC recipient email addresses\n subject: \"example string\", // Email subject line\n body_text: \"example string\", // [ONEOF:body] Email body (supports markdown — automatically converted to HTML for rendering)\n body_html: \"example string\", // [ONEOF:body] HTML email body. If not provided and body_text is set, HTML is auto-generated from body_text.\n reply_to: \"example string\", // Reply-to email address\n thread_id: \"example string\", // Thread ID to reply to (for threaded conversations)\n});\n\nconst result = await gmail_send_email.action();\n// outputSchema for result.data when operation === 'send_email':\n// {\n// operation: \"send_email\" // Send an email message,\n// success: boolean // Whether the email was sent successfully,\n// message_id: string | undefined // Sent message ID,\n// thread_id: string | undefined // Thread ID,\n// error: string // Error message if operation failed\n// }\n\n\n// List Emails example\nconst gmail_list_emails = new GmailBubble({\n operation: \"list_emails\", // List emails in the user mailbox\n query: \"example string\", // Gmail search query (e.g., \"from:user@example.com is:unread\")\n label_ids: [\"example string\"], // Filter by specific label IDs\n include_spam_trash: false // default, // Include messages from SPAM and TRASH\n max_results: 100 // default, // Maximum number of messages to return\n page_token: \"example string\", // Token for pagination to get next page\n include_details: true // default, // Whether to fetch full message details including snippet, headers, and body\n});\n\nconst result = await gmail_list_emails.action();\n// outputSchema for result.data when operation === 'list_emails':\n// {\n// operation: \"list_emails\" // List emails in the user mailbox,\n// success: boolean // Whether the email list was retrieved successfully,\n// messages: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure }[] | undefined // List of email messages,\n// next_page_token: string | undefined // Token for fetching next page,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Email example\nconst gmail_get_email = new GmailBubble({\n operation: \"get_email\", // Get a specific email message\n message_id: \"example string\", // Gmail message ID to retrieve\n format: \"minimal\" // options: \"minimal\", \"full\", \"raw\", \"metadata\", // Format to return the message in\n metadata_headers: [\"example string\"], // List of headers to include when format is metadata\n});\n\nconst result = await gmail_get_email.action();\n// outputSchema for result.data when operation === 'get_email':\n// {\n// operation: \"get_email\" // Get a specific email message,\n// success: boolean // Whether the email was retrieved successfully,\n// message: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure } | undefined // Email message details,\n// error: string // Error message if operation failed\n// }\n\n\n// Search Emails example\nconst gmail_search_emails = new GmailBubble({\n operation: \"search_emails\", // Search emails with query\n query: \"example string\", // Gmail search query string\n max_results: 50 // default, // Maximum number of results to return\n include_spam_trash: false // default, // Include messages from SPAM and TRASH\n});\n\nconst result = await gmail_search_emails.action();\n// outputSchema for result.data when operation === 'search_emails':\n// {\n// operation: \"search_emails\" // Search emails with query,\n// success: boolean // Whether the email search was completed successfully,\n// messages: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure }[] | undefined // List of matching email messages,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Mark As Read example\nconst gmail_mark_as_read = new GmailBubble({\n operation: \"mark_as_read\", // Mark one or more messages as read\n message_ids: [\"example string\"], // List of message IDs to mark as read\n});\n\nconst result = await gmail_mark_as_read.action();\n// outputSchema for result.data when operation === 'mark_as_read':\n// {\n// operation: \"mark_as_read\" // Mark one or more messages as read,\n// success: boolean // Whether the messages were marked as read successfully,\n// modified_messages: string[] | undefined // IDs of messages that were modified,\n// error: string // Error message if operation failed\n// }\n\n\n// Mark As Unread example\nconst gmail_mark_as_unread = new GmailBubble({\n operation: \"mark_as_unread\", // Mark one or more messages as unread\n message_ids: [\"example string\"], // List of message IDs to mark as unread\n});\n\nconst result = await gmail_mark_as_unread.action();\n// outputSchema for result.data when operation === 'mark_as_unread':\n// {\n// operation: \"mark_as_unread\" // Mark one or more messages as unread,\n// success: boolean // Whether the messages were marked as unread successfully,\n// modified_messages: string[] | undefined // IDs of messages that were modified,\n// error: string // Error message if operation failed\n// }\n\n\n// Create Draft example\nconst gmail_create_draft = new GmailBubble({\n operation: \"create_draft\", // Create a draft email\n to: [\"example string\"], // List of recipient email addresses\n cc: [\"example string\"], // List of CC recipient email addresses\n bcc: [\"example string\"], // List of BCC recipient email addresses\n subject: \"example string\", // Email subject line\n body_text: \"example string\", // [ONEOF:body] Email body (supports markdown — automatically converted to HTML for rendering)\n body_html: \"example string\", // [ONEOF:body] HTML email body. If not provided and body_text is set, HTML is auto-generated from body_text.\n reply_to: \"example string\", // Reply-to email address\n thread_id: \"example string\", // Thread ID to reply to (for threaded conversations)\n});\n\nconst result = await gmail_create_draft.action();\n// outputSchema for result.data when operation === 'create_draft':\n// {\n// operation: \"create_draft\" // Create a draft email,\n// success: boolean // Whether the draft was created successfully,\n// draft: { id: string // Unique draft identifier, message: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure } // Draft message content } | undefined // Created draft,\n// error: string // Error message if operation failed\n// }\n\n\n// Send Draft example\nconst gmail_send_draft = new GmailBubble({\n operation: \"send_draft\", // Send a draft email\n draft_id: \"example string\", // Gmail draft ID to send\n});\n\nconst result = await gmail_send_draft.action();\n// outputSchema for result.data when operation === 'send_draft':\n// {\n// operation: \"send_draft\" // Send a draft email,\n// success: boolean // Whether the draft was sent successfully,\n// message_id: string | undefined // Sent message ID,\n// thread_id: string | undefined // Thread ID,\n// error: string // Error message if operation failed\n// }\n\n\n// List Drafts example\nconst gmail_list_drafts = new GmailBubble({\n operation: \"list_drafts\", // List draft emails\n query: \"example string\", // Search query to filter drafts\n max_results: 100 // default, // Maximum number of drafts to return\n page_token: \"example string\", // Token for pagination to get next page\n include_spam_trash: false // default, // Include drafts from SPAM and TRASH\n});\n\nconst result = await gmail_list_drafts.action();\n// outputSchema for result.data when operation === 'list_drafts':\n// {\n// operation: \"list_drafts\" // List draft emails,\n// success: boolean // Whether the draft list was retrieved successfully,\n// drafts: { id: string // Unique draft identifier, message: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure } // Draft message content }[] | undefined // List of drafts,\n// next_page_token: string | undefined // Token for fetching next page,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Delete Email example\nconst gmail_delete_email = new GmailBubble({\n operation: \"delete_email\", // Delete an email message permanently\n message_id: \"example string\", // Gmail message ID to delete\n});\n\nconst result = await gmail_delete_email.action();\n// outputSchema for result.data when operation === 'delete_email':\n// {\n// operation: \"delete_email\" // Delete an email message permanently,\n// success: boolean // Whether the email was deleted successfully,\n// deleted_message_id: string | undefined // ID of the deleted message,\n// error: string // Error message if operation failed\n// }\n\n\n// Trash Email example\nconst gmail_trash_email = new GmailBubble({\n operation: \"trash_email\", // Move an email message to trash\n message_id: \"example string\", // Gmail message ID to move to trash\n});\n\nconst result = await gmail_trash_email.action();\n// outputSchema for result.data when operation === 'trash_email':\n// {\n// operation: \"trash_email\" // Move an email message to trash,\n// success: boolean // Whether the email was moved to trash successfully,\n// trashed_message_id: string | undefined // ID of the trashed message,\n// error: string // Error message if operation failed\n// }\n\n\n// List Threads example\nconst gmail_list_threads = new GmailBubble({\n operation: \"list_threads\", // List email threads\n query: \"example string\", // Gmail search query to filter threads\n label_ids: [\"example string\"], // Filter by specific label IDs\n include_spam_trash: false // default, // Include threads from SPAM and TRASH\n max_results: 100 // default, // Maximum number of threads to return\n page_token: \"example string\", // Token for pagination to get next page\n});\n\nconst result = await gmail_list_threads.action();\n// outputSchema for result.data when operation === 'list_threads':\n// {\n// operation: \"list_threads\" // List email threads,\n// success: boolean // Whether the thread list was retrieved successfully,\n// threads: { id: string // Unique thread identifier, historyId: string | undefined // Last history record ID, messages: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure }[] | undefined // Messages in this thread, snippet: string | undefined // Thread snippet }[] | undefined // List of email threads,\n// next_page_token: string | undefined // Token for fetching next page,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// List Labels example\nconst gmail_list_labels = new GmailBubble({\n operation: \"list_labels\", // List all labels in mailbox\n});\n\nconst result = await gmail_list_labels.action();\n// outputSchema for result.data when operation === 'list_labels':\n// {\n// operation: \"list_labels\" // List all labels in mailbox,\n// success: boolean // Whether the label list was retrieved successfully,\n// labels: { id: string // Label ID, name: string // Label name, type: \"system\" | \"user\" | undefined // Label type: system (built-in) or user (custom), messageListVisibility: \"show\" | \"hide\" | undefined // Visibility in message list, labelListVisibility: \"labelShow\" | \"labelShowIfUnread\" | \"labelHide\" | undefined // Visibility in label list }[] | undefined // List of labels (both system and user labels),\n// error: string // Error message if operation failed\n// }\n\n\n// Create Label example\nconst gmail_create_label = new GmailBubble({\n operation: \"create_label\", // Create a new custom label\n name: \"example string\", // Label name (display name)\n label_list_visibility: \"labelShow\" // options: \"labelShow\", \"labelShowIfUnread\", \"labelHide\", // Visibility in label list\n message_list_visibility: \"show\" // options: \"show\", \"hide\", // Visibility in message list\n background_color: \"example string\", // Background color in hex format (e.g., #000000)\n text_color: \"example string\", // Text color in hex format (e.g., #ffffff)\n});\n\nconst result = await gmail_create_label.action();\n// outputSchema for result.data when operation === 'create_label':\n// {\n// operation: \"create_label\" // Create a new custom label,\n// success: boolean // Whether the label was created successfully,\n// label: { id: string // Label ID, name: string // Label name, type: \"system\" | \"user\" | undefined // Label type: system (built-in) or user (custom), messageListVisibility: \"show\" | \"hide\" | undefined // Visibility in message list, labelListVisibility: \"labelShow\" | \"labelShowIfUnread\" | \"labelHide\" | undefined // Visibility in label list } | undefined // Created label details,\n// error: string // Error message if operation failed\n// }\n\n\n// Modify Message Labels example\nconst gmail_modify_message_labels = new GmailBubble({\n operation: \"modify_message_labels\", // Add or remove labels from a message\n message_id: \"example string\", // Gmail message ID to modify\n add_label_ids: [\"example string\"], // List of label IDs to add (max 100)\n remove_label_ids: [\"example string\"], // List of label IDs to remove (max 100)\n});\n\nconst result = await gmail_modify_message_labels.action();\n// outputSchema for result.data when operation === 'modify_message_labels':\n// {\n// operation: \"modify_message_labels\" // Add or remove labels from a message,\n// success: boolean // Whether the labels were modified successfully,\n// message_id: string | undefined // Modified message ID,\n// label_ids: string[] | undefined // Current label IDs after modification,\n// error: string // Error message if operation failed\n// }\n\n\n// Modify Thread Labels example\nconst gmail_modify_thread_labels = new GmailBubble({\n operation: \"modify_thread_labels\", // Add or remove labels from all messages in a thread\n thread_id: \"example string\", // Gmail thread ID to modify\n add_label_ids: [\"example string\"], // List of label IDs to add to all messages in thread (max 100)\n remove_label_ids: [\"example string\"], // List of label IDs to remove from all messages in thread (max 100)\n});\n\nconst result = await gmail_modify_thread_labels.action();\n// outputSchema for result.data when operation === 'modify_thread_labels':\n// {\n// operation: \"modify_thread_labels\" // Add or remove labels from all messages in a thread,\n// success: boolean // Whether the thread labels were modified successfully,\n// thread_id: string | undefined // Modified thread ID,\n// error: string // Error message if operation failed\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`gmail failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
12292
|
+
"usageExample": "// Send Email example\nconst gmail_send_email = new GmailBubble({\n operation: \"send_email\", // Send an email message\n to: [\"example string\"], // List of recipient email addresses\n cc: [\"example string\"], // List of CC recipient email addresses\n bcc: [\"example string\"], // List of BCC recipient email addresses\n subject: \"example string\", // Email subject line\n body_text: \"example string\", // [ONEOF:body] Email body (supports markdown — automatically converted to HTML for rendering)\n body_html: \"example string\", // [ONEOF:body] HTML email body. If not provided and body_text is set, HTML is auto-generated from body_text.\n reply_to: \"example string\", // Reply-to email address\n thread_id: \"example string\", // Thread ID to reply to (for threaded conversations)\n});\n\nconst result = await gmail_send_email.action();\n// outputSchema for result.data when operation === 'send_email':\n// {\n// operation: \"send_email\" // Send an email message,\n// success: boolean // Whether the email was sent successfully,\n// message_id: string | undefined // Sent message ID,\n// thread_id: string | undefined // Thread ID,\n// error: string // Error message if operation failed\n// }\n\n\n// List Emails example\nconst gmail_list_emails = new GmailBubble({\n operation: \"list_emails\", // List emails in the user mailbox\n query: \"example string\", // Gmail search query (e.g., \"from:user@example.com is:unread\")\n label_ids: [\"example string\"], // Filter by specific label IDs\n include_spam_trash: false // default, // Include messages from SPAM and TRASH\n max_results: 100 // default, // Maximum number of messages to return\n page_token: \"example string\", // Token for pagination to get next page\n include_details: true // default, // Whether to fetch full message details including snippet, headers, and body\n});\n\nconst result = await gmail_list_emails.action();\n// outputSchema for result.data when operation === 'list_emails':\n// {\n// operation: \"list_emails\" // List emails in the user mailbox,\n// success: boolean // Whether the email list was retrieved successfully,\n// messages: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure }[] | undefined // List of email messages,\n// next_page_token: string | undefined // Token for fetching next page,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Email example\nconst gmail_get_email = new GmailBubble({\n operation: \"get_email\", // Get a specific email message\n message_id: \"example string\", // Gmail message ID to retrieve\n format: \"minimal\" // options: \"minimal\", \"full\", \"raw\", \"metadata\", // Format to return the message in\n metadata_headers: [\"example string\"], // List of headers to include when format is metadata\n});\n\nconst result = await gmail_get_email.action();\n// outputSchema for result.data when operation === 'get_email':\n// {\n// operation: \"get_email\" // Get a specific email message,\n// success: boolean // Whether the email was retrieved successfully,\n// message: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure } | undefined // Email message details,\n// error: string // Error message if operation failed\n// }\n\n\n// Search Emails example\nconst gmail_search_emails = new GmailBubble({\n operation: \"search_emails\", // Search emails with query\n query: \"example string\", // Gmail search query string\n max_results: 50 // default, // Maximum number of results to return\n include_spam_trash: false // default, // Include messages from SPAM and TRASH\n});\n\nconst result = await gmail_search_emails.action();\n// outputSchema for result.data when operation === 'search_emails':\n// {\n// operation: \"search_emails\" // Search emails with query,\n// success: boolean // Whether the email search was completed successfully,\n// messages: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure }[] | undefined // List of matching email messages,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Mark As Read example\nconst gmail_mark_as_read = new GmailBubble({\n operation: \"mark_as_read\", // Mark one or more messages as read\n message_ids: [\"example string\"], // List of message IDs to mark as read\n});\n\nconst result = await gmail_mark_as_read.action();\n// outputSchema for result.data when operation === 'mark_as_read':\n// {\n// operation: \"mark_as_read\" // Mark one or more messages as read,\n// success: boolean // Whether the messages were marked as read successfully,\n// modified_messages: string[] | undefined // IDs of messages that were modified,\n// error: string // Error message if operation failed\n// }\n\n\n// Mark As Unread example\nconst gmail_mark_as_unread = new GmailBubble({\n operation: \"mark_as_unread\", // Mark one or more messages as unread\n message_ids: [\"example string\"], // List of message IDs to mark as unread\n});\n\nconst result = await gmail_mark_as_unread.action();\n// outputSchema for result.data when operation === 'mark_as_unread':\n// {\n// operation: \"mark_as_unread\" // Mark one or more messages as unread,\n// success: boolean // Whether the messages were marked as unread successfully,\n// modified_messages: string[] | undefined // IDs of messages that were modified,\n// error: string // Error message if operation failed\n// }\n\n\n// Create Draft example\nconst gmail_create_draft = new GmailBubble({\n operation: \"create_draft\", // Create a draft email\n to: [\"example string\"], // List of recipient email addresses\n cc: [\"example string\"], // List of CC recipient email addresses\n bcc: [\"example string\"], // List of BCC recipient email addresses\n subject: \"example string\", // Email subject line\n body_text: \"example string\", // [ONEOF:body] Email body (supports markdown — automatically converted to HTML for rendering)\n body_html: \"example string\", // [ONEOF:body] HTML email body. If not provided and body_text is set, HTML is auto-generated from body_text.\n reply_to: \"example string\", // Reply-to email address\n thread_id: \"example string\", // Thread ID to reply to (for threaded conversations)\n});\n\nconst result = await gmail_create_draft.action();\n// outputSchema for result.data when operation === 'create_draft':\n// {\n// operation: \"create_draft\" // Create a draft email,\n// success: boolean // Whether the draft was created successfully,\n// draft: { id: string // Unique draft identifier, message: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure } // Draft message content } | undefined // Created draft,\n// error: string // Error message if operation failed\n// }\n\n\n// Send Draft example\nconst gmail_send_draft = new GmailBubble({\n operation: \"send_draft\", // Send a draft email\n draft_id: \"example string\", // Gmail draft ID to send\n});\n\nconst result = await gmail_send_draft.action();\n// outputSchema for result.data when operation === 'send_draft':\n// {\n// operation: \"send_draft\" // Send a draft email,\n// success: boolean // Whether the draft was sent successfully,\n// message_id: string | undefined // Sent message ID,\n// thread_id: string | undefined // Thread ID,\n// error: string // Error message if operation failed\n// }\n\n\n// List Drafts example\nconst gmail_list_drafts = new GmailBubble({\n operation: \"list_drafts\", // List draft emails\n query: \"example string\", // Search query to filter drafts\n max_results: 100 // default, // Maximum number of drafts to return\n page_token: \"example string\", // Token for pagination to get next page\n include_spam_trash: false // default, // Include drafts from SPAM and TRASH\n});\n\nconst result = await gmail_list_drafts.action();\n// outputSchema for result.data when operation === 'list_drafts':\n// {\n// operation: \"list_drafts\" // List draft emails,\n// success: boolean // Whether the draft list was retrieved successfully,\n// drafts: { id: string // Unique draft identifier, message: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure } // Draft message content }[] | undefined // List of drafts,\n// next_page_token: string | undefined // Token for fetching next page,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Delete Email example\nconst gmail_delete_email = new GmailBubble({\n operation: \"delete_email\", // Delete an email message permanently\n message_id: \"example string\", // Gmail message ID to delete\n});\n\nconst result = await gmail_delete_email.action();\n// outputSchema for result.data when operation === 'delete_email':\n// {\n// operation: \"delete_email\" // Delete an email message permanently,\n// success: boolean // Whether the email was deleted successfully,\n// deleted_message_id: string | undefined // ID of the deleted message,\n// error: string // Error message if operation failed\n// }\n\n\n// Trash Email example\nconst gmail_trash_email = new GmailBubble({\n operation: \"trash_email\", // Move an email message to trash\n message_id: \"example string\", // Gmail message ID to move to trash\n});\n\nconst result = await gmail_trash_email.action();\n// outputSchema for result.data when operation === 'trash_email':\n// {\n// operation: \"trash_email\" // Move an email message to trash,\n// success: boolean // Whether the email was moved to trash successfully,\n// trashed_message_id: string | undefined // ID of the trashed message,\n// error: string // Error message if operation failed\n// }\n\n\n// List Threads example\nconst gmail_list_threads = new GmailBubble({\n operation: \"list_threads\", // List email threads\n query: \"example string\", // Gmail search query to filter threads\n label_ids: [\"example string\"], // Filter by specific label IDs\n include_spam_trash: false // default, // Include threads from SPAM and TRASH\n max_results: 100 // default, // Maximum number of threads to return\n page_token: \"example string\", // Token for pagination to get next page\n});\n\nconst result = await gmail_list_threads.action();\n// outputSchema for result.data when operation === 'list_threads':\n// {\n// operation: \"list_threads\" // List email threads,\n// success: boolean // Whether the thread list was retrieved successfully,\n// threads: { id: string // Unique thread identifier, historyId: string | undefined // Last history record ID, messages: { id: string // Unique message identifier, threadId: string | undefined // Thread identifier this message belongs to, labelIds: string[] | undefined // List of label IDs applied to this message, snippet: string | undefined // Short snippet of the message text, textContent: string | undefined // Clean, readable email text content, historyId: string | undefined // History record ID that last modified this message, internalDate: string | undefined // Internal message creation timestamp (epoch ms), sizeEstimate: number | undefined // Estimated size in bytes, raw: string | undefined // Entire email message in RFC 2822 format (base64url encoded), payload: { mimeType: string | undefined // MIME type of the email content, headers: { name: string // Header name (e.g., \"Subject\", \"From\", \"To\"), value: string // Header value }[] | undefined // Essential email headers only (Subject, From, To, Cc, Bcc, Date, Reply-To, Message-ID, In-Reply-To, References), body: { data: string | undefined // Email body content (base64url encoded), size: number | undefined // Size of the body content in bytes, attachmentId: string | undefined // ID of the attachment if this body part is an attachment } | undefined // Email body content and metadata, parts: unknown[] | undefined // Array of message parts for multipart emails } | undefined // Parsed email structure }[] | undefined // Messages in this thread, snippet: string | undefined // Thread snippet }[] | undefined // List of email threads,\n// next_page_token: string | undefined // Token for fetching next page,\n// result_size_estimate: number | undefined // Estimated total number of results,\n// error: string // Error message if operation failed\n// }\n\n\n// List Labels example\nconst gmail_list_labels = new GmailBubble({\n operation: \"list_labels\", // List all labels in mailbox\n});\n\nconst result = await gmail_list_labels.action();\n// outputSchema for result.data when operation === 'list_labels':\n// {\n// operation: \"list_labels\" // List all labels in mailbox,\n// success: boolean // Whether the label list was retrieved successfully,\n// labels: { id: string // Label ID, name: string // Label name, type: \"system\" | \"user\" | undefined // Label type: system (built-in) or user (custom), messageListVisibility: \"show\" | \"hide\" | undefined // Visibility in message list, labelListVisibility: \"labelShow\" | \"labelShowIfUnread\" | \"labelHide\" | undefined // Visibility in label list }[] | undefined // List of labels (both system and user labels),\n// error: string // Error message if operation failed\n// }\n\n\n// Create Label example\nconst gmail_create_label = new GmailBubble({\n operation: \"create_label\", // Create a new custom label\n name: \"example string\", // Label name (display name)\n label_list_visibility: \"labelShow\" // options: \"labelShow\", \"labelShowIfUnread\", \"labelHide\", // Visibility in label list\n message_list_visibility: \"show\" // options: \"show\", \"hide\", // Visibility in message list\n background_color: \"example string\", // Background color in hex format (e.g., #000000)\n text_color: \"example string\", // Text color in hex format (e.g., #ffffff)\n});\n\nconst result = await gmail_create_label.action();\n// outputSchema for result.data when operation === 'create_label':\n// {\n// operation: \"create_label\" // Create a new custom label,\n// success: boolean // Whether the label was created successfully,\n// label: { id: string // Label ID, name: string // Label name, type: \"system\" | \"user\" | undefined // Label type: system (built-in) or user (custom), messageListVisibility: \"show\" | \"hide\" | undefined // Visibility in message list, labelListVisibility: \"labelShow\" | \"labelShowIfUnread\" | \"labelHide\" | undefined // Visibility in label list } | undefined // Created label details,\n// error: string // Error message if operation failed\n// }\n\n\n// Modify Message Labels example\nconst gmail_modify_message_labels = new GmailBubble({\n operation: \"modify_message_labels\", // Add or remove labels from a message\n message_id: \"example string\", // Gmail message ID to modify\n add_label_ids: [\"example string\"], // List of label IDs to add (max 100)\n remove_label_ids: [\"example string\"], // List of label IDs to remove (max 100)\n});\n\nconst result = await gmail_modify_message_labels.action();\n// outputSchema for result.data when operation === 'modify_message_labels':\n// {\n// operation: \"modify_message_labels\" // Add or remove labels from a message,\n// success: boolean // Whether the labels were modified successfully,\n// message_id: string | undefined // Modified message ID,\n// label_ids: string[] | undefined // Current label IDs after modification,\n// error: string // Error message if operation failed\n// }\n\n\n// Modify Thread Labels example\nconst gmail_modify_thread_labels = new GmailBubble({\n operation: \"modify_thread_labels\", // Add or remove labels from all messages in a thread\n thread_id: \"example string\", // Gmail thread ID to modify\n add_label_ids: [\"example string\"], // List of label IDs to add to all messages in thread (max 100)\n remove_label_ids: [\"example string\"], // List of label IDs to remove from all messages in thread (max 100)\n});\n\nconst result = await gmail_modify_thread_labels.action();\n// outputSchema for result.data when operation === 'modify_thread_labels':\n// {\n// operation: \"modify_thread_labels\" // Add or remove labels from all messages in a thread,\n// success: boolean // Whether the thread labels were modified successfully,\n// thread_id: string | undefined // Modified thread ID,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Attachment example\nconst gmail_get_attachment = new GmailBubble({\n operation: \"get_attachment\", // Download an attachment from an email message\n message_id: \"example string\", // Gmail message ID that contains the attachment\n attachment_id: \"example string\", // Attachment ID from the message payload (found in body.attachmentId of attachment parts)\n});\n\nconst result = await gmail_get_attachment.action();\n// outputSchema for result.data when operation === 'get_attachment':\n// {\n// operation: \"get_attachment\" // Download an attachment from an email message,\n// success: boolean // Whether the attachment was downloaded successfully,\n// data: string | undefined // Base64-encoded attachment content,\n// size: number | undefined // Attachment size in bytes,\n// error: string // Error message if operation failed\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`gmail failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
12204
12293
|
"requiredCredentials": [
|
|
12205
12294
|
"GMAIL_CRED"
|
|
12206
12295
|
]
|
|
@@ -68644,8 +68733,8 @@
|
|
|
68644
68733
|
"type": "number",
|
|
68645
68734
|
"minimum": 1,
|
|
68646
68735
|
"maximum": 200,
|
|
68647
|
-
"default":
|
|
68648
|
-
"description": "Maximum number of results to return (1-200, default
|
|
68736
|
+
"default": 100,
|
|
68737
|
+
"description": "Maximum number of results to return (1-200, default 100)"
|
|
68649
68738
|
},
|
|
68650
68739
|
"after": {
|
|
68651
68740
|
"type": "string",
|
|
@@ -69442,6 +69531,73 @@
|
|
|
69442
69531
|
],
|
|
69443
69532
|
"additionalProperties": false
|
|
69444
69533
|
},
|
|
69534
|
+
{
|
|
69535
|
+
"type": "object",
|
|
69536
|
+
"properties": {
|
|
69537
|
+
"operation": {
|
|
69538
|
+
"type": "string",
|
|
69539
|
+
"enum": [
|
|
69540
|
+
"list_owners"
|
|
69541
|
+
],
|
|
69542
|
+
"description": "List HubSpot account owners (users who can be assigned to records)"
|
|
69543
|
+
},
|
|
69544
|
+
"email": {
|
|
69545
|
+
"type": "string",
|
|
69546
|
+
"description": "Filter owners by email address"
|
|
69547
|
+
},
|
|
69548
|
+
"limit": {
|
|
69549
|
+
"type": "number",
|
|
69550
|
+
"minimum": 1,
|
|
69551
|
+
"maximum": 500,
|
|
69552
|
+
"default": 100,
|
|
69553
|
+
"description": "Maximum number of owners to return (1-500, default 100)"
|
|
69554
|
+
},
|
|
69555
|
+
"after": {
|
|
69556
|
+
"type": "string",
|
|
69557
|
+
"description": "Pagination cursor for next page of results"
|
|
69558
|
+
},
|
|
69559
|
+
"credentials": {
|
|
69560
|
+
"type": "object",
|
|
69561
|
+
"additionalProperties": {
|
|
69562
|
+
"type": "string"
|
|
69563
|
+
},
|
|
69564
|
+
"description": "Object mapping credential types to values (injected at runtime)"
|
|
69565
|
+
}
|
|
69566
|
+
},
|
|
69567
|
+
"required": [
|
|
69568
|
+
"operation"
|
|
69569
|
+
],
|
|
69570
|
+
"additionalProperties": false
|
|
69571
|
+
},
|
|
69572
|
+
{
|
|
69573
|
+
"type": "object",
|
|
69574
|
+
"properties": {
|
|
69575
|
+
"operation": {
|
|
69576
|
+
"type": "string",
|
|
69577
|
+
"enum": [
|
|
69578
|
+
"get_owner"
|
|
69579
|
+
],
|
|
69580
|
+
"description": "Retrieve a single HubSpot owner by ID"
|
|
69581
|
+
},
|
|
69582
|
+
"owner_id": {
|
|
69583
|
+
"type": "string",
|
|
69584
|
+
"minLength": 1,
|
|
69585
|
+
"description": "HubSpot owner ID (e.g., from hubspot_owner_id property on records)"
|
|
69586
|
+
},
|
|
69587
|
+
"credentials": {
|
|
69588
|
+
"type": "object",
|
|
69589
|
+
"additionalProperties": {
|
|
69590
|
+
"type": "string"
|
|
69591
|
+
},
|
|
69592
|
+
"description": "Object mapping credential types to values (injected at runtime)"
|
|
69593
|
+
}
|
|
69594
|
+
},
|
|
69595
|
+
"required": [
|
|
69596
|
+
"operation",
|
|
69597
|
+
"owner_id"
|
|
69598
|
+
],
|
|
69599
|
+
"additionalProperties": false
|
|
69600
|
+
},
|
|
69445
69601
|
{
|
|
69446
69602
|
"type": "object",
|
|
69447
69603
|
"properties": {
|
|
@@ -70157,6 +70313,81 @@
|
|
|
70157
70313
|
],
|
|
70158
70314
|
"additionalProperties": false
|
|
70159
70315
|
},
|
|
70316
|
+
{
|
|
70317
|
+
"type": "object",
|
|
70318
|
+
"properties": {
|
|
70319
|
+
"operation": {
|
|
70320
|
+
"type": "string",
|
|
70321
|
+
"enum": [
|
|
70322
|
+
"list_owners"
|
|
70323
|
+
]
|
|
70324
|
+
},
|
|
70325
|
+
"success": {
|
|
70326
|
+
"type": "boolean"
|
|
70327
|
+
},
|
|
70328
|
+
"owners": {
|
|
70329
|
+
"type": "array",
|
|
70330
|
+
"items": {
|
|
70331
|
+
"type": "object",
|
|
70332
|
+
"additionalProperties": {}
|
|
70333
|
+
}
|
|
70334
|
+
},
|
|
70335
|
+
"paging": {
|
|
70336
|
+
"type": "object",
|
|
70337
|
+
"properties": {
|
|
70338
|
+
"next": {
|
|
70339
|
+
"type": "object",
|
|
70340
|
+
"properties": {
|
|
70341
|
+
"after": {
|
|
70342
|
+
"type": "string"
|
|
70343
|
+
}
|
|
70344
|
+
},
|
|
70345
|
+
"required": [
|
|
70346
|
+
"after"
|
|
70347
|
+
],
|
|
70348
|
+
"additionalProperties": false
|
|
70349
|
+
}
|
|
70350
|
+
},
|
|
70351
|
+
"additionalProperties": false
|
|
70352
|
+
},
|
|
70353
|
+
"error": {
|
|
70354
|
+
"type": "string"
|
|
70355
|
+
}
|
|
70356
|
+
},
|
|
70357
|
+
"required": [
|
|
70358
|
+
"operation",
|
|
70359
|
+
"success",
|
|
70360
|
+
"error"
|
|
70361
|
+
],
|
|
70362
|
+
"additionalProperties": false
|
|
70363
|
+
},
|
|
70364
|
+
{
|
|
70365
|
+
"type": "object",
|
|
70366
|
+
"properties": {
|
|
70367
|
+
"operation": {
|
|
70368
|
+
"type": "string",
|
|
70369
|
+
"enum": [
|
|
70370
|
+
"get_owner"
|
|
70371
|
+
]
|
|
70372
|
+
},
|
|
70373
|
+
"success": {
|
|
70374
|
+
"type": "boolean"
|
|
70375
|
+
},
|
|
70376
|
+
"owner": {
|
|
70377
|
+
"type": "object",
|
|
70378
|
+
"additionalProperties": {}
|
|
70379
|
+
},
|
|
70380
|
+
"error": {
|
|
70381
|
+
"type": "string"
|
|
70382
|
+
}
|
|
70383
|
+
},
|
|
70384
|
+
"required": [
|
|
70385
|
+
"operation",
|
|
70386
|
+
"success",
|
|
70387
|
+
"error"
|
|
70388
|
+
],
|
|
70389
|
+
"additionalProperties": false
|
|
70390
|
+
},
|
|
70160
70391
|
{
|
|
70161
70392
|
"type": "object",
|
|
70162
70393
|
"properties": {
|
|
@@ -70186,7 +70417,7 @@
|
|
|
70186
70417
|
}
|
|
70187
70418
|
]
|
|
70188
70419
|
},
|
|
70189
|
-
"usageExample": "// Create Record example\nconst hubspot_create_record = new HubSpotBubble({\n operation: \"create_record\", // Create a new CRM record\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n properties: { \"example_key\": \"example string\" }, // Object properties as key-value pairs. Common contact properties: email, firstname, lastname, phone, company. Common company properties: name, domain, industry. Common deal properties: dealname, pipeline, dealstage, amount. Common ticket properties: subject, content, hs_pipeline, hs_pipeline_stage. NOTE: Tickets REQUIRE hs_pipeline_stage (and usually hs_pipeline) to be set on creation.\n});\n\nconst result = await hubspot_create_record.action();\n// outputSchema for result.data when operation === 'create_record':\n// {\n// operation: \"create_record\",\n// success: boolean,\n// record: { id: string // Record ID, properties: Record<string, unknown> // Record properties, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp, archived: boolean | undefined // Whether the record is archived } | undefined // A HubSpot CRM record,\n// error: string\n// }\n\n\n// Get Record example\nconst hubspot_get_record = new HubSpotBubble({\n operation: \"get_record\", // Retrieve a single CRM record by ID\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n record_id: \"example string\", // HubSpot record ID\n properties: [\"example string\"], // List of property names to include in the response. If not specified, default properties are returned.\n});\n\nconst result = await hubspot_get_record.action();\n// outputSchema for result.data when operation === 'get_record':\n// {\n// operation: \"get_record\",\n// success: boolean,\n// record: { id: string // Record ID, properties: Record<string, unknown> // Record properties, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp, archived: boolean | undefined // Whether the record is archived } | undefined // A HubSpot CRM record,\n// error: string\n// }\n\n\n// Update Record example\nconst hubspot_update_record = new HubSpotBubble({\n operation: \"update_record\", // Update an existing CRM record\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n record_id: \"example string\", // HubSpot record ID\n properties: { \"example_key\": \"example string\" }, // Object properties as key-value pairs. Common contact properties: email, firstname, lastname, phone, company. Common company properties: name, domain, industry. Common deal properties: dealname, pipeline, dealstage, amount. Common ticket properties: subject, content, hs_pipeline, hs_pipeline_stage. NOTE: Tickets REQUIRE hs_pipeline_stage (and usually hs_pipeline) to be set on creation.\n});\n\nconst result = await hubspot_update_record.action();\n// outputSchema for result.data when operation === 'update_record':\n// {\n// operation: \"update_record\",\n// success: boolean,\n// record: { id: string // Record ID, properties: Record<string, unknown> // Record properties, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp, archived: boolean | undefined // Whether the record is archived } | undefined // A HubSpot CRM record,\n// error: string\n// }\n\n\n// Delete Record example\nconst hubspot_delete_record = new HubSpotBubble({\n operation: \"delete_record\", // Archive (soft-delete) a CRM record\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n record_id: \"example string\", // HubSpot record ID\n});\n\nconst result = await hubspot_delete_record.action();\n// outputSchema for result.data when operation === 'delete_record':\n// {\n// operation: \"delete_record\",\n// success: boolean,\n// error: string\n// }\n\n\n// Search Records example\nconst hubspot_search_records = new HubSpotBubble({\n operation: \"search_records\", // Search CRM records with filters\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n filter_groups: [{ filters: [{ propertyName: \"example string\" // Property name to filter on (e.g., \"email\", \"firstname\"), operator: \"EQ\" // options: \"EQ\", \"NEQ\", \"LT\", \"LTE\", \"GT\", \"GTE\", \"BETWEEN\", \"IN\", \"NOT_IN\", \"HAS_PROPERTY\", \"NOT_HAS_PROPERTY\", \"CONTAINS_TOKEN\", \"NOT_CONTAINS_TOKEN\" // Filter operator, value: \"example string\" // Value to compare against, highValue: \"example string\" // Upper bound value for BETWEEN operator, values: [\"example string\"] // Array of values for IN/NOT_IN operators }] // Filters within this group (combined with AND) }], // Filter groups for the search query. Groups are combined with OR, filters within a group with AND.\n properties: [\"example string\"], // List of property names to include in the response. If not specified, default properties are returned.\n limit: 10 // default, // Maximum number of results to return (1-200, default 10)\n after: \"example string\", // Pagination cursor for next page of results\n});\n\nconst result = await hubspot_search_records.action();\n// outputSchema for result.data when operation === 'search_records':\n// {\n// operation: \"search_records\",\n// success: boolean,\n// results: { id: string // Record ID, properties: Record<string, unknown> // Record properties, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp, archived: boolean | undefined // Whether the record is archived }[] | undefined,\n// total: number | undefined,\n// paging: { next: { after: string } | undefined } | undefined,\n// error: string\n// }\n\n\n// Batch Create Records example\nconst hubspot_batch_create_records = new HubSpotBubble({\n operation: \"batch_create_records\", // Create multiple CRM records in a single API call\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n records: [{ properties: { \"example_key\": \"example string\" } // Object properties as key-value pairs. Common contact properties: email, firstname, lastname, phone, company. Common company properties: name, domain, industry. Common deal properties: dealname, pipeline, dealstage, amount. Common ticket properties: subject, content, hs_pipeline, hs_pipeline_stage. NOTE: Tickets REQUIRE hs_pipeline_stage (and usually hs_pipeline) to be set on creation. }], // Array of records to create (max 100)\n});\n\nconst result = await hubspot_batch_create_records.action();\n// outputSchema for result.data when operation === 'batch_create_records':\n// {\n// operation: \"batch_create_records\",\n// success: boolean,\n// results: { id: string // Record ID, properties: Record<string, unknown> // Record properties, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp, archived: boolean | undefined // Whether the record is archived }[] | undefined,\n// error: string\n// }\n\n\n// Batch Update Records example\nconst hubspot_batch_update_records = new HubSpotBubble({\n operation: \"batch_update_records\", // Update multiple CRM records in a single API call\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n records: [{ id: \"example string\" // Record ID to update, properties: { \"example_key\": \"example string\" } // Object properties as key-value pairs. Common contact properties: email, firstname, lastname, phone, company. Common company properties: name, domain, industry. Common deal properties: dealname, pipeline, dealstage, amount. Common ticket properties: subject, content, hs_pipeline, hs_pipeline_stage. NOTE: Tickets REQUIRE hs_pipeline_stage (and usually hs_pipeline) to be set on creation. }], // Array of records to update (max 100)\n});\n\nconst result = await hubspot_batch_update_records.action();\n// outputSchema for result.data when operation === 'batch_update_records':\n// {\n// operation: \"batch_update_records\",\n// success: boolean,\n// results: { id: string // Record ID, properties: Record<string, unknown> // Record properties, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp, archived: boolean | undefined // Whether the record is archived }[] | undefined,\n// error: string\n// }\n\n\n// Batch Delete Records example\nconst hubspot_batch_delete_records = new HubSpotBubble({\n operation: \"batch_delete_records\", // Archive multiple CRM records in a single API call\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n record_ids: [\"example string\"], // Array of record IDs to archive (max 100)\n});\n\nconst result = await hubspot_batch_delete_records.action();\n// outputSchema for result.data when operation === 'batch_delete_records':\n// {\n// operation: \"batch_delete_records\",\n// success: boolean,\n// error: string\n// }\n\n\n// List Properties example\nconst hubspot_list_properties = new HubSpotBubble({\n operation: \"list_properties\", // List all property definitions for a CRM object type\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n});\n\nconst result = await hubspot_list_properties.action();\n// outputSchema for result.data when operation === 'list_properties':\n// {\n// operation: \"list_properties\",\n// success: boolean,\n// properties: Record<string, unknown>[] | undefined,\n// error: string\n// }\n\n\n// Get Property example\nconst hubspot_get_property = new HubSpotBubble({\n operation: \"get_property\", // Retrieve a single property definition by name\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n property_name: \"example string\", // Internal property name (snake_case, e.g. \"favorite_food\")\n});\n\nconst result = await hubspot_get_property.action();\n// outputSchema for result.data when operation === 'get_property':\n// {\n// operation: \"get_property\",\n// success: boolean,\n// property: Record<string, unknown> | undefined,\n// error: string\n// }\n\n\n// Create Property example\nconst hubspot_create_property = new HubSpotBubble({\n operation: \"create_property\", // Create a new custom property definition\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n name: \"example string\", // Internal property name (snake_case, e.g. \"favorite_food\")\n label: \"example string\", // Display label (e.g. \"Favorite Food\")\n type: \"string\" // options: \"string\", \"number\", \"date\", \"datetime\", \"enumeration\", \"bool\", // Property data type. \"string\" for text, \"number\" for numeric, \"date\" for date-only, \"datetime\" for date+time, \"enumeration\" for option sets, \"bool\" for yes/no.\n fieldType: \"text\" // options: \"text\", \"textarea\", \"number\", \"date\", \"file\", \"select\", \"radio\", \"checkbox\", \"booleancheckbox\", \"calculation_equation\", \"html\", \"phonenumber\", // How the property appears in HubSpot UI. Must be compatible with the property type.\n groupName: \"example string\", // Property group name (e.g. \"contactinformation\", \"dealinformation\")\n description: \"example string\", // Description of the property\n hasUniqueValue: true, // Whether this property must have unique values across records\n options: [{ label: \"example string\" // Display label for the option, value: \"example string\" // Internal value for the option, description: \"example string\" // Description of the option, displayOrder: 42 // Display order (lower = first), hidden: true // Whether this option is hidden from forms }], // Options for enumeration-type properties (select, radio, checkbox)\n calculationFormula: \"example string\", // Formula for calculation_equation fieldType properties\n});\n\nconst result = await hubspot_create_property.action();\n// outputSchema for result.data when operation === 'create_property':\n// {\n// operation: \"create_property\",\n// success: boolean,\n// property: Record<string, unknown> | undefined,\n// error: string\n// }\n\n\n// Update Property example\nconst hubspot_update_property = new HubSpotBubble({\n operation: \"update_property\", // Update an existing property definition\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n property_name: \"example string\", // Internal property name (snake_case, e.g. \"favorite_food\")\n label: \"example string\", // New display label\n description: \"example string\", // New description\n groupName: \"example string\", // New property group name\n type: \"string\" // options: \"string\", \"number\", \"date\", \"datetime\", \"enumeration\", \"bool\", // Property data type. \"string\" for text, \"number\" for numeric, \"date\" for date-only, \"datetime\" for date+time, \"enumeration\" for option sets, \"bool\" for yes/no.\n fieldType: \"text\" // options: \"text\", \"textarea\", \"number\", \"date\", \"file\", \"select\", \"radio\", \"checkbox\", \"booleancheckbox\", \"calculation_equation\", \"html\", \"phonenumber\", // How the property appears in HubSpot UI. Must be compatible with the property type.\n options: [{ label: \"example string\" // Display label for the option, value: \"example string\" // Internal value for the option, description: \"example string\" // Description of the option, displayOrder: 42 // Display order (lower = first), hidden: true // Whether this option is hidden from forms }], // Updated options for enumeration-type properties\n});\n\nconst result = await hubspot_update_property.action();\n// outputSchema for result.data when operation === 'update_property':\n// {\n// operation: \"update_property\",\n// success: boolean,\n// property: Record<string, unknown> | undefined,\n// error: string\n// }\n\n\n// Delete Property example\nconst hubspot_delete_property = new HubSpotBubble({\n operation: \"delete_property\", // Delete a custom property definition (cannot delete default properties)\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n property_name: \"example string\", // Internal property name (snake_case, e.g. \"favorite_food\")\n});\n\nconst result = await hubspot_delete_property.action();\n// outputSchema for result.data when operation === 'delete_property':\n// {\n// operation: \"delete_property\",\n// success: boolean,\n// error: string\n// }\n\n\n// List Associations example\nconst hubspot_list_associations = new HubSpotBubble({\n operation: \"list_associations\", // List all records associated with a given record\n from_object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // Source object type\n from_record_id: \"example string\", // Source record ID\n to_object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // Target object type to list associations for\n});\n\nconst result = await hubspot_list_associations.action();\n// outputSchema for result.data when operation === 'list_associations':\n// {\n// operation: \"list_associations\",\n// success: boolean,\n// associations: Record<string, unknown>[] | undefined,\n// error: string\n// }\n\n\n// Create Association example\nconst hubspot_create_association = new HubSpotBubble({\n operation: \"create_association\", // Create a default association (link) between two CRM records\n from_object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // Source object type\n from_record_id: \"example string\", // Source record ID\n to_object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // Target object type\n to_record_id: \"example string\", // Target record ID\n});\n\nconst result = await hubspot_create_association.action();\n// outputSchema for result.data when operation === 'create_association':\n// {\n// operation: \"create_association\",\n// success: boolean,\n// error: string\n// }\n\n\n// Remove Association example\nconst hubspot_remove_association = new HubSpotBubble({\n operation: \"remove_association\", // Remove all associations between two specific records\n from_object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // Source object type\n from_record_id: \"example string\", // Source record ID\n to_object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // Target object type\n to_record_id: \"example string\", // Target record ID\n});\n\nconst result = await hubspot_remove_association.action();\n// outputSchema for result.data when operation === 'remove_association':\n// {\n// operation: \"remove_association\",\n// success: boolean,\n// error: string\n// }\n\n\n// List Pipelines example\nconst hubspot_list_pipelines = new HubSpotBubble({\n operation: \"list_pipelines\", // List all pipelines and their stages for deals or tickets\n object_type: \"deals\" // options: \"deals\", \"tickets\", // Object type that supports pipelines (deals or tickets)\n});\n\nconst result = await hubspot_list_pipelines.action();\n// outputSchema for result.data when operation === 'list_pipelines':\n// {\n// operation: \"list_pipelines\",\n// success: boolean,\n// pipelines: Record<string, unknown>[] | undefined,\n// error: string\n// }\n\n\n// Create Note example\nconst hubspot_create_note = new HubSpotBubble({\n operation: \"create_note\", // Create a note and associate it with CRM records\n note_body: \"example string\", // Note content (supports HTML formatting)\n associations: [{ object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\" // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets), record_id: \"example string\" // Record ID to associate the note with }], // Records to associate the note with\n timestamp: \"example string\", // ISO 8601 timestamp for the note (defaults to current time)\n});\n\nconst result = await hubspot_create_note.action();\n// outputSchema for result.data when operation === 'create_note':\n// {\n// operation: \"create_note\",\n// success: boolean,\n// note: { id: string // Note ID, properties: Record<string, unknown> // Note properties including hs_note_body, hs_timestamp } | undefined,\n// error: string\n// }\n\n\n// Get Account Info example\nconst hubspot_get_account_info = new HubSpotBubble({\n operation: \"get_account_info\", // Retrieve HubSpot account details including portal ID, timezone, and currency\n});\n\nconst result = await hubspot_get_account_info.action();\n// outputSchema for result.data when operation === 'get_account_info':\n// {\n// operation: \"get_account_info\",\n// success: boolean,\n// account: Record<string, unknown> | undefined,\n// error: string\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`hubspot failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
70420
|
+
"usageExample": "// Create Record example\nconst hubspot_create_record = new HubSpotBubble({\n operation: \"create_record\", // Create a new CRM record\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n properties: { \"example_key\": \"example string\" }, // Object properties as key-value pairs. Common contact properties: email, firstname, lastname, phone, company. Common company properties: name, domain, industry. Common deal properties: dealname, pipeline, dealstage, amount. Common ticket properties: subject, content, hs_pipeline, hs_pipeline_stage. NOTE: Tickets REQUIRE hs_pipeline_stage (and usually hs_pipeline) to be set on creation.\n});\n\nconst result = await hubspot_create_record.action();\n// outputSchema for result.data when operation === 'create_record':\n// {\n// operation: \"create_record\",\n// success: boolean,\n// record: { id: string // Record ID, properties: Record<string, unknown> // Record properties, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp, archived: boolean | undefined // Whether the record is archived } | undefined // A HubSpot CRM record,\n// error: string\n// }\n\n\n// Get Record example\nconst hubspot_get_record = new HubSpotBubble({\n operation: \"get_record\", // Retrieve a single CRM record by ID\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n record_id: \"example string\", // HubSpot record ID\n properties: [\"example string\"], // List of property names to include in the response. If not specified, default properties are returned.\n});\n\nconst result = await hubspot_get_record.action();\n// outputSchema for result.data when operation === 'get_record':\n// {\n// operation: \"get_record\",\n// success: boolean,\n// record: { id: string // Record ID, properties: Record<string, unknown> // Record properties, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp, archived: boolean | undefined // Whether the record is archived } | undefined // A HubSpot CRM record,\n// error: string\n// }\n\n\n// Update Record example\nconst hubspot_update_record = new HubSpotBubble({\n operation: \"update_record\", // Update an existing CRM record\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n record_id: \"example string\", // HubSpot record ID\n properties: { \"example_key\": \"example string\" }, // Object properties as key-value pairs. Common contact properties: email, firstname, lastname, phone, company. Common company properties: name, domain, industry. Common deal properties: dealname, pipeline, dealstage, amount. Common ticket properties: subject, content, hs_pipeline, hs_pipeline_stage. NOTE: Tickets REQUIRE hs_pipeline_stage (and usually hs_pipeline) to be set on creation.\n});\n\nconst result = await hubspot_update_record.action();\n// outputSchema for result.data when operation === 'update_record':\n// {\n// operation: \"update_record\",\n// success: boolean,\n// record: { id: string // Record ID, properties: Record<string, unknown> // Record properties, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp, archived: boolean | undefined // Whether the record is archived } | undefined // A HubSpot CRM record,\n// error: string\n// }\n\n\n// Delete Record example\nconst hubspot_delete_record = new HubSpotBubble({\n operation: \"delete_record\", // Archive (soft-delete) a CRM record\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n record_id: \"example string\", // HubSpot record ID\n});\n\nconst result = await hubspot_delete_record.action();\n// outputSchema for result.data when operation === 'delete_record':\n// {\n// operation: \"delete_record\",\n// success: boolean,\n// error: string\n// }\n\n\n// Search Records example\nconst hubspot_search_records = new HubSpotBubble({\n operation: \"search_records\", // Search CRM records with filters\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n filter_groups: [{ filters: [{ propertyName: \"example string\" // Property name to filter on (e.g., \"email\", \"firstname\"), operator: \"EQ\" // options: \"EQ\", \"NEQ\", \"LT\", \"LTE\", \"GT\", \"GTE\", \"BETWEEN\", \"IN\", \"NOT_IN\", \"HAS_PROPERTY\", \"NOT_HAS_PROPERTY\", \"CONTAINS_TOKEN\", \"NOT_CONTAINS_TOKEN\" // Filter operator, value: \"example string\" // Value to compare against, highValue: \"example string\" // Upper bound value for BETWEEN operator, values: [\"example string\"] // Array of values for IN/NOT_IN operators }] // Filters within this group (combined with AND) }], // Filter groups for the search query. Groups are combined with OR, filters within a group with AND.\n properties: [\"example string\"], // List of property names to include in the response. If not specified, default properties are returned.\n limit: 100 // default, // Maximum number of results to return (1-200, default 100)\n after: \"example string\", // Pagination cursor for next page of results\n});\n\nconst result = await hubspot_search_records.action();\n// outputSchema for result.data when operation === 'search_records':\n// {\n// operation: \"search_records\",\n// success: boolean,\n// results: { id: string // Record ID, properties: Record<string, unknown> // Record properties, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp, archived: boolean | undefined // Whether the record is archived }[] | undefined,\n// total: number | undefined,\n// paging: { next: { after: string } | undefined } | undefined,\n// error: string\n// }\n\n\n// Batch Create Records example\nconst hubspot_batch_create_records = new HubSpotBubble({\n operation: \"batch_create_records\", // Create multiple CRM records in a single API call\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n records: [{ properties: { \"example_key\": \"example string\" } // Object properties as key-value pairs. Common contact properties: email, firstname, lastname, phone, company. Common company properties: name, domain, industry. Common deal properties: dealname, pipeline, dealstage, amount. Common ticket properties: subject, content, hs_pipeline, hs_pipeline_stage. NOTE: Tickets REQUIRE hs_pipeline_stage (and usually hs_pipeline) to be set on creation. }], // Array of records to create (max 100)\n});\n\nconst result = await hubspot_batch_create_records.action();\n// outputSchema for result.data when operation === 'batch_create_records':\n// {\n// operation: \"batch_create_records\",\n// success: boolean,\n// results: { id: string // Record ID, properties: Record<string, unknown> // Record properties, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp, archived: boolean | undefined // Whether the record is archived }[] | undefined,\n// error: string\n// }\n\n\n// Batch Update Records example\nconst hubspot_batch_update_records = new HubSpotBubble({\n operation: \"batch_update_records\", // Update multiple CRM records in a single API call\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n records: [{ id: \"example string\" // Record ID to update, properties: { \"example_key\": \"example string\" } // Object properties as key-value pairs. Common contact properties: email, firstname, lastname, phone, company. Common company properties: name, domain, industry. Common deal properties: dealname, pipeline, dealstage, amount. Common ticket properties: subject, content, hs_pipeline, hs_pipeline_stage. NOTE: Tickets REQUIRE hs_pipeline_stage (and usually hs_pipeline) to be set on creation. }], // Array of records to update (max 100)\n});\n\nconst result = await hubspot_batch_update_records.action();\n// outputSchema for result.data when operation === 'batch_update_records':\n// {\n// operation: \"batch_update_records\",\n// success: boolean,\n// results: { id: string // Record ID, properties: Record<string, unknown> // Record properties, createdAt: string | undefined // Creation timestamp, updatedAt: string | undefined // Last update timestamp, archived: boolean | undefined // Whether the record is archived }[] | undefined,\n// error: string\n// }\n\n\n// Batch Delete Records example\nconst hubspot_batch_delete_records = new HubSpotBubble({\n operation: \"batch_delete_records\", // Archive multiple CRM records in a single API call\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n record_ids: [\"example string\"], // Array of record IDs to archive (max 100)\n});\n\nconst result = await hubspot_batch_delete_records.action();\n// outputSchema for result.data when operation === 'batch_delete_records':\n// {\n// operation: \"batch_delete_records\",\n// success: boolean,\n// error: string\n// }\n\n\n// List Properties example\nconst hubspot_list_properties = new HubSpotBubble({\n operation: \"list_properties\", // List all property definitions for a CRM object type\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n});\n\nconst result = await hubspot_list_properties.action();\n// outputSchema for result.data when operation === 'list_properties':\n// {\n// operation: \"list_properties\",\n// success: boolean,\n// properties: Record<string, unknown>[] | undefined,\n// error: string\n// }\n\n\n// Get Property example\nconst hubspot_get_property = new HubSpotBubble({\n operation: \"get_property\", // Retrieve a single property definition by name\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n property_name: \"example string\", // Internal property name (snake_case, e.g. \"favorite_food\")\n});\n\nconst result = await hubspot_get_property.action();\n// outputSchema for result.data when operation === 'get_property':\n// {\n// operation: \"get_property\",\n// success: boolean,\n// property: Record<string, unknown> | undefined,\n// error: string\n// }\n\n\n// Create Property example\nconst hubspot_create_property = new HubSpotBubble({\n operation: \"create_property\", // Create a new custom property definition\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n name: \"example string\", // Internal property name (snake_case, e.g. \"favorite_food\")\n label: \"example string\", // Display label (e.g. \"Favorite Food\")\n type: \"string\" // options: \"string\", \"number\", \"date\", \"datetime\", \"enumeration\", \"bool\", // Property data type. \"string\" for text, \"number\" for numeric, \"date\" for date-only, \"datetime\" for date+time, \"enumeration\" for option sets, \"bool\" for yes/no.\n fieldType: \"text\" // options: \"text\", \"textarea\", \"number\", \"date\", \"file\", \"select\", \"radio\", \"checkbox\", \"booleancheckbox\", \"calculation_equation\", \"html\", \"phonenumber\", // How the property appears in HubSpot UI. Must be compatible with the property type.\n groupName: \"example string\", // Property group name (e.g. \"contactinformation\", \"dealinformation\")\n description: \"example string\", // Description of the property\n hasUniqueValue: true, // Whether this property must have unique values across records\n options: [{ label: \"example string\" // Display label for the option, value: \"example string\" // Internal value for the option, description: \"example string\" // Description of the option, displayOrder: 42 // Display order (lower = first), hidden: true // Whether this option is hidden from forms }], // Options for enumeration-type properties (select, radio, checkbox)\n calculationFormula: \"example string\", // Formula for calculation_equation fieldType properties\n});\n\nconst result = await hubspot_create_property.action();\n// outputSchema for result.data when operation === 'create_property':\n// {\n// operation: \"create_property\",\n// success: boolean,\n// property: Record<string, unknown> | undefined,\n// error: string\n// }\n\n\n// Update Property example\nconst hubspot_update_property = new HubSpotBubble({\n operation: \"update_property\", // Update an existing property definition\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n property_name: \"example string\", // Internal property name (snake_case, e.g. \"favorite_food\")\n label: \"example string\", // New display label\n description: \"example string\", // New description\n groupName: \"example string\", // New property group name\n type: \"string\" // options: \"string\", \"number\", \"date\", \"datetime\", \"enumeration\", \"bool\", // Property data type. \"string\" for text, \"number\" for numeric, \"date\" for date-only, \"datetime\" for date+time, \"enumeration\" for option sets, \"bool\" for yes/no.\n fieldType: \"text\" // options: \"text\", \"textarea\", \"number\", \"date\", \"file\", \"select\", \"radio\", \"checkbox\", \"booleancheckbox\", \"calculation_equation\", \"html\", \"phonenumber\", // How the property appears in HubSpot UI. Must be compatible with the property type.\n options: [{ label: \"example string\" // Display label for the option, value: \"example string\" // Internal value for the option, description: \"example string\" // Description of the option, displayOrder: 42 // Display order (lower = first), hidden: true // Whether this option is hidden from forms }], // Updated options for enumeration-type properties\n});\n\nconst result = await hubspot_update_property.action();\n// outputSchema for result.data when operation === 'update_property':\n// {\n// operation: \"update_property\",\n// success: boolean,\n// property: Record<string, unknown> | undefined,\n// error: string\n// }\n\n\n// Delete Property example\nconst hubspot_delete_property = new HubSpotBubble({\n operation: \"delete_property\", // Delete a custom property definition (cannot delete default properties)\n object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets)\n property_name: \"example string\", // Internal property name (snake_case, e.g. \"favorite_food\")\n});\n\nconst result = await hubspot_delete_property.action();\n// outputSchema for result.data when operation === 'delete_property':\n// {\n// operation: \"delete_property\",\n// success: boolean,\n// error: string\n// }\n\n\n// List Associations example\nconst hubspot_list_associations = new HubSpotBubble({\n operation: \"list_associations\", // List all records associated with a given record\n from_object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // Source object type\n from_record_id: \"example string\", // Source record ID\n to_object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // Target object type to list associations for\n});\n\nconst result = await hubspot_list_associations.action();\n// outputSchema for result.data when operation === 'list_associations':\n// {\n// operation: \"list_associations\",\n// success: boolean,\n// associations: Record<string, unknown>[] | undefined,\n// error: string\n// }\n\n\n// Create Association example\nconst hubspot_create_association = new HubSpotBubble({\n operation: \"create_association\", // Create a default association (link) between two CRM records\n from_object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // Source object type\n from_record_id: \"example string\", // Source record ID\n to_object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // Target object type\n to_record_id: \"example string\", // Target record ID\n});\n\nconst result = await hubspot_create_association.action();\n// outputSchema for result.data when operation === 'create_association':\n// {\n// operation: \"create_association\",\n// success: boolean,\n// error: string\n// }\n\n\n// Remove Association example\nconst hubspot_remove_association = new HubSpotBubble({\n operation: \"remove_association\", // Remove all associations between two specific records\n from_object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // Source object type\n from_record_id: \"example string\", // Source record ID\n to_object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\", // Target object type\n to_record_id: \"example string\", // Target record ID\n});\n\nconst result = await hubspot_remove_association.action();\n// outputSchema for result.data when operation === 'remove_association':\n// {\n// operation: \"remove_association\",\n// success: boolean,\n// error: string\n// }\n\n\n// List Pipelines example\nconst hubspot_list_pipelines = new HubSpotBubble({\n operation: \"list_pipelines\", // List all pipelines and their stages for deals or tickets\n object_type: \"deals\" // options: \"deals\", \"tickets\", // Object type that supports pipelines (deals or tickets)\n});\n\nconst result = await hubspot_list_pipelines.action();\n// outputSchema for result.data when operation === 'list_pipelines':\n// {\n// operation: \"list_pipelines\",\n// success: boolean,\n// pipelines: Record<string, unknown>[] | undefined,\n// error: string\n// }\n\n\n// Create Note example\nconst hubspot_create_note = new HubSpotBubble({\n operation: \"create_note\", // Create a note and associate it with CRM records\n note_body: \"example string\", // Note content (supports HTML formatting)\n associations: [{ object_type: \"contacts\" // options: \"contacts\", \"companies\", \"deals\", \"tickets\" // HubSpot CRM object type to operate on (contacts, companies, deals, or tickets), record_id: \"example string\" // Record ID to associate the note with }], // Records to associate the note with\n timestamp: \"example string\", // ISO 8601 timestamp for the note (defaults to current time)\n});\n\nconst result = await hubspot_create_note.action();\n// outputSchema for result.data when operation === 'create_note':\n// {\n// operation: \"create_note\",\n// success: boolean,\n// note: { id: string // Note ID, properties: Record<string, unknown> // Note properties including hs_note_body, hs_timestamp } | undefined,\n// error: string\n// }\n\n\n// List Owners example\nconst hubspot_list_owners = new HubSpotBubble({\n operation: \"list_owners\", // List HubSpot account owners (users who can be assigned to records)\n email: \"example string\", // Filter owners by email address\n limit: 100 // default, // Maximum number of owners to return (1-500, default 100)\n after: \"example string\", // Pagination cursor for next page of results\n});\n\nconst result = await hubspot_list_owners.action();\n// outputSchema for result.data when operation === 'list_owners':\n// {\n// operation: \"list_owners\",\n// success: boolean,\n// owners: Record<string, unknown>[] | undefined,\n// paging: { next: { after: string } | undefined } | undefined,\n// error: string\n// }\n\n\n// Get Owner example\nconst hubspot_get_owner = new HubSpotBubble({\n operation: \"get_owner\", // Retrieve a single HubSpot owner by ID\n owner_id: \"example string\", // HubSpot owner ID (e.g., from hubspot_owner_id property on records)\n});\n\nconst result = await hubspot_get_owner.action();\n// outputSchema for result.data when operation === 'get_owner':\n// {\n// operation: \"get_owner\",\n// success: boolean,\n// owner: Record<string, unknown> | undefined,\n// error: string\n// }\n\n\n// Get Account Info example\nconst hubspot_get_account_info = new HubSpotBubble({\n operation: \"get_account_info\", // Retrieve HubSpot account details including portal ID, timezone, and currency\n});\n\nconst result = await hubspot_get_account_info.action();\n// outputSchema for result.data when operation === 'get_account_info':\n// {\n// operation: \"get_account_info\",\n// success: boolean,\n// account: Record<string, unknown> | undefined,\n// error: string\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`hubspot failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
70190
70421
|
"requiredCredentials": [
|
|
70191
70422
|
"HUBSPOT_CRED"
|
|
70192
70423
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bubblelab/bubble-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.236",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"puppeteer-core": "^24.10.0",
|
|
42
42
|
"resend": "^4.8.0",
|
|
43
43
|
"zod": "^3.24.1",
|
|
44
|
-
"@bubblelab/shared-schemas": "0.1.
|
|
44
|
+
"@bubblelab/shared-schemas": "0.1.236"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@types/node": "^20.12.12",
|