diff --git a/components/amazon_selling_partner/amazon_selling_partner.app.mjs b/components/amazon_selling_partner/amazon_selling_partner.app.mjs index 6330c384a834d..d0cea946e286b 100644 --- a/components/amazon_selling_partner/amazon_selling_partner.app.mjs +++ b/components/amazon_selling_partner/amazon_selling_partner.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/bigdatacorp/bigdatacorp.app.mjs b/components/bigdatacorp/bigdatacorp.app.mjs index 7218a30476517..16b8bf9fbcc5f 100644 --- a/components/bigdatacorp/bigdatacorp.app.mjs +++ b/components/bigdatacorp/bigdatacorp.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/checkout_com/checkout_com.app.mjs b/components/checkout_com/checkout_com.app.mjs index ddf9c2b41b5f8..8816d80d56296 100644 --- a/components/checkout_com/checkout_com.app.mjs +++ b/components/checkout_com/checkout_com.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/hubspot/actions/add-contact-to-list/add-contact-to-list.mjs b/components/hubspot/actions/add-contact-to-list/add-contact-to-list.mjs index 8a863ec4c0f26..55bce37306ee3 100644 --- a/components/hubspot/actions/add-contact-to-list/add-contact-to-list.mjs +++ b/components/hubspot/actions/add-contact-to-list/add-contact-to-list.mjs @@ -4,7 +4,7 @@ export default { key: "hubspot-add-contact-to-list", name: "Add Contact to List", description: "Adds a contact to a specific static list. [See the documentation](https://legacydocs.hubspot.com/docs/methods/lists/add_contact_to_list)", - version: "0.0.9", + version: "0.0.10", type: "action", props: { hubspot, diff --git a/components/hubspot/actions/batch-create-or-update-contact/batch-create-or-update-contact.mjs b/components/hubspot/actions/batch-create-or-update-contact/batch-create-or-update-contact.mjs index 38f9521c627a7..ba8cf1882d5d2 100644 --- a/components/hubspot/actions/batch-create-or-update-contact/batch-create-or-update-contact.mjs +++ b/components/hubspot/actions/batch-create-or-update-contact/batch-create-or-update-contact.mjs @@ -4,7 +4,7 @@ export default { key: "hubspot-batch-create-or-update-contact", name: "Batch Create or Update Contact", description: "Create or update a batch of contacts by its ID or email. [See the documentation](https://developers.hubspot.com/docs/api/crm/contacts)", - version: "0.0.6", + version: "0.0.7", type: "action", props: { hubspot, diff --git a/components/hubspot/actions/common/common-create-object.mjs b/components/hubspot/actions/common/common-create-object.mjs index 9dbf45f47f062..90df44d4b2ece 100644 --- a/components/hubspot/actions/common/common-create-object.mjs +++ b/components/hubspot/actions/common/common-create-object.mjs @@ -33,12 +33,17 @@ export default { isDefaultProperty() { return false; }, + createObject(opts = {}) { + return this.hubspot.createObject(opts); + }, }, async run({ $ }) { const { hubspot, /* eslint-disable no-unused-vars */ propertyGroups, + customObjectType, + contactId, $db, updateIfExists, ...properties @@ -54,7 +59,7 @@ export default { } }); try { - const response = await hubspot.createObject({ + const response = await this.createObject({ $, objectType, data: { diff --git a/components/hubspot/actions/common/common-create.mjs b/components/hubspot/actions/common/common-create.mjs index fe8f052b5cae1..11df549b5f6b1 100644 --- a/components/hubspot/actions/common/common-create.mjs +++ b/components/hubspot/actions/common/common-create.mjs @@ -70,7 +70,7 @@ export default { ? options : undefined; }, - makePropDefinition(property, requiredProperties) { + async makePropDefinition(property, requiredProperties) { let type = "string"; let options = this.makeLabelValueOptions(property); @@ -83,6 +83,24 @@ export default { property.description += ". Enter date in ISO-8601 format. Example: `2024-06-25T15:43:49.214Z`"; } + const objectType = this.hubspot.getObjectTypeName(this.getObjectType()); + let reloadProps; + if (property.name === "hs_pipeline") { + options = await this.hubspot.getPipelinesOptions(objectType); + reloadProps = true; + } + if (property.name === "hs_pipeline_stage") { + options = await this.hubspot.getPipelineStagesOptions(objectType, this.hs_pipeline); + } + if (property.name === "hs_all_assigned_business_unit_ids") { + try { + options = await this.hubspot.getBusinessUnitOptions(); + } catch { + console.log("Could not load business units"); + } + property.description += " For use with the Business Units Add-On."; + } + return { type, name: property.name, @@ -90,6 +108,7 @@ export default { description: property.description, optional: !requiredProperties.includes(property.name), options, + reloadProps, }; }, }, @@ -101,9 +120,12 @@ export default { const { results: properties } = await this.hubspot.getProperties({ objectType, }); - return properties - .filter(this.isRelevantProperty) - .map((property) => this.makePropDefinition(property, schema.requiredProperties)) + const relevantProperties = properties.filter(this.isRelevantProperty); + const propDefinitions = []; + for (const property of relevantProperties) { + propDefinitions.push(await this.makePropDefinition(property, schema.requiredProperties)); + } + return propDefinitions .reduce((props, { name, ...definition }) => { diff --git a/components/hubspot/actions/common/common-update-object.mjs b/components/hubspot/actions/common/common-update-object.mjs index c5e77755da619..2bf574831ddac 100644 --- a/components/hubspot/actions/common/common-update-object.mjs +++ b/components/hubspot/actions/common/common-update-object.mjs @@ -32,6 +32,7 @@ export default { hubspot, /* eslint-disable no-unused-vars */ propertyGroups, + customObjectType, $db, objectId, ...properties diff --git a/components/hubspot/actions/create-associations/create-associations.mjs b/components/hubspot/actions/create-associations/create-associations.mjs index 8eb7f623033b5..78c53c88573ec 100644 --- a/components/hubspot/actions/create-associations/create-associations.mjs +++ b/components/hubspot/actions/create-associations/create-associations.mjs @@ -1,12 +1,11 @@ import hubspot from "../../hubspot.app.mjs"; -import { ASSOCIATION_CATEGORY } from "../../common/constants.mjs"; import { ConfigurationError } from "@pipedream/platform"; export default { key: "hubspot-create-associations", name: "Create Associations", description: "Create associations between objects. [See the documentation](https://developers.hubspot.com/docs/api/crm/associations#endpoint?spec=POST-/crm/v3/associations/{fromObjectType}/{toObjectType}/batch/create)", - version: "0.0.9", + version: "0.0.10", type: "action", props: { hubspot, @@ -14,6 +13,9 @@ export default { propDefinition: [ hubspot, "objectType", + () => ({ + includeCustom: true, + }), ], label: "From Object Type", description: "The type of the object being associated", @@ -34,6 +36,9 @@ export default { propDefinition: [ hubspot, "objectType", + () => ({ + includeCustom: true, + }), ], label: "To Object Type", description: "Type of the objects the from object is being associated with", @@ -60,6 +65,20 @@ export default { description: "Id's of the objects the from object is being associated with", }, }, + methods: { + async getAssociationCategory({ + $, fromObjectType, toObjectType, associationType, + }) { + const { results } = await this.hubspot.getAssociationTypes({ + $, + fromObjectType, + toObjectType, + associationType, + }); + const association = results.find(({ typeId }) => typeId === this.associationType); + return association.category; + }, + }, async run({ $ }) { const { fromObjectType, @@ -77,6 +96,13 @@ export default { throw new ConfigurationError("Could not parse \"To Objects\" array."); } } + + const associationCategory = await this.getAssociationCategory({ + $, + fromObjectType, + toObjectType, + associationType, + }); const response = await this.hubspot.createAssociations({ $, fromObjectType, @@ -91,7 +117,7 @@ export default { }, types: [ { - associationCategory: ASSOCIATION_CATEGORY.HUBSPOT_DEFINED, + associationCategory, associationTypeId: associationType, }, ], diff --git a/components/hubspot/actions/create-communication/create-communication.mjs b/components/hubspot/actions/create-communication/create-communication.mjs index ef3113dce46c5..68518ea0743a5 100644 --- a/components/hubspot/actions/create-communication/create-communication.mjs +++ b/components/hubspot/actions/create-communication/create-communication.mjs @@ -8,7 +8,7 @@ export default { key: "hubspot-create-communication", name: "Create Communication", description: "Create a WhatsApp, LinkedIn, or SMS message. [See the documentation](https://developers.hubspot.com/beta-docs/reference/api/crm/engagements/communications/v3#post-%2Fcrm%2Fv3%2Fobjects%2Fcommunications)", - version: "0.0.1", + version: "0.0.2", type: "action", props: { ...appProp.props, diff --git a/components/hubspot/actions/create-company/create-company.mjs b/components/hubspot/actions/create-company/create-company.mjs index c7e4424544fc9..f5ad8011642f3 100644 --- a/components/hubspot/actions/create-company/create-company.mjs +++ b/components/hubspot/actions/create-company/create-company.mjs @@ -6,7 +6,7 @@ export default { key: "hubspot-create-company", name: "Create Company", description: "Create a company in Hubspot. [See the documentation](https://developers.hubspot.com/docs/api/crm/companies#endpoint?spec=POST-/crm/v3/objects/companies)", - version: "0.0.12", + version: "0.0.13", type: "action", methods: { ...common.methods, diff --git a/components/hubspot/actions/create-custom-object/create-custom-object.mjs b/components/hubspot/actions/create-custom-object/create-custom-object.mjs new file mode 100644 index 0000000000000..c6dcaa2fd62c6 --- /dev/null +++ b/components/hubspot/actions/create-custom-object/create-custom-object.mjs @@ -0,0 +1,27 @@ +import hubspot from "../../hubspot.app.mjs"; +import common from "../common/common-create-object.mjs"; + +export default { + ...common, + key: "hubspot-create-custom-object", + name: "Create Custom Object", + description: "Create a new custom object in Hubspot. [See the documentation](https://developers.hubspot.com/beta-docs/guides/api/crm/objects/custom-objects#create-a-custom-object)", + version: "0.0.1", + type: "action", + props: { + hubspot, + customObjectType: { + propDefinition: [ + hubspot, + "customObjectType", + ], + }, + ...common.props, + }, + methods: { + ...common.methods, + getObjectType() { + return this.customObjectType; + }, + }, +}; diff --git a/components/hubspot/actions/create-deal/create-deal.mjs b/components/hubspot/actions/create-deal/create-deal.mjs index 0c7fd6689d3d6..07c18fac2af2a 100644 --- a/components/hubspot/actions/create-deal/create-deal.mjs +++ b/components/hubspot/actions/create-deal/create-deal.mjs @@ -6,7 +6,7 @@ export default { key: "hubspot-create-deal", name: "Create Deal", description: "Create a deal in Hubspot. [See the documentation](https://developers.hubspot.com/docs/api/crm/deals#endpoint?spec=POST-/crm/v3/objects/deals)", - version: "0.0.12", + version: "0.0.13", type: "action", props: { ...common.props, diff --git a/components/hubspot/actions/create-engagement/create-engagement.mjs b/components/hubspot/actions/create-engagement/create-engagement.mjs index 93e58b1393d90..980a0f7fc4b6e 100644 --- a/components/hubspot/actions/create-engagement/create-engagement.mjs +++ b/components/hubspot/actions/create-engagement/create-engagement.mjs @@ -9,7 +9,7 @@ export default { key: "hubspot-create-engagement", name: "Create Engagement", description: "Create a new engagement for a contact. [See the documentation](https://developers.hubspot.com/docs/api/crm/engagements)", - version: "0.0.11", + version: "0.0.12", type: "action", props: { ...common.props, diff --git a/components/hubspot/actions/create-lead/create-lead.mjs b/components/hubspot/actions/create-lead/create-lead.mjs new file mode 100644 index 0000000000000..bb2361e83f2e9 --- /dev/null +++ b/components/hubspot/actions/create-lead/create-lead.mjs @@ -0,0 +1,56 @@ +import { + OBJECT_TYPE, ASSOCIATION_CATEGORY, +} from "../../common/constants.mjs"; +import common from "../common/common-create-object.mjs"; +import hubspot from "../../hubspot.app.mjs"; + +export default { + ...common, + key: "hubspot-create-lead", + name: "Create Lead", + description: "Create a lead in Hubspot. [See the documentation](https://developers.hubspot.com/beta-docs/guides/api/crm/objects/leads#create-leads)", + version: "0.0.1", + type: "action", + props: { + hubspot, + contactId: { + propDefinition: [ + hubspot, + "objectId", + () => ({ + objectType: "contact", + }), + ], + label: "Contact ID", + description: "The contact to associate with the lead", + }, + ...common.props, + }, + methods: { + ...common.methods, + getObjectType() { + return OBJECT_TYPE.LEAD; + }, + createObject(opts) { + return this.hubspot.createObject({ + ...opts, + data: { + ...opts?.data, + associations: [ + { + types: [ + { + associationCategory: ASSOCIATION_CATEGORY.HUBSPOT_DEFINED, + associationTypeId: 578, // ID for "Lead with Primary Contact" + }, + ], + to: { + id: this.contactId, + }, + }, + ], + }, + }); + }, + }, +}; diff --git a/components/hubspot/actions/create-or-update-contact/create-or-update-contact.mjs b/components/hubspot/actions/create-or-update-contact/create-or-update-contact.mjs index 7d74d1f16d009..cbd4280523d28 100644 --- a/components/hubspot/actions/create-or-update-contact/create-or-update-contact.mjs +++ b/components/hubspot/actions/create-or-update-contact/create-or-update-contact.mjs @@ -6,7 +6,7 @@ export default { key: "hubspot-create-or-update-contact", name: "Create or Update Contact", description: "Create or update a contact in Hubspot. [See the documentation](https://developers.hubspot.com/docs/api/crm/contacts#endpoint?spec=POST-/crm/v3/objects/contacts)", - version: "0.0.10", + version: "0.0.11", type: "action", props: { ...common.props, diff --git a/components/hubspot/actions/create-ticket/create-ticket.mjs b/components/hubspot/actions/create-ticket/create-ticket.mjs index 113e3b1b829e9..657fa497a30e7 100644 --- a/components/hubspot/actions/create-ticket/create-ticket.mjs +++ b/components/hubspot/actions/create-ticket/create-ticket.mjs @@ -6,7 +6,7 @@ export default { key: "hubspot-create-ticket", name: "Create Ticket", description: "Create a ticket in Hubspot. [See the documentation](https://developers.hubspot.com/docs/api/crm/tickets)", - version: "0.0.3", + version: "0.0.4", type: "action", props: { ...common.props, diff --git a/components/hubspot/actions/enroll-contact-into-workflow/enroll-contact-into-workflow.mjs b/components/hubspot/actions/enroll-contact-into-workflow/enroll-contact-into-workflow.mjs index f722a1eaaace9..015af3033a93c 100644 --- a/components/hubspot/actions/enroll-contact-into-workflow/enroll-contact-into-workflow.mjs +++ b/components/hubspot/actions/enroll-contact-into-workflow/enroll-contact-into-workflow.mjs @@ -4,7 +4,7 @@ export default { key: "hubspot-enroll-contact-into-workflow", name: "Enroll Contact Into Workflow", description: "Add a contact to a workflow. Note: The Workflows API currently only supports contact-based workflows and is only available for Marketing Hub Enterprise accounts. [See the documentation](https://legacydocs.hubspot.com/docs/methods/workflows/add_contact)", - version: "0.0.9", + version: "0.0.10", type: "action", props: { hubspot, diff --git a/components/hubspot/actions/get-company/get-company.mjs b/components/hubspot/actions/get-company/get-company.mjs index 8893ca12e7617..a848f05b27305 100644 --- a/components/hubspot/actions/get-company/get-company.mjs +++ b/components/hubspot/actions/get-company/get-company.mjs @@ -6,7 +6,7 @@ export default { key: "hubspot-get-company", name: "Get Company", description: "Gets a company. [See the documentation](https://developers.hubspot.com/docs/api/crm/companies#endpoint?spec=GET-/crm/v3/objects/companies/{companyId})", - version: "0.0.9", + version: "0.0.10", type: "action", props: { ...common.props, diff --git a/components/hubspot/actions/get-contact/get-contact.mjs b/components/hubspot/actions/get-contact/get-contact.mjs index 95b8756fcc2eb..f37e496946ed3 100644 --- a/components/hubspot/actions/get-contact/get-contact.mjs +++ b/components/hubspot/actions/get-contact/get-contact.mjs @@ -6,7 +6,7 @@ export default { key: "hubspot-get-contact", name: "Get Contact", description: "Gets a contact. [See the documentation](https://developers.hubspot.com/docs/api/crm/contacts#endpoint?spec=GET-/crm/v3/objects/contacts/{contactId})", - version: "0.0.9", + version: "0.0.10", type: "action", props: { ...common.props, diff --git a/components/hubspot/actions/get-deal/get-deal.mjs b/components/hubspot/actions/get-deal/get-deal.mjs index 54f8764ec93d3..6270ddfb6d3b9 100644 --- a/components/hubspot/actions/get-deal/get-deal.mjs +++ b/components/hubspot/actions/get-deal/get-deal.mjs @@ -6,7 +6,7 @@ export default { key: "hubspot-get-deal", name: "Get Deal", description: "Gets a deal. [See the documentation](https://developers.hubspot.com/docs/api/crm/deals#endpoint?spec=GET-/crm/v3/objects/deals/{dealId})", - version: "0.0.9", + version: "0.0.10", type: "action", props: { ...common.props, diff --git a/components/hubspot/actions/get-file-public-url/get-file-public-url.mjs b/components/hubspot/actions/get-file-public-url/get-file-public-url.mjs index 3f5284a3e0afa..acb02b1a9f936 100644 --- a/components/hubspot/actions/get-file-public-url/get-file-public-url.mjs +++ b/components/hubspot/actions/get-file-public-url/get-file-public-url.mjs @@ -4,7 +4,7 @@ export default { key: "hubspot-get-file-public-url", name: "Get File Public URL", description: "Get a publicly available URL for a file that was uploaded using a Hubspot form. [See the documentation](https://developers.hubspot.com/docs/api/files/files#endpoint?spec=GET-/files/v3/files/{fileId}/signed-url)", - version: "0.0.9", + version: "0.0.10", type: "action", props: { hubspot, diff --git a/components/hubspot/actions/search-crm/search-crm.mjs b/components/hubspot/actions/search-crm/search-crm.mjs index d820a1cc6a818..16e9dd153b0d9 100644 --- a/components/hubspot/actions/search-crm/search-crm.mjs +++ b/components/hubspot/actions/search-crm/search-crm.mjs @@ -1,21 +1,21 @@ import hubspot from "../../hubspot.app.mjs"; import { SEARCHABLE_OBJECT_TYPES, - SEARCHABLE_OBJECT_PROPERTIES, DEFAULT_CONTACT_PROPERTIES, DEFAULT_COMPANY_PROPERTIES, DEFAULT_DEAL_PROPERTIES, DEFAULT_TICKET_PROPERTIES, DEFAULT_PRODUCT_PROPERTIES, DEFAULT_LINE_ITEM_PROPERTIES, + DEFAULT_LEAD_PROPERTIES, } from "../../common/constants.mjs"; import common from "../common/common-create.mjs"; export default { key: "hubspot-search-crm", name: "Search CRM", - description: "Search companies, contacts, deals, feedback submissions, products, tickets, line-items, or quotes. [See the documentation](https://developers.hubspot.com/docs/api/crm/search)", - version: "0.0.7", + description: "Search companies, contacts, deals, feedback submissions, products, tickets, line-items, quotes, leads, or custom objects. [See the documentation](https://developers.hubspot.com/docs/api/crm/search)", + version: "0.0.8", type: "action", props: { hubspot, @@ -23,7 +23,13 @@ export default { type: "string", label: "Object Type", description: "Type of CRM object to search for", - options: SEARCHABLE_OBJECT_TYPES, + options: [ + ...SEARCHABLE_OBJECT_TYPES, + { + label: "Custom Object", + value: "custom_object", + }, + ], reloadProps: true, }, createIfNotFound: { @@ -37,11 +43,28 @@ export default { }, async additionalProps() { const props = {}; + if (this.objectType === "custom_object") { + props.customObjectType = { + type: "string", + label: "Custom Object Type", + options: await this.getCustomObjectTypes(), + reloadProps: true, + }; + } + if (!this.objectType || (this.objectType === "custom_object" && !this.customObjectType)) { + return props; + } + + const objectType = this.customObjectType ?? this.objectType; + const schema = await this.hubspot.getSchema({ + objectType, + }); + props.searchProperty = { type: "string", label: "Search Property", description: "The field to search", - options: this.getSearchProperties(), + options: schema.searchableProperties, }; props.searchValue = { type: "string", @@ -66,7 +89,7 @@ export default { return []; } const { results: properties } = await this.hubspot.getProperties({ - objectType: this.objectType, + objectType: this.customObjectType ?? this.objectType, }); const defaultProperties = this.getDefaultProperties(); return properties.filter(({ name }) => !defaultProperties.includes(name)) @@ -77,12 +100,9 @@ export default { }, }; let creationProps = {}; - if (this.createIfNotFound && this.objectType) { - const schema = await this.hubspot.getSchema({ - objectType: this.objectType, - }); + if (this.createIfNotFound && objectType) { const { results: properties } = await this.hubspot.getProperties({ - objectType: this.objectType, + objectType, }); creationProps = properties .filter(this.isRelevantProperty) @@ -101,9 +121,6 @@ export default { }, methods: { ...common.methods, - getSearchProperties() { - return SEARCHABLE_OBJECT_PROPERTIES[this.objectType]; - }, getDefaultProperties() { if (this.objectType === "contact") { return DEFAULT_CONTACT_PROPERTIES; @@ -117,15 +134,22 @@ export default { return DEFAULT_PRODUCT_PROPERTIES; } else if (this.objectType === "line_item") { return DEFAULT_LINE_ITEM_PROPERTIES; + } else if (this.objectType === "lead") { + return DEFAULT_LEAD_PROPERTIES; } else { return []; } }, + async getCustomObjectTypes() { + const { results } = await this.hubspot.listSchemas(); + return results?.map(({ name }) => name ) || []; + }, }, async run({ $ }) { const { hubspot, objectType, + customObjectType, additionalProperties = [], searchProperty, searchValue, @@ -150,7 +174,7 @@ export default { ], }; const { results } = await hubspot.searchCRM({ - object: objectType, + object: customObjectType ?? objectType, data, $, }); @@ -158,12 +182,12 @@ export default { if (!results?.length && createIfNotFound) { const response = await hubspot.createObject({ $, - objectType, + objectType: customObjectType ?? objectType, data: { properties, }, }); - const objectName = hubspot.getObjectTypeName(objectType); + const objectName = hubspot.getObjectTypeName(customObjectType ?? objectType); $.export("$summary", `Successfully created ${objectName}`); return response; } diff --git a/components/hubspot/actions/update-company/update-company.mjs b/components/hubspot/actions/update-company/update-company.mjs index ab198f75e4b6f..7f6781f670832 100644 --- a/components/hubspot/actions/update-company/update-company.mjs +++ b/components/hubspot/actions/update-company/update-company.mjs @@ -7,7 +7,7 @@ export default { key: "hubspot-update-company", name: "Update Company", description: "Update a company in Hubspot. [See the documentation](https://developers.hubspot.com/docs/api/crm/companies)", - version: "0.0.8", + version: "0.0.9", type: "action", methods: { ...common.methods, diff --git a/components/hubspot/actions/update-contact/update-contact.mjs b/components/hubspot/actions/update-contact/update-contact.mjs index a37218039dce9..c5344162fc4fe 100644 --- a/components/hubspot/actions/update-contact/update-contact.mjs +++ b/components/hubspot/actions/update-contact/update-contact.mjs @@ -7,7 +7,7 @@ export default { key: "hubspot-update-contact", name: "Update Contact", description: "Update a contact in Hubspot. [See the documentation](https://developers.hubspot.com/docs/api/crm/contacts#endpoint?spec=POST-/crm/v3/objects/contacts)", - version: "0.0.9", + version: "0.0.10", type: "action", methods: { ...common.methods, diff --git a/components/hubspot/actions/update-custom-object/update-custom-object.mjs b/components/hubspot/actions/update-custom-object/update-custom-object.mjs new file mode 100644 index 0000000000000..d50b3b1a08920 --- /dev/null +++ b/components/hubspot/actions/update-custom-object/update-custom-object.mjs @@ -0,0 +1,37 @@ +import common from "../common/common-update-object.mjs"; +import hubspot from "../../hubspot.app.mjs"; + +export default { + ...common, + key: "hubspot-update-custom-object", + name: "Update Custom Object", + description: "Update a custom object in Hubspot. [See the documentation](https://developers.hubspot.com/beta-docs/guides/api/crm/objects/custom-objects#update-existing-custom-objects)", + version: "0.0.1", + type: "action", + methods: { + ...common.methods, + getObjectType() { + return this.customObjectType; + }, + }, + props: { + hubspot, + customObjectType: { + propDefinition: [ + hubspot, + "customObjectType", + ], + }, + objectId: { + propDefinition: [ + hubspot, + "objectId", + (c) => ({ + objectType: c.customObjectType, + }), + ], + description: "The ID of the custom object", + }, + ...common.props, + }, +}; diff --git a/components/hubspot/actions/update-lead/update-lead.mjs b/components/hubspot/actions/update-lead/update-lead.mjs new file mode 100644 index 0000000000000..609c6b1c80035 --- /dev/null +++ b/components/hubspot/actions/update-lead/update-lead.mjs @@ -0,0 +1,28 @@ +import { OBJECT_TYPE } from "../../common/constants.mjs"; +import common from "../common/common-update-object.mjs"; +import hubspot from "../../hubspot.app.mjs"; + +export default { + ...common, + key: "hubspot-update-lead", + name: "Update Lead", + description: "Update a lead in Hubspot. [See the documentation](https://developers.hubspot.com/beta-docs/guides/api/crm/objects/leads#update-leads)", + version: "0.0.1", + type: "action", + methods: { + ...common.methods, + getObjectType() { + return OBJECT_TYPE.LEAD; + }, + }, + props: { + hubspot, + objectId: { + propDefinition: [ + hubspot, + "leadId", + ], + }, + ...common.props, + }, +}; diff --git a/components/hubspot/common/constants.mjs b/components/hubspot/common/constants.mjs index fc06a944fdf60..721f175ce1d14 100644 --- a/components/hubspot/common/constants.mjs +++ b/components/hubspot/common/constants.mjs @@ -3,7 +3,6 @@ import { OBJECT_TYPE, OBJECT_TYPES, SEARCHABLE_OBJECT_TYPES, - SEARCHABLE_OBJECT_PROPERTIES, } from "./object-types.mjs"; const BASE_URL = "https://api.hubapi.com"; @@ -22,6 +21,7 @@ const API_PATH = { CMS: "/cms/v3", AUTOMATION: "/automation/v2", DEAL: "/deals/v1", + BUSINESS_UNITS: "/business-units/v3", }; /** Association categories for association types, as defined by the [Hubspot API @@ -160,6 +160,15 @@ const DEFAULT_LINE_ITEM_PROPERTIES = [ "hs_term_in_months", ]; +const DEFAULT_LEAD_PROPERTIES = [ + "hs_associated_contact_email", + "hs_associated_contact_lastname", + "hs_lead_name", + "hs_associated_company_domain", + "hs_associated_contact_firstname", + "hs_associated_company_name", +]; + const ENGAGEMENT_TYPE_OPTIONS = [ { label: "Note", @@ -187,7 +196,6 @@ export { OBJECT_TYPE, OBJECT_TYPES, SEARCHABLE_OBJECT_TYPES, - SEARCHABLE_OBJECT_PROPERTIES, HUBSPOT_OWNER, BASE_URL, API_PATH, @@ -199,5 +207,6 @@ export { DEFAULT_TICKET_PROPERTIES, DEFAULT_PRODUCT_PROPERTIES, DEFAULT_LINE_ITEM_PROPERTIES, + DEFAULT_LEAD_PROPERTIES, ENGAGEMENT_TYPE_OPTIONS, }; diff --git a/components/hubspot/common/object-types.mjs b/components/hubspot/common/object-types.mjs index f07a77f03142b..26b3c15073edc 100644 --- a/components/hubspot/common/object-types.mjs +++ b/components/hubspot/common/object-types.mjs @@ -17,6 +17,7 @@ const OBJECT_TYPE = { NOTE: "note", EMAIL: "email", TASK: "task", + LEAD: "lead", }; /** @@ -77,6 +78,10 @@ const OBJECT_TYPES = [ label: "Tasks", value: OBJECT_TYPE.TASK, }, + { + label: "Leads", + value: OBJECT_TYPE.LEAD, + }, ]; const SEARCHABLE_OBJECT_TYPES_ARRAY = [ @@ -87,71 +92,12 @@ const SEARCHABLE_OBJECT_TYPES_ARRAY = [ OBJECT_TYPE.PRODUCT, OBJECT_TYPE.TICKET, OBJECT_TYPE.LINE_ITEM, + OBJECT_TYPE.LEAD, ]; const SEARCHABLE_OBJECT_TYPES = OBJECT_TYPES.filter( (type) => SEARCHABLE_OBJECT_TYPES_ARRAY.includes(type.value), ); -const SEARCHABLE_OBJECT_PROPERTIES = { - [OBJECT_TYPE.COMPANY]: [ - "name", - "domain", - "createdate", - "hs_lastmodifieddate", - "hs_object_id", - ], - [OBJECT_TYPE.CONTACT]: [ - "firstname", - "lastname", - "email", - "lastmodifieddate", - "hs_object_id", - "createdate", - ], - [OBJECT_TYPE.DEAL]: [ - "dealname", - "amount", - "closedate", - "pipeline", - "dealstage", - "createdate", - "hs_lastmodifieddate", - "hs_object_id", - ], - [OBJECT_TYPE.FEEDBACK_SUBMISSION]: [ - "hs_createdate", - "hs_lastmodifieddate", - "hs_object_id", - ], - [OBJECT_TYPE.PRODUCT]: [ - "name", - "description", - "price", - "createdate", - "hs_lastmodifieddate", - "hs_object_id", - ], - [OBJECT_TYPE.TICKET]: [ - "content", - "hs_pipeline", - "hs_pipeline_stage", - "hs_ticket_category", - "hs_ticket_priority", - "subject", - "createdate", - "hs_lastmodifieddate", - "hs_object_id", - ], - [OBJECT_TYPE.LINE_ITEM]: [ - "quantity", - "amount", - "price", - "createdate", - "hs_lastmodifieddate", - "hs_object_id", - ], -}; - const ENGAGEMENT_TYPES = [ { label: "Note", @@ -223,7 +169,6 @@ export { OBJECT_TYPES, HUBSPOT_OWNER, SEARCHABLE_OBJECT_TYPES, - SEARCHABLE_OBJECT_PROPERTIES, ENGAGEMENT_TYPES, EMAIL_EVENT_TYPES, }; diff --git a/components/hubspot/hubspot.app.mjs b/components/hubspot/hubspot.app.mjs index 04d72098b418e..291198fa119c9 100644 --- a/components/hubspot/hubspot.app.mjs +++ b/components/hubspot/hubspot.app.mjs @@ -77,8 +77,19 @@ export default { type: "string", label: "Object Type", description: "Watch for new events concerning the object type specified.", - async options() { - return OBJECT_TYPES; + async options({ includeCustom = false }) { + const objectTypes = OBJECT_TYPES; + if (includeCustom) { + const { results } = await this.listSchemas(); + const customObjects = results?.map(({ + name: value, labels, + }) => ({ + value, + label: labels.plural, + })) || []; + objectTypes.push(...customObjects); + } + return objectTypes; }, }, objectSchema: { @@ -113,7 +124,7 @@ export default { description: "Watch for new events concerning the objects selected.", async options({ objectType, ...opts - }) { console.log(opts); + }) { return objectType ? await this.createOptions(objectType, opts) : []; @@ -401,6 +412,31 @@ export default { })); }, }, + leadId: { + type: "string", + label: "Lead ID", + description: "The identifier of the lead", + async options() { + const { results } = await this.listObjectsInPage("lead", undefined, { + properties: "hs_lead_name", + }); + return results?.map(({ + id: value, properties, + }) => ({ + value, + label: properties?.hs_lead_name || value, + })) || []; + }, + }, + customObjectType: { + type: "string", + label: "Custom Object Type", + description: "Tye type of custom object to create", + async options() { + const { results } = await this.listSchemas(); + return results?.map(({ name }) => name ) || []; + }, + }, }, methods: { _getHeaders() { @@ -544,6 +580,35 @@ export default { value: object.id, })); }, + async getPipelinesOptions(objectType) { + const { results } = await this.getPipelines({ + objectType, + }); + return results?.map((pipeline) => ({ + label: pipeline.label, + value: pipeline.id, + })) || []; + }, + async getPipelineStagesOptions(objectType, pipelineId) { + if (!pipelineId) { + return []; + } + const { stages } = await this.getPipeline({ + objectType, + pipelineId, + }); + return stages?.map((stage) => ({ + label: stage.label, + value: stage.id, + })) || []; + }, + async getBusinessUnitOptions() { + const { results } = await this.getBusinessUnits(); + return results?.map((unit) => ({ + label: unit.name, + value: unit.id, + })) || []; + }, searchCRM({ object, ...opts }) { @@ -718,6 +783,22 @@ export default { ...opts, }); }, + getBusinessUnits(opts = {}) { + return this.makeRequest({ + api: API_PATH.BUSINESS_UNITS, + endpoint: `/business-units/user/${this.$auth.oauth_uid}`, + ...opts, + }); + }, + getPipeline({ + objectType, pipelineId, ...opts + }) { + return this.makeRequest({ + api: API_PATH.CRMV3, + endpoint: `/pipelines/${objectType}/${pipelineId}`, + ...opts, + }); + }, getPipelines({ objectType, ...opts }) { diff --git a/components/hubspot/package.json b/components/hubspot/package.json index 2b12b525df711..8f041897bd04f 100644 --- a/components/hubspot/package.json +++ b/components/hubspot/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/hubspot", - "version": "0.9.0", + "version": "0.10.0", "description": "Pipedream Hubspot Components", "main": "hubspot.app.mjs", "keywords": [ diff --git a/components/hubspot/sources/delete-blog-article/delete-blog-article.mjs b/components/hubspot/sources/delete-blog-article/delete-blog-article.mjs index 91045cb73eeba..27e07a2924a8c 100644 --- a/components/hubspot/sources/delete-blog-article/delete-blog-article.mjs +++ b/components/hubspot/sources/delete-blog-article/delete-blog-article.mjs @@ -6,7 +6,7 @@ export default { key: "hubspot-delete-blog-article", name: "Deleted Blog Posts", description: "Emit new event for each deleted blog post.", - version: "0.0.14", + version: "0.0.15", dedupe: "unique", type: "source", methods: { diff --git a/components/hubspot/sources/new-company-property-change/new-company-property-change.mjs b/components/hubspot/sources/new-company-property-change/new-company-property-change.mjs index af2062b85e608..47a5dcd3d6a7b 100644 --- a/components/hubspot/sources/new-company-property-change/new-company-property-change.mjs +++ b/components/hubspot/sources/new-company-property-change/new-company-property-change.mjs @@ -7,7 +7,7 @@ export default { key: "hubspot-new-company-property-change", name: "New Company Property Change", description: "Emit new event when a specified property is provided or updated on a company. [See the documentation](https://developers.hubspot.com/docs/api/crm/companies)", - version: "0.0.7", + version: "0.0.8", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-contact-property-change/new-contact-property-change.mjs b/components/hubspot/sources/new-contact-property-change/new-contact-property-change.mjs index fa95dd4c00837..1a286c51e6916 100644 --- a/components/hubspot/sources/new-contact-property-change/new-contact-property-change.mjs +++ b/components/hubspot/sources/new-contact-property-change/new-contact-property-change.mjs @@ -7,7 +7,7 @@ export default { key: "hubspot-new-contact-property-change", name: "New Contact Property Change", description: "Emit new event when a specified property is provided or updated on a contact. [See the documentation](https://developers.hubspot.com/docs/api/crm/contacts)", - version: "0.0.9", + version: "0.0.10", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-deal-in-stage/new-deal-in-stage.mjs b/components/hubspot/sources/new-deal-in-stage/new-deal-in-stage.mjs index 27bfb65f71c22..8a0401987f6b6 100644 --- a/components/hubspot/sources/new-deal-in-stage/new-deal-in-stage.mjs +++ b/components/hubspot/sources/new-deal-in-stage/new-deal-in-stage.mjs @@ -7,7 +7,7 @@ export default { key: "hubspot-new-deal-in-stage", name: "New Deal In Stage", description: "Emit new event for each new deal in a stage.", - version: "0.0.18", + version: "0.0.19", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-deal-property-change/new-deal-property-change.mjs b/components/hubspot/sources/new-deal-property-change/new-deal-property-change.mjs index 768d807e8ca74..c6b162f429c1e 100644 --- a/components/hubspot/sources/new-deal-property-change/new-deal-property-change.mjs +++ b/components/hubspot/sources/new-deal-property-change/new-deal-property-change.mjs @@ -7,7 +7,7 @@ export default { key: "hubspot-new-deal-property-change", name: "New Deal Property Change", description: "Emit new event when a specified property is provided or updated on a deal. [See the documentation](https://developers.hubspot.com/docs/api/crm/deals)", - version: "0.0.8", + version: "0.0.9", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-email-event/new-email-event.mjs b/components/hubspot/sources/new-email-event/new-email-event.mjs index 0e6990f71e10c..219d5bd24fdee 100644 --- a/components/hubspot/sources/new-email-event/new-email-event.mjs +++ b/components/hubspot/sources/new-email-event/new-email-event.mjs @@ -8,7 +8,7 @@ export default { key: "hubspot-new-email-event", name: "New Email Event", description: "Emit new event for each new Hubspot email event.", - version: "0.0.17", + version: "0.0.18", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-email-subscriptions-timeline/new-email-subscriptions-timeline.mjs b/components/hubspot/sources/new-email-subscriptions-timeline/new-email-subscriptions-timeline.mjs index 2fe58846a0776..c4fdc6f7ffa07 100644 --- a/components/hubspot/sources/new-email-subscriptions-timeline/new-email-subscriptions-timeline.mjs +++ b/components/hubspot/sources/new-email-subscriptions-timeline/new-email-subscriptions-timeline.mjs @@ -6,7 +6,7 @@ export default { key: "hubspot-new-email-subscriptions-timeline", name: "New Email Subscriptions Timeline", description: "Emit new event when a new email timeline subscription is added for the portal.", - version: "0.0.14", + version: "0.0.15", dedupe: "unique", type: "source", methods: { diff --git a/components/hubspot/sources/new-engagement/new-engagement.mjs b/components/hubspot/sources/new-engagement/new-engagement.mjs index 708615c56f8a6..5c0c31cc1fd4a 100644 --- a/components/hubspot/sources/new-engagement/new-engagement.mjs +++ b/components/hubspot/sources/new-engagement/new-engagement.mjs @@ -8,7 +8,7 @@ export default { key: "hubspot-new-engagement", name: "New Engagement", description: "Emit new event for each new engagement created. This action returns a maximum of 5000 records at a time, make sure you set a correct time range so you don't miss any events", - version: "0.0.19", + version: "0.0.20", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-event/new-event.mjs b/components/hubspot/sources/new-event/new-event.mjs index 2851ff65631fb..52b53ecfb4d11 100644 --- a/components/hubspot/sources/new-event/new-event.mjs +++ b/components/hubspot/sources/new-event/new-event.mjs @@ -8,7 +8,7 @@ export default { key: "hubspot-new-event", name: "New Events", description: "Emit new event for each new Hubspot event. Note: Only available for Marketing Hub Enterprise, Sales Hub Enterprise, Service Hub Enterprise, or CMS Hub Enterprise accounts", - version: "0.0.18", + version: "0.0.19", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-form-submission/new-form-submission.mjs b/components/hubspot/sources/new-form-submission/new-form-submission.mjs index 88d7d2daa3fc8..f38b0a9bf15d0 100644 --- a/components/hubspot/sources/new-form-submission/new-form-submission.mjs +++ b/components/hubspot/sources/new-form-submission/new-form-submission.mjs @@ -6,7 +6,7 @@ export default { key: "hubspot-new-form-submission", name: "New Form Submission", description: "Emit new event for each new submission of a form.", - version: "0.0.19", + version: "0.0.20", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-or-updated-blog-article/new-or-updated-blog-article.mjs b/components/hubspot/sources/new-or-updated-blog-article/new-or-updated-blog-article.mjs index 22f9843ff8028..11095d452745c 100644 --- a/components/hubspot/sources/new-or-updated-blog-article/new-or-updated-blog-article.mjs +++ b/components/hubspot/sources/new-or-updated-blog-article/new-or-updated-blog-article.mjs @@ -7,7 +7,7 @@ export default { key: "hubspot-new-or-updated-blog-article", name: "New or Updated Blog Post", description: "Emit new event for each new or updated blog post in Hubspot.", - version: "0.0.1", + version: "0.0.2", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-or-updated-company/new-or-updated-company.mjs b/components/hubspot/sources/new-or-updated-company/new-or-updated-company.mjs index 2ea023e802054..143fc4474f155 100644 --- a/components/hubspot/sources/new-or-updated-company/new-or-updated-company.mjs +++ b/components/hubspot/sources/new-or-updated-company/new-or-updated-company.mjs @@ -9,7 +9,7 @@ export default { key: "hubspot-new-or-updated-company", name: "New or Updated Company", description: "Emit new event for each new or updated company in Hubspot.", - version: "0.0.1", + version: "0.0.2", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-or-updated-contact/new-or-updated-contact.mjs b/components/hubspot/sources/new-or-updated-contact/new-or-updated-contact.mjs index d0fd79a6bb0b4..3eb9d37d43be6 100644 --- a/components/hubspot/sources/new-or-updated-contact/new-or-updated-contact.mjs +++ b/components/hubspot/sources/new-or-updated-contact/new-or-updated-contact.mjs @@ -9,7 +9,7 @@ export default { key: "hubspot-new-or-updated-contact", name: "New or Updated Contact", description: "Emit new event for each new or updated contact in Hubspot.", - version: "0.0.1", + version: "0.0.2", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-or-updated-crm-object/new-or-updated-crm-object.mjs b/components/hubspot/sources/new-or-updated-crm-object/new-or-updated-crm-object.mjs index b093a2b350064..992bd7256d431 100644 --- a/components/hubspot/sources/new-or-updated-crm-object/new-or-updated-crm-object.mjs +++ b/components/hubspot/sources/new-or-updated-crm-object/new-or-updated-crm-object.mjs @@ -7,7 +7,7 @@ export default { key: "hubspot-new-or-updated-crm-object", name: "New or Updated CRM Object", description: "Emit new event each time a CRM Object of the specified object type is updated.", - version: "0.0.14", + version: "0.0.15", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-or-updated-custom-object/new-or-updated-custom-object.mjs b/components/hubspot/sources/new-or-updated-custom-object/new-or-updated-custom-object.mjs index 7a4a2eaee9a4b..ab81c2699d4da 100644 --- a/components/hubspot/sources/new-or-updated-custom-object/new-or-updated-custom-object.mjs +++ b/components/hubspot/sources/new-or-updated-custom-object/new-or-updated-custom-object.mjs @@ -7,7 +7,7 @@ export default { key: "hubspot-new-or-updated-custom-object", name: "New or Updated Custom Object", description: "Emit new event each time a Custom Object of the specified schema is updated.", - version: "0.0.3", + version: "0.0.4", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-or-updated-deal/new-or-updated-deal.mjs b/components/hubspot/sources/new-or-updated-deal/new-or-updated-deal.mjs index 9b97557e41cea..d5566ee19e175 100644 --- a/components/hubspot/sources/new-or-updated-deal/new-or-updated-deal.mjs +++ b/components/hubspot/sources/new-or-updated-deal/new-or-updated-deal.mjs @@ -9,7 +9,7 @@ export default { key: "hubspot-new-or-updated-deal", name: "New or Updated Deal", description: "Emit new event for each new or updated deal in Hubspot", - version: "0.0.1", + version: "0.0.2", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-or-updated-line-item/new-or-updated-line-item.mjs b/components/hubspot/sources/new-or-updated-line-item/new-or-updated-line-item.mjs index 2d6dcdac2468e..088b9c8b98322 100644 --- a/components/hubspot/sources/new-or-updated-line-item/new-or-updated-line-item.mjs +++ b/components/hubspot/sources/new-or-updated-line-item/new-or-updated-line-item.mjs @@ -9,7 +9,7 @@ export default { key: "hubspot-new-or-updated-line-item", name: "New or Updated Line Item", description: "Emit new event for each new line item added or updated in Hubspot.", - version: "0.0.1", + version: "0.0.2", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-or-updated-product/new-or-updated-product.mjs b/components/hubspot/sources/new-or-updated-product/new-or-updated-product.mjs index 881495763b650..7e1ecc6a7e90d 100644 --- a/components/hubspot/sources/new-or-updated-product/new-or-updated-product.mjs +++ b/components/hubspot/sources/new-or-updated-product/new-or-updated-product.mjs @@ -9,7 +9,7 @@ export default { key: "hubspot-new-or-updated-product", name: "New or Updated Product", description: "Emit new event for each new or updated product in Hubspot.", - version: "0.0.1", + version: "0.0.2", dedupe: "unique", type: "source", props: { diff --git a/components/hubspot/sources/new-social-media-message/new-social-media-message.mjs b/components/hubspot/sources/new-social-media-message/new-social-media-message.mjs index 069b93db34881..03ce613b7fa50 100644 --- a/components/hubspot/sources/new-social-media-message/new-social-media-message.mjs +++ b/components/hubspot/sources/new-social-media-message/new-social-media-message.mjs @@ -6,7 +6,7 @@ export default { key: "hubspot-new-social-media-message", name: "New Social Media Message", description: "Emit new event when a message is posted from HubSpot to the specified social media channel. Note: Only available for Marketing Hub Enterprise accounts", - version: "0.0.14", + version: "0.0.15", type: "source", dedupe: "unique", props: { diff --git a/components/hubspot/sources/new-ticket-property-change/new-ticket-property-change.mjs b/components/hubspot/sources/new-ticket-property-change/new-ticket-property-change.mjs index 3dd99b9526390..05e97aa882957 100644 --- a/components/hubspot/sources/new-ticket-property-change/new-ticket-property-change.mjs +++ b/components/hubspot/sources/new-ticket-property-change/new-ticket-property-change.mjs @@ -7,7 +7,7 @@ export default { key: "hubspot-new-ticket-property-change", name: "New Ticket Property Change", description: "Emit new event when a specified property is provided or updated on a ticket. [See the documentation](https://developers.hubspot.com/docs/api/crm/tickets)", - //version: "0.0.7", + //version: "0.0.8", version: "0.0.8", dedupe: "unique", type: "source", diff --git a/components/hubspot/sources/new-ticket/new-ticket.mjs b/components/hubspot/sources/new-ticket/new-ticket.mjs index 048f9427c4a2a..72da5e8ddfa06 100644 --- a/components/hubspot/sources/new-ticket/new-ticket.mjs +++ b/components/hubspot/sources/new-ticket/new-ticket.mjs @@ -9,7 +9,7 @@ export default { key: "hubspot-new-ticket", name: "New Ticket", description: "Emit new event for each new ticket created.", - version: "0.0.14", + version: "0.0.15", dedupe: "unique", type: "source", props: { diff --git a/components/mailgenius/mailgenius.app.mjs b/components/mailgenius/mailgenius.app.mjs index 7ec13d4821276..441b1c947f246 100644 --- a/components/mailgenius/mailgenius.app.mjs +++ b/components/mailgenius/mailgenius.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +}; diff --git a/components/microsoft_teams_bot/microsoft_teams_bot.app.mjs b/components/microsoft_teams_bot/microsoft_teams_bot.app.mjs index b3e0848d82a7e..960d05d94d580 100644 --- a/components/microsoft_teams_bot/microsoft_teams_bot.app.mjs +++ b/components/microsoft_teams_bot/microsoft_teams_bot.app.mjs @@ -8,4 +8,4 @@ export default { console.log(Object.keys(this.$auth)); }, }, -}; \ No newline at end of file +};