actions/create-note/create-note.mjs
import { ConfigurationError } from "@pipedream/platform"; import { ASSOCIATION_CATEGORY } from "../../common/constants.mjs"; import common from "../common/common-create.mjs"; export default { ...common, key: "hubspot-create-note", name: "Create Note", description: "Create a new note. [See the documentation](https://developers.hubspot.com/docs/api/crm/engagements)", version: "0.0.11", annotations: { destructiveHint: false, openWorldHint: true, readOnlyHint: false, }, type: "action", props: { ...common.props, toObjectType: { propDefinition: [ common.props.hubspot, "objectType", ], label: "Associated Object Type", description: "Type of object the note is being associated with", optional: true, }, toObjectId: { propDefinition: [ common.props.hubspot, "objectId", (c) => ({ objectType: c.toObjectType, }), ], label: "Associated Object", description: "ID of object the note is being associated with", optional: true, }, associationType: { propDefinition: [ common.props.hubspot, "associationType", (c) => ({ fromObjectType: "notes", toObjectType: c.toObjectType, }), ], description: "A unique identifier to indicate the association type between the note and the other object", optional: true, }, }, methods: { ...common.methods, getObjectType() { return "notes"; }, isRelevantProperty(property) { return ( common.methods.isRelevantProperty(property) && !property.name.includes("hs_pipeline") ); }, createEngagement(objectType, properties, associations, $) { return this.hubspot.createObject({ objectType, data: { properties, associations, }, $, }); }, }, async run({ $ }) { const {  hubspot, toObjectType, toObjectId, associationType, $db, objectProperties, ...otherProperties } = this; if ((toObjectId && !associationType) || (!toObjectId && associationType)) { throw new ConfigurationError( "Both `toObjectId` and `associationType` must be entered", ); } const properties = objectProperties ? typeof objectProperties === "string" ? JSON.parse(objectProperties) : objectProperties : otherProperties; const objectType = this.getObjectType(); const associations = toObjectId ? [ { to: { id: toObjectId, }, types: [ { associationTypeId: associationType, associationCategory: ASSOCIATION_CATEGORY.HUBSPOT_DEFINED, }, ], }, ] : undefined; if (properties.hs_task_reminders) { properties.hs_task_reminders = Date.parse(properties.hs_task_reminders); } const engagement = await this.createEngagement( objectType, properties, associations, $, ); $.export("$summary", "Successfully created note"); return engagement; }, };