diff --git a/components/salesforce_rest_api/actions/common/base-create-update.mjs b/components/salesforce_rest_api/actions/common/base-create-update.mjs index f105f80cad4b4..62d0daf4f2a75 100644 --- a/components/salesforce_rest_api/actions/common/base-create-update.mjs +++ b/components/salesforce_rest_api/actions/common/base-create-update.mjs @@ -14,6 +14,7 @@ export function getProps({ objType, createOrUpdate = "create", docsLink = "https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_concepts.htm", + showDocsInfo = true, showDateInfo = false, }) { let { initialProps } = objType; @@ -34,6 +35,13 @@ export function getProps({ return { salesforce, + ...showDocsInfo && { + docsInfo: { + type: "alert", + alertType: "info", + content: `[See the documentation](${docsLink}) for more information on available fields.`, + }, + }, ...showDateInfo && { dateInfo: { type: "alert", @@ -45,11 +53,6 @@ export function getProps({ ? "createProps" : "updateProps"], ...initialProps, - docsInfo: { - type: "alert", - alertType: "info", - content: `[See the documentation](${docsLink}) for more information on available fields.`, - }, useAdvancedProps: { propDefinition: [ salesforce, diff --git a/components/salesforce_rest_api/actions/create-account/create-account.mjs b/components/salesforce_rest_api/actions/create-account/create-account.mjs index b538d25f29779..8ecf098b909bf 100644 --- a/components/salesforce_rest_api/actions/create-account/create-account.mjs +++ b/components/salesforce_rest_api/actions/create-account/create-account.mjs @@ -8,7 +8,7 @@ export default { key: "salesforce_rest_api-create-account", name: "Create Account", description: `Creates a Salesforce account. [See the documentation](${docsLink})`, - version: "0.3.0", + version: "0.3.1", type: "action", methods: { ...common.methods, diff --git a/components/salesforce_rest_api/actions/create-attachment/create-attachment.mjs b/components/salesforce_rest_api/actions/create-attachment/create-attachment.mjs index 2951a9811ebef..ccfe0edd3eb4b 100644 --- a/components/salesforce_rest_api/actions/create-attachment/create-attachment.mjs +++ b/components/salesforce_rest_api/actions/create-attachment/create-attachment.mjs @@ -18,7 +18,7 @@ export default { key: "salesforce_rest_api-create-attachment", name: "Create Attachment", description: `Creates an Attachment on a parent object. [See the documentation](${docsLink})`, - version: "0.4.0", + version: "0.4.1", type: "action", props, async run({ $ }) { diff --git a/components/salesforce_rest_api/actions/create-campaign/create-campaign.mjs b/components/salesforce_rest_api/actions/create-campaign/create-campaign.mjs index 1061faf292791..e30835c78ca0b 100644 --- a/components/salesforce_rest_api/actions/create-campaign/create-campaign.mjs +++ b/components/salesforce_rest_api/actions/create-campaign/create-campaign.mjs @@ -8,7 +8,7 @@ export default { key: "salesforce_rest_api-create-campaign", name: "Create Campaign", description: `Creates a marketing campaign. [See the documentation](${docsLink})`, - version: "0.3.0", + version: "0.3.1", type: "action", methods: { ...common.methods, diff --git a/components/salesforce_rest_api/actions/create-case/create-case.mjs b/components/salesforce_rest_api/actions/create-case/create-case.mjs index b18f25f93bbfc..e44943c686121 100644 --- a/components/salesforce_rest_api/actions/create-case/create-case.mjs +++ b/components/salesforce_rest_api/actions/create-case/create-case.mjs @@ -8,7 +8,7 @@ export default { key: "salesforce_rest_api-create-case", name: "Create Case", description: `Creates a Case, which represents a customer issue or problem. [See the documentation](${docsLink})`, - version: "0.3.0", + version: "0.3.1", type: "action", methods: { ...common.methods, diff --git a/components/salesforce_rest_api/actions/create-casecomment/create-casecomment.mjs b/components/salesforce_rest_api/actions/create-casecomment/create-casecomment.mjs index 08aa657d0313c..575113c430eac 100644 --- a/components/salesforce_rest_api/actions/create-casecomment/create-casecomment.mjs +++ b/components/salesforce_rest_api/actions/create-casecomment/create-casecomment.mjs @@ -17,7 +17,7 @@ export default { key: "salesforce_rest_api-create-casecomment", name: "Create Case Comment", description: `Creates a Case Comment on a selected Case. [See the documentation](${docsLink})`, - version: "0.3.0", + version: "0.3.1", type: "action", props, async run({ $ }) { diff --git a/components/salesforce_rest_api/actions/create-contact/create-contact.mjs b/components/salesforce_rest_api/actions/create-contact/create-contact.mjs index a2bd4fc321d45..1e90e785aa6bb 100644 --- a/components/salesforce_rest_api/actions/create-contact/create-contact.mjs +++ b/components/salesforce_rest_api/actions/create-contact/create-contact.mjs @@ -8,7 +8,7 @@ export default { key: "salesforce_rest_api-create-contact", name: "Create Contact", description: `Creates a contact. [See the documentation](${docsLink})`, - version: "0.3.0", + version: "0.3.1", type: "action", methods: { ...common.methods, diff --git a/components/salesforce_rest_api/actions/create-content-note/create-content-note.mjs b/components/salesforce_rest_api/actions/create-content-note/create-content-note.mjs new file mode 100644 index 0000000000000..ced5bf4476291 --- /dev/null +++ b/components/salesforce_rest_api/actions/create-content-note/create-content-note.mjs @@ -0,0 +1,91 @@ +/* eslint-disable no-unused-vars */ +import common, { getProps } from "../common/base-create-update.mjs"; +import contentNote from "../../common/sobjects/content-note.mjs"; +import contentDocumentLink from "../../common/sobjects/content-document-link.mjs"; + +const docsLink = "https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_contentnote.htm"; + +const { + useAdvancedProps: contentNoteUseAdvancedProps, + ...contentNoteProps +} = getProps({ + objType: contentNote, + docsLink, +}); + +const { + useAdvancedProps: contentDocumentLinkUseAdvancedProps, + ...contentDocumentLinkProps +} = getProps({ + objType: contentDocumentLink, + docsLink, + showDocsInfo: false, +}); + +export default { + ...common, + key: "salesforce_rest_api-create-content-note", + name: "Create Content Note", + description: `Creates a content note. [See the documentation](${docsLink}) and [Set Up Notes](https://help.salesforce.com/s/articleView?id=sales.notes_admin_setup.htm&type=5).`, + version: "0.0.1", + type: "action", + props: { + ...contentNoteProps, + ...contentDocumentLinkProps, + }, + methods: { + ...common.methods, + escapeHtml4(unsafe) { + return unsafe + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); + }, + }, + async run({ $ }) { + const { + salesforce, + escapeHtml4, + Title, + Content, + OwnerId, + LinkedEntityId, + ShareType, + Visibility, + } = this; + + const contentNoteResponse = await salesforce.createRecord("ContentNote", { + $, + data: { + Title, + Content: Buffer.from(escapeHtml4(Content)).toString("base64"), + OwnerId: OwnerId, + }, + }); + + if (!LinkedEntityId) { + $.export("$summary", `Successfully created content note with ID \`${contentNoteResponse.id}\`.`); + return { + contentNote: contentNoteResponse, + }; + } + + const contentDocumentLinkResponse = await salesforce.createRecord("ContentDocumentLink", { + $, + data: { + ContentDocumentId: contentNoteResponse.id, + LinkedEntityId, + ShareType, + Visibility, + }, + }); + + $.export("$summary", `Successfully created content note with ID \`${contentNoteResponse.id}\` and document link with ID \`${contentDocumentLinkResponse.id}\`.`); + return { + contentNote: contentNoteResponse, + contentDocumentLink: contentDocumentLinkResponse, + }; + }, +}; diff --git a/components/salesforce_rest_api/actions/create-event/create-event.mjs b/components/salesforce_rest_api/actions/create-event/create-event.mjs index 372d73e6a6b14..b427102b2ccd8 100644 --- a/components/salesforce_rest_api/actions/create-event/create-event.mjs +++ b/components/salesforce_rest_api/actions/create-event/create-event.mjs @@ -9,7 +9,7 @@ export default { key: "salesforce_rest_api-create-event", name: "Create Event", description: `Creates an event. [See the documentation](${docsLink})`, - version: "0.3.0", + version: "0.3.1", type: "action", methods: { ...common.methods, diff --git a/components/salesforce_rest_api/actions/create-lead/create-lead.mjs b/components/salesforce_rest_api/actions/create-lead/create-lead.mjs index 1049b3f2e1d37..e440b44863bd0 100644 --- a/components/salesforce_rest_api/actions/create-lead/create-lead.mjs +++ b/components/salesforce_rest_api/actions/create-lead/create-lead.mjs @@ -8,7 +8,7 @@ export default { key: "salesforce_rest_api-create-lead", name: "Create Lead", description: `Creates a lead. [See the documentation](${docsLink})`, - version: "0.3.0", + version: "0.3.1", type: "action", methods: { ...common.methods, diff --git a/components/salesforce_rest_api/actions/create-note/create-note.mjs b/components/salesforce_rest_api/actions/create-note/create-note.mjs index cadeb6a4a996a..b001e2dedfca9 100644 --- a/components/salesforce_rest_api/actions/create-note/create-note.mjs +++ b/components/salesforce_rest_api/actions/create-note/create-note.mjs @@ -17,7 +17,7 @@ export default { key: "salesforce_rest_api-create-note", name: "Create Note", description: `Creates a note. [See the documentation](${docsLink})`, - version: "0.3.0", + version: "0.3.1", type: "action", props, async run({ $ }) { diff --git a/components/salesforce_rest_api/actions/create-opportunity/create-opportunity.mjs b/components/salesforce_rest_api/actions/create-opportunity/create-opportunity.mjs index f66f9ab2c0350..933047d33df0a 100644 --- a/components/salesforce_rest_api/actions/create-opportunity/create-opportunity.mjs +++ b/components/salesforce_rest_api/actions/create-opportunity/create-opportunity.mjs @@ -8,7 +8,7 @@ export default { key: "salesforce_rest_api-create-opportunity", name: "Create Opportunity", description: `Creates an opportunity. [See the documentation](${docsLink})`, - version: "0.3.0", + version: "0.3.1", type: "action", methods: { ...common.methods, diff --git a/components/salesforce_rest_api/actions/create-record/create-record.mjs b/components/salesforce_rest_api/actions/create-record/create-record.mjs index 490b1d066547e..28a72030a31cd 100644 --- a/components/salesforce_rest_api/actions/create-record/create-record.mjs +++ b/components/salesforce_rest_api/actions/create-record/create-record.mjs @@ -8,7 +8,7 @@ export default { key: "salesforce_rest_api-create-record", name: "Create Record", description: "Create a record of a given object. [See the documentation](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_sobject_create.htm)", - version: "0.3.0", + version: "0.3.1", type: "action", props: { salesforce, diff --git a/components/salesforce_rest_api/actions/create-task/create-task.mjs b/components/salesforce_rest_api/actions/create-task/create-task.mjs index a8b3581dd8735..d4ebb4703c606 100644 --- a/components/salesforce_rest_api/actions/create-task/create-task.mjs +++ b/components/salesforce_rest_api/actions/create-task/create-task.mjs @@ -9,7 +9,7 @@ export default { key: "salesforce_rest_api-create-task", name: "Create Task", description: `Creates a task. [See the documentation](${docsLink})`, - version: "0.4.0", + version: "0.4.1", type: "action", methods: { ...common.methods, diff --git a/components/salesforce_rest_api/actions/create-user/create-user.mjs b/components/salesforce_rest_api/actions/create-user/create-user.mjs index e84dbc18fb37c..a41f116115a1b 100644 --- a/components/salesforce_rest_api/actions/create-user/create-user.mjs +++ b/components/salesforce_rest_api/actions/create-user/create-user.mjs @@ -9,7 +9,7 @@ export default { key: "salesforce_rest_api-create-user", name: "Create User", description: `Creates a Salesforce user. [See the documentation](${docsLink})`, - version: "0.1.0", + version: "0.1.1", type: "action", methods: { ...common.methods, diff --git a/components/salesforce_rest_api/actions/update-account/update-account.mjs b/components/salesforce_rest_api/actions/update-account/update-account.mjs index 0c3debcf634c8..4868eb90c6c03 100644 --- a/components/salesforce_rest_api/actions/update-account/update-account.mjs +++ b/components/salesforce_rest_api/actions/update-account/update-account.mjs @@ -15,7 +15,7 @@ export default { key: "salesforce_rest_api-update-account", name: "Update Account", description: `Updates a Salesforce account. [See the documentation](${docsLink})`, - version: "0.3.0", + version: "0.3.1", type: "action", methods: { ...common.methods, diff --git a/components/salesforce_rest_api/actions/update-contact/update-contact.mjs b/components/salesforce_rest_api/actions/update-contact/update-contact.mjs index e1a92d9d10c4d..36f63b47f7392 100644 --- a/components/salesforce_rest_api/actions/update-contact/update-contact.mjs +++ b/components/salesforce_rest_api/actions/update-contact/update-contact.mjs @@ -16,7 +16,7 @@ export default { key: "salesforce_rest_api-update-contact", name: "Update Contact", description: `Updates a contact. [See the documentation](${docsLink})`, - version: "0.3.0", + version: "0.3.1", type: "action", methods: { ...common.methods, diff --git a/components/salesforce_rest_api/actions/update-opportunity/update-opportunity.mjs b/components/salesforce_rest_api/actions/update-opportunity/update-opportunity.mjs index c2792aa5038d3..46e6ff90b1dff 100644 --- a/components/salesforce_rest_api/actions/update-opportunity/update-opportunity.mjs +++ b/components/salesforce_rest_api/actions/update-opportunity/update-opportunity.mjs @@ -16,7 +16,7 @@ export default { key: "salesforce_rest_api-update-opportunity", name: "Update Opportunity", description: `Updates an opportunity. [See the documentation](${docsLink})`, - version: "0.3.0", + version: "0.3.1", type: "action", methods: { ...common.methods, diff --git a/components/salesforce_rest_api/actions/update-record/update-record.mjs b/components/salesforce_rest_api/actions/update-record/update-record.mjs index 3beeda564b6ac..5d175f183a360 100644 --- a/components/salesforce_rest_api/actions/update-record/update-record.mjs +++ b/components/salesforce_rest_api/actions/update-record/update-record.mjs @@ -8,7 +8,7 @@ export default { key: "salesforce_rest_api-update-record", name: "Update Record", description: "Update fields of a record. [See the documentation](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_update_fields.htm)", - version: "0.3.0", + version: "0.3.1", type: "action", props: { salesforce, diff --git a/components/salesforce_rest_api/actions/upsert-record/upsert-record.mjs b/components/salesforce_rest_api/actions/upsert-record/upsert-record.mjs index 3d677bfc4d2b1..a95b4321c4a72 100644 --- a/components/salesforce_rest_api/actions/upsert-record/upsert-record.mjs +++ b/components/salesforce_rest_api/actions/upsert-record/upsert-record.mjs @@ -8,7 +8,7 @@ export default { key: "salesforce_rest_api-upsert-record", name: "Upsert Record", description: "Create or update a record of a given object. [See the documentation](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_upsert.htm)", - version: "0.0.1", + version: "0.0.2", type: "action", props: { salesforce, diff --git a/components/salesforce_rest_api/common/sobjects/content-document-link.mjs b/components/salesforce_rest_api/common/sobjects/content-document-link.mjs new file mode 100644 index 0000000000000..0d1016238ea13 --- /dev/null +++ b/components/salesforce_rest_api/common/sobjects/content-document-link.mjs @@ -0,0 +1,51 @@ +export default { + initialProps: { + LinkedEntityId: { + type: "string", + label: "Linked Entity ID", + description: "ID of the linked object. Can include Chatter users, groups, records (any that support Chatter feed tracking including custom objects), and Salesforce CRM Content libraries.", + optional: true, + }, + ShareType: { + type: "string", + label: "Share Type", + description: "The permission granted to the user of the shared file in a library. This is determined by the permission the user already has in the library.", + optional: true, + default: "I", + options: [ + { + label: "Viewer Permission", + value: "V", + }, + { + label: "Collaborator Permission", + value: "C", + }, + { + label: "Inferred Permission", + value: "I", + }, + ], + }, + Visibility: { + type: "string", + label: "Visibility", + description: "Specifies whether this file is available to all users, internal users, or shared users.", + optional: true, + options: [ + { + label: "All Users", + value: "AllUsers", + }, + { + label: "Internal Users", + value: "InternalUsers", + }, + { + label: "Shared Users", + value: "SharedUsers", + }, + ], + }, + }, +}; diff --git a/components/salesforce_rest_api/common/sobjects/content-note.mjs b/components/salesforce_rest_api/common/sobjects/content-note.mjs new file mode 100644 index 0000000000000..9afef3cb76e9a --- /dev/null +++ b/components/salesforce_rest_api/common/sobjects/content-note.mjs @@ -0,0 +1,34 @@ +import salesforce from "../../salesforce_rest_api.app.mjs"; + +export default { + initialProps: { + OwnerId: { + propDefinition: [ + salesforce, + "recordId", + () => ({ + objType: "User", + nameField: "Name", + }), + ], + label: "Owner ID", + description: "ID of the user who owns the note.", + }, + Title: { + type: "string", + label: "Title", + description: "Title of the note.", + }, + Content: { + type: "string", + label: "Content", + description: "The content or body of the note, which can include properly formatted HTML or plain text.", + }, + IsReadOnly: { + type: "boolean", + label: "Read Only", + description: "Indicates whether the note is read only.", + optional: true, + }, + }, +}; diff --git a/components/salesforce_rest_api/package.json b/components/salesforce_rest_api/package.json index 4c79fe1f81c36..f95719a9bf08b 100644 --- a/components/salesforce_rest_api/package.json +++ b/components/salesforce_rest_api/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/salesforce_rest_api", - "version": "1.4.0", + "version": "1.5.0", "description": "Pipedream Salesforce (REST API) Components", "main": "salesforce_rest_api.app.mjs", "keywords": [